Mercurial > hg > extraction-interface
diff views/Extractapp/EditTaglist.php @ 47:886f43b26ee2 extractapp
move/remove develop folder
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 17 Mar 2015 10:54:13 +0100 |
parents | |
children | 97c1e5102a22 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/Extractapp/EditTaglist.php Tue Mar 17 10:54:13 2015 +0100 @@ -0,0 +1,372 @@ +<?php +// --- initialize --- +$taglistArray = $viewmodel['taglistArray']; +$topic_id = $viewmodel['topic_id']; +$largestId = $viewmodel['largest_id']; + +$topic_tag_id = $viewmodel['topic_tag_id']; + +?> + +<html> +<head> +<title></title> +<link rel="stylesheet" href="../css/colorpicker.css" type="text/css" /> +<script type="text/javascript" src="../js/colorpicker.js"></script> +<script type="text/javascript" src="../js/eye.js"></script> +<script type="text/javascript" src="../js/utils.js"></script> +<script type="text/javascript" src="../js/layout.js?ver=1.0.2"></script> +</head> + +<body> + +<h3>Topic Tag is "<?php echo $taglistArray[$topic_tag_id][1]; ?>" </h3> + +<table width="100%" border="1" id="tableMain"> </table> + + +<script type="text/javascript"> + +// var largestId = 0; +var largestId = JSON.parse('<?php echo json_encode($largestId) ?>'); +var topic_tag_id = JSON.parse('<?php echo json_encode($topic_tag_id) ?>'); + +function addTag( ) { + largestId++; + var row = tableMain.insertBefore(document.createElement("tr"), document.getElementById("trAddTag") ); + row.setAttribute("height","50"); + row.id = "tr"+largestId; + + var newcolumn = document.createElement("td"); + newcolumn.id = "tdId"+largestId; + newcolumn.setAttribute("width","150"); + row.appendChild(newcolumn).innerHTML=largestId; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + newcolumn.id = "tdName"+largestId; + newcolumn.setAttribute("idnum",largestId); + newcolumn.setAttribute("name","tdName"); + row.appendChild(newcolumn).innerHTML=""; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + newcolumn.id = "tdTag"+largestId; + newcolumn.setAttribute("idnum",largestId); + newcolumn.setAttribute("name","tdTag"); + row.appendChild(newcolumn).innerHTML=""; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + row.appendChild(newcolumn).innerHTML="<div id=\"colorSelector"+largestId+"\"><div id=\"colorSelectorB"+largestId+"\" style=\"background-color: #000000\"></div></div>"; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","50"); + row.appendChild(newcolumn).innerHTML="<button onclick=\"newTag("+largestId+")\">Save</button>"; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","50"); + row.appendChild(newcolumn).innerHTML="<button onclick=\"DeleteTag("+largestId+")\">Delete</button>"; + + $('#colorSelector'+largestId).ColorPicker({ + color: '#000000', + onShow: function (colpkr) { + $(colpkr).fadeIn(500); + return false; + }, + onHide: function (colpkr) { + $(colpkr).fadeOut(500); + return false; + }, + onChange: function (hsb, hex, rgb) { + $('#colorSelector'+largestId+' div').css('backgroundColor', '#' + hex); + } + }); + /* + // addRule doesn't work in FF + document.styleSheets[0].addRule("#colorSelector"+largestId, "position: relative; width: 36px; height: 36px; background: url(../images/select.png);") + document.styleSheets[0].addRule("#colorSelector"+largestId+" div", "position: absolute; top: 3px; left: 3px; width: 30px; height: 30px; background: url(../images/select.png) center;") + */ + + // insertRule works in IE9, FF, Saf, Chrome, Opera + var x = document.styleSheets[0]; + var selector1 = "#colorSelector"+largestId; + var selector2 = "#colorSelector"+largestId+" div"; + + if (x.insertRule) { + x.insertRule(selector1+' {position:relative; width:36px; height:36px; background:url(../images/select.png);}', x.cssRules.length); + x.insertRule(selector2+' {position: absolute; top: 3px; left: 3px; width: 30px; height: 30px; background:url(../images/select.png) center;}', x.cssRules.length); + + } else if (x.addRule) { + x.addRule(selector1, "position: relative; width: 36px; height: 36px; background: url(../images/select.png);"); + x.addRule(selector2, "position: absolute; top: 3px; left: 3px; width: 30px; height: 30px; background: url(../images/select.png) center;"); + } + + +} + + +function addNode( id, name, tag, color ) { + // if ( parseInt(id) > largestId ) largestId=parseInt(id); + + var tableMain=document.getElementById("tableMain"); + + if ( id == "AddTag" ) { + var row = tableMain.appendChild(document.createElement("tr")); + row.id = "trAddTag"; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + newcolumn.setAttribute("colspan","6"); + newcolumn.setAttribute("align","center"); + row.appendChild(newcolumn).innerHTML="<button onclick=\"addTag()\" style=\"height: 50px; width: 300px\">Add New Tag</button>"; + + return 0; + } + + var row = tableMain.appendChild(document.createElement("tr")); + row.setAttribute("height","50"); + row.id = "tr"+id; + + var newcolumn = document.createElement("td"); + newcolumn.id = "tdId"+id; + newcolumn.setAttribute("width","150"); + row.appendChild(newcolumn).innerHTML=id; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + newcolumn.id = "tdName"+id; + newcolumn.setAttribute("idnum",id); + newcolumn.setAttribute("name","tdName"); + row.appendChild(newcolumn).innerHTML=name; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + newcolumn.id = "tdTag"+id; + newcolumn.setAttribute("idnum",id); + newcolumn.setAttribute("name","tdTag"); + row.appendChild(newcolumn).innerHTML=tag; + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","150"); + if ( color=="Color") { + row.appendChild(newcolumn).innerHTML="Color"; + } else { + row.appendChild(newcolumn).innerHTML="<div id=\"colorSelector"+id+"\"><div id=\"colorSelectorB"+id+"\" style=\"background-color: "+color+"\"></div></div>"; + } + + + if (id == topic_tag_id) { + // pass + } else { + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","50"); + if ( color=="Color") { + row.appendChild(newcolumn).innerHTML="Save"; + } else { + row.appendChild(newcolumn).innerHTML="<button onclick=\"saveTag("+id+", 'update')\">Save</button>"; + } + + + var newcolumn = document.createElement("td"); + newcolumn.setAttribute("width","50"); + if ( color=="Color") { + row.appendChild(newcolumn).innerHTML="Delete"; + } else { + row.appendChild(newcolumn).innerHTML="<button onclick=\"DeleteTag("+id+")\">Delete</button>"; + } + + + $('#colorSelector'+id).ColorPicker({ + color: color, + onShow: function (colpkr) { + $(colpkr).fadeIn(500); + return false; + }, + onHide: function (colpkr) { + $(colpkr).fadeOut(500); + return false; + }, + onChange: function (hsb, hex, rgb) { + $('#colorSelector'+id+' div').css('backgroundColor', '#' + hex); + } + }); + } + + // insertRule works in IE9, FF, Saf, Chrome, Opera + var x = document.styleSheets[0]; + var selector1 = "#colorSelector"+id; + var selector2 = "#colorSelector"+id+" div"; + + if (x.insertRule) { + x.insertRule(selector1+' {position:relative; width:36px; height:36px; background:url(../images/select.png);}', x.cssRules.length); + x.insertRule(selector2+' {position: absolute; top: 3px; left: 3px; width: 30px; height: 30px; background:url(../images/select.png) center;}', x.cssRules.length); + + } else if (x.addRule) { + x.addRule(selector1, "position: relative; width: 36px; height: 36px; background: url(../images/select.png);"); + x.addRule(selector2, "position: absolute; top: 3px; left: 3px; width: 30px; height: 30px; background: url(../images/select.png) center;"); + } + +} + +function newTag( id ) { + + var elid = document.getElementById("tdId"+id).textContent; + var elname = document.getElementById("tdName"+id).textContent; + var eltag = document.getElementById("tdTag"+id).textContent; + /* + var elid = document.getElementById("tdId"+id).innerHTML; + var elname = document.getElementById("tdName"+id).innerHTML; + var eltag = document.getElementById("tdTag"+id).innerHTML; + */ + var elcolor = $("#colorSelectorB"+id).css("background-color"); + + console.log("elid="+elid+', elname='+elname+', eltag='+eltag); + + var topic_id = JSON.parse('<?php echo json_encode($topic_id) ?>'); + + $.ajax({ + url : './EditTaglist', + async : false, + type : 'POST', + data : 'func=NewTagElement'+'&id='+elid+'&name='+elname+'&tag='+eltag+'&color='+elcolor+'&topic_id='+topic_id, + error: function (e) { + console.log("error when newTag"); + }, + success: function (e) { + alert("Saved!"); + document.location.reload(true); + } + }).done(function(result) { + }); +} + +function saveTag( id) { + + var elid = document.getElementById("tdId"+id).textContent; + var elname = document.getElementById("tdName"+id).textContent; + var eltag = document.getElementById("tdTag"+id).textContent; + /* + var elid = document.getElementById("tdId"+id).innerHTML; + var elname = document.getElementById("tdName"+id).innerHTML; + var eltag = document.getElementById("tdTag"+id).innerHTML; + */ + + var elcolor = $("#colorSelectorB"+id).css("background-color"); + + console.log(elid+','+elname+','+eltag+','+elcolor); + + var topic_id = JSON.parse('<?php echo json_encode($topic_id) ?>'); + + $.ajax({ + url : './EditTaglist', + async : false, + type : 'POST', + data : 'func=SaveTagElement'+'&id='+elid+'&name='+elname+'&tag='+eltag+'&color='+elcolor+'&topic_id='+topic_id, + error: function (e) { + console.log("error when saving Tag"); + }, + success: function (e) { + alert("Saved!"); + document.location.reload(true); + } + }).done(function(result) { + }); +} + +function DeleteTag( id ) { + $("#tr"+id).remove(); + $.ajax({ + url : './EditTaglist', + async : false, + type : 'POST', + data : 'func=DeleteTag'+'&id='+id+'&type=delete' + }).done(function(result) { + alert("Saved!"); + }); +} + + +$(document).on("click", "[name=tdName]", function () { + if ( $("#input"+this.id).length > 0 ) { + return; + } + var topic_tag_id = JSON.parse('<?php echo json_encode($topic_tag_id) ?>'); + if (this.id == "tdName"+topic_tag_id) { + return; + } + //var startPageValue = this.innerHTML; + var startPageValue = this.textContent; + this.innerHTML=""; + var newTextBox = document.createElement("input"); + newTextBox.id = "input"+this.id; + newTextBox.setAttribute("name","inputName"); + newTextBox.setAttribute("onfocus","this.select()"); + newTextBox.setAttribute("size","20"); + this.appendChild(newTextBox).value=startPageValue; + + $("#input"+this.id).focus(); +} ); + +$(document).on("click", "[name=tdTag]", function () { + if ( $("#input"+this.id).length > 0 ) { + return; + } + if (this.id == "tdTag"+topic_tag_id) { + return; + } + //var startPageValue = this.innerHTML; + var startPageValue = this.textContent; + this.innerHTML=""; + var newTextBox = document.createElement("input"); + newTextBox.id = "input"+this.id; + newTextBox.setAttribute("name","inputTag"); + newTextBox.setAttribute("onfocus","this.select()"); + newTextBox.setAttribute("size","20"); + this.appendChild(newTextBox).value=startPageValue; + + $("#input"+this.id).focus(); +} ); + +$(document).on("keypress", "[name=tdName]", function () { + if (event.keyCode == 13) { + $(this).focusout(); + } +}); + +$(document).on("keypress", "[name=tdTag]", function () { + if (event.keyCode == 13) { + $(this).focusout(); + } +}); + +$(document).on("focusout", "[name=tdName]", function () { + var value=$("#input"+this.id).val(); + $(this).html($(this).html() + value); + $("#input"+this.id).remove(); +}); + +$(document).on("focusout", "[name=tdTag]", function () { + var value=$("#input"+this.id).val(); + $(this).html($(this).html() + value); + $("#input"+this.id).remove(); +}); + + +<?php +// echo "addNode( \"".$topic_tag_id."\",\"".$taglistArray[$topic_tag_id][0]."\",\"".$taglistArray[$topic_tag_id][1]."\",\"".$taglistArray[$topic_tag_id][2]."\" );\n"; +?> + +addNode( "AddTag","","","" ); +addNode( "ID","Name","Tag","Color" ); + +<?php +foreach ( $taglistArray as $tagId => $tagArray ) { + echo "addNode( \"".$tagId."\",\"".$tagArray[0]."\",\"".$tagArray[1]."\",\"".$tagArray[2]."\" );\n"; +} +?> + +</script> +</body> +</html>