Changeset 1108
- Timestamp:
- 01/31/11 20:15:20 (13 years ago)
- Location:
- MDService2/trunk/MDService2
- Files:
-
- 81 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
MDService2/trunk/MDService2/WebContent/index.jsp
r1085 r1108 20 20 <script src="scripts/jquery/jquery-treeview/jquery.treeview.js" type="text/javascript"></script> 21 21 <script src="scripts/jquery/jquery-treeTable/jquery.treeTable.js" type="text/javascript"></script> 22 <script src="scripts/jquery/jsTree.v.1.0rc2/jquery.jstree.js" type="text/javascript"></script> 22 23 <script src="scripts/jquery/jquery-autocomplete/jquery.autocomplete.js" type="text/javascript"></script> 23 24 <script src="scripts/mdservice_helpers.js" type="text/javascript"></script> … … 86 87 <span id="qts_save" class="cmd cmd_save" ></span> 87 88 <div id="userqueries" ></div> 89 90 <div id="usertermsets" > 91 <label>Termsets</label><select id="ts_select" ></select> 92 <span id="ts_add" class="cmd cmd_add" ></span> 93 <span id="ts_delete" class="cmd cmd_del" ></span> 94 </div> 95 <label>name</label> 96 <input type="text" id="ts_input" ></input> 97 <span id="ts_save" class="cmd cmd_save" ></span> 98 <div id="userterms" ></div> 88 99 </div> 89 100 -
MDService2/trunk/MDService2/WebContent/scripts/mdservice2_ui.js
r1085 r1108 340 340 341 341 function preprocessJSON(json){ 342 342 if (json["WorkspaceProfile"]["CustomTermsets"] != undefined){ 343 344 if (String(json["WorkspaceProfile"]["CustomTermsets"]) != "null") { 345 if (json["WorkspaceProfile"].CustomTermsets[0] == undefined){ 346 var jj = json["WorkspaceProfile"]["CustomTermsets"]["item"]; 347 delete json["WorkspaceProfile"]["CustomTermsets"]["item"]; 348 json["WorkspaceProfile"]["CustomTermsets"] = [{}]; 349 json["WorkspaceProfile"]["CustomTermsets"][0] = jj; 350 } 351 352 353 $.each(json["WorkspaceProfile"]["CustomTermsets"], function(i,item) { 354 if (this.Terms[0] == undefined){ 355 var jj = this["Terms"]["item"]; 356 delete this["Terms"]["item"]; 357 this.Terms = [{}]; 358 this.Terms[0] = jj; 359 } 360 }); 361 } 362 } 343 363 if (json["WorkspaceProfile"].Querysets[0] == undefined){ 344 364 var jj = json["WorkspaceProfile"]["Querysets"]["item"]; … … 582 602 583 603 } 584 604 ////////////////////////////////ttermsets 605 function appendTermUI(json,i, ts){ 606 var del = ''; 607 var name = ''; 608 //var ul; 609 var id = $(ts).attr('id'); 610 611 del = '<span class="cmd cmd_del" ><xsl:text> </xsl:text></span>'; 612 name = '<div class="cmds-elem-prop"><span class="label">name:</span><input type="text" class="input-name" value="' + json + '"></div>'; 613 614 615 var x = '<div class="cmds-elem-plus" ><span class="cmd cmd_load"></span><span class="detail-caller" ><a href="'+id + '_'+ i+'" >' + 616 json + '</a></span>' + 617 del + 618 '<div class="detail" ></div>'; 619 620 $(ts).append(x); 621 622 createTooltip(ts); 623 } 624 625 function createTermsUI(json, ts){ 626 $(ts).children().remove(); 627 if (json.Terms != "null") { 628 $.each(json.Terms, function(i,item) { 629 630 // if (this != "null"){ 631 appendTermUI(item,i, ts); 632 //} 633 }); 634 } 635 636 } 637 638 639 function loadTermsets(json) { 640 641 var $select; 642 $select = $('#ts_select'); 643 644 $select.find("option").remove(); 645 if (String(json) != "null") { 646 $.each(json, function(i,item) { 647 $select.append(new Option(item.name, i)); 648 }); 649 650 651 // find id of selected 652 if ($select.find("option").size() > 0) { 653 $select.find("option").first().attr("selected","true"); 654 var id = parseInt($select.find("option:selected").val()); 655 var jsonq = json[id]; 656 657 $('#ts_input').val(jsonq["name"]); 658 qs = $("#userterms"); 659 createTermsUI(jsonq, qs); 660 } 661 662 $select.change(function(data){ 663 if ($select.find("option").size() > 0) { 664 // find id of selected 665 var id = parseInt($select.find("option:selected").val()); 666 var jsonq = json[id]; 667 668 $('#ts_input').val(jsonq["name"]); 669 qs = $("#userterms"); 670 671 createTermsUI(jsonq, qs); 672 } 673 }); 674 675 } 676 677 } 585 678 function saveWorkspace(type){ 586 679 var JSONText = JSON.stringify(jsonw["WorkspaceProfile"]); … … 612 705 function loadWorkspaceProfiles(){ 613 706 //empty json 614 jsonw = {'WorkspaceProfile':{' Termsets':'null','Repositories':'null','Querysets':'null','created':'null','lastchanged':'null','profilename':'null'}};707 jsonw = {'WorkspaceProfile':{'CustomTermsets':'null','Termsets':'null','Repositories':'null','Querysets':'null','created':'null','lastchanged':'null','profilename':'null'}}; 615 708 $('#qts_input').val(""); 616 709 … … 621 714 $("#serverqs").attr("data",JSON.stringify(json)); 622 715 //loadQuerysets(json["WorkspaceProfile"]["Querysets"],"server"); 716 //loadTermsets(json[""WorkspaceProfile"]["Termsets"]); 623 717 loadRepositories(json["WorkspaceProfile"]["Repositories"]); 624 718 … … 634 728 jsonw = preprocessJSON(data); 635 729 loadQuerysets(jsonw["WorkspaceProfile"]["Querysets"],"user"); 730 loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]); 636 731 //createTooltip(this); 637 732 }); … … 639 734 } 640 735 function loadCollections(ini){ 641 736 var coll_uri = link('collections','htmllist?repository=' + getSelectedRepository()); 737 738 $("#collections").jstree({ 739 "html_data" : { 740 "ajax" : { 741 "url" : coll_uri, 742 "data" : function (n) { 743 return { //id : n.attr ? n.attr("id") : 0 , 744 collection : n.attr ? n.attr("handle") : "", 745 maxdepth : n.attr ? 2 : 1 }; 746 } 747 } 748 }, 749 types : { 750 // the default type 751 "default" : { 752 "max_children" : -1, 753 "max_depth" : -1, 754 "valid_children": "all" 755 756 } 757 }, 758 759 "plugins" : [ "themes", "html_data", "ui" , "checkbox", "types" ] 760 }); 761 762 $('#collections').bind('loaded.jstree reopen.jstree', function(event, data) 763 { 764 if (ini) { 765 loadQueryFromUriParams(); 766 } 767 768 var dataelems = data.inst.get_container() 769 createTooltip($(dataelems)); 770 //data.inst.get_container().unblock(); 771 }); 772 773 $('#collections').bind("change_state.jstree", function (event, data) { 774 var dataelems = data.inst.get_container(); 775 var coll; 776 collections.splice(0, collections.length); 777 778 $(this).find('.jstree-checked').each(function(index){ 779 if (!($(this).parent().parent().hasClass("jstree-checked")) ) { 780 //notifyUser("selection...:" + index + ":" + String.trim($(this).children('a').text()) + $(this).attr("handle"),'debug'); 781 coll = new Collection($(this).attr("handle"), String.trim($(this).children('a').text())); 782 collections[collections.length] = coll; 783 } 784 }); 785 786 collections_widget.load(collections); 787 788 }); 789 790 /* 642 791 $('#collections').load(link('collections','htmllist?repository=' + getSelectedRepository()), //profile.collections.base_uri, 643 792 function() { … … 736 885 notifyUser("selection...:" + index + ":" + this.textContent + $(this).attr("handle"),'debug'); 737 886 coll = new Collection($(this).attr("handle"), this.textContent); 738 collections[collections.length] = coll; 739 /* 740 if (index == 0) { 741 collection_text = this.textContent; 742 } else { 743 collection_text = collection_text + ", " + this.textContent; 744 } 745 */ 746 887 collections[collections.length] = coll; 747 888 }); 748 889 //$('#collection_list').attr("value",collection_text); 749 890 collections_widget.load(collections); 750 891 });// end of treeview click 751 });// end of collection callback 892 });// end of collection callback 893 */ 752 894 } 753 895 function loadTerms(){ … … 1195 1337 }); 1196 1338 1339 $('#columns-widget .cmd_save').click(function(event) { 1340 var terms = [{}]; 1341 1342 var id = $("#ts_select option").size(); 1343 var name = "termset_" + id; 1344 1345 columns_widget.getListWidget().find('.list-item').each(function(i,elem){ 1346 terms[i] = $(elem).text(); 1347 }); 1348 1349 var dt = new Date(); 1350 var str_time = dateFormat(dt);//dt.toString("dd/mm/yyyy HH:mm:ss"); 1351 var jsont = {"name":name, "time" : str_time, "Terms" :terms}; 1352 if (jsonw["WorkspaceProfile"]["CustomTermsets"] == undefined) { 1353 jsonw["WorkspaceProfile"]["CustomTermsets"] = [{}]; 1354 } 1355 jsonw["WorkspaceProfile"]["CustomTermsets"][id] = jsont; 1356 1357 saveWorkspace("USER"); 1358 loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]); 1359 //createTermsUI(jsonw["WorkspaceProfile"]["CustomTermsets"][id],$('#userterms')); 1360 $("#ts_select option").removeAttr("selected"); 1361 $("#ts_select option").last().attr("selected","selected"); 1362 $('#ts_input').attr("value",name); 1363 createTermsUI(jsonw["WorkspaceProfile"]["CustomTermsets"][id],$('#userterms')) 1364 }); 1365 1197 1366 /* 1198 1367 $('#querylist .query_header').find('.cmd_del').live('click', function(event) { … … 1401 1570 }); 1402 1571 1572 $('#ts_save').click(function(){ 1573 var id = $("#ts_select option:selected").val(); 1574 //notifyUser($('#qts_input').val() + $('#qts_input').text(),'debug'); 1575 jsonw["WorkspaceProfile"]["CustomTermsets"][id]["name"] = $('#ts_input').val(); 1576 1577 $("#ts_select option:selected").text( $('#ts_input').val()); 1578 saveWorkspace("USER"); 1579 }); 1580 $('#ts_add').click(function(){ 1581 var new_name = "new_termset"; 1582 1583 var id = $('#ts_select option').size(); 1584 var dt = new Date(); 1585 var str_time = dateFormat(dt);//dt.toString("yyyy-MM-dd HH:mm:ss"); 1586 1587 if (id == 0){ 1588 jsonw["WorkspaceProfile"]["CustomTermsets"] = [{}]; 1589 } 1590 1591 jsonw["WorkspaceProfile"]["CustomTermsets"][id] = {"name":new_name,"created":str_time , "Terms" : "null"}; 1592 1593 saveWorkspace("USER"); 1594 //todo 1595 1596 //loadWorkspace(jsonw["WorkspaceProfile"]["Querysets"]); 1597 $("#ts_select").append(new Option(new_name, id)); 1598 $("#ts_select").find('option').attr("selected","false"); 1599 $("#ts_select").find('option').last().attr("selected","true"); 1600 $('#ts_input').val(new_name); 1601 createTermsUI(jsonw["WorkspaceProfile"]["CustomTermsets"][id],$('#userterms')) 1602 }); 1603 $('#ts_delete').click(function(){ 1604 var count = $("#ts_select option").size(); 1605 1606 //if (count > 1){ 1607 var id = parseInt($("#ts_select option:selected").val()); 1608 var size = jsonw["WorkspaceProfile"].CustomTermsets.length; 1609 1610 for (var i=id;i<size-1;i++){ 1611 jsonw["WorkspaceProfile"].CustomTermsets[i] = jsonw["WorkspaceProfile"].CustomTermsets[i+1]; 1612 } 1613 1614 delete jsonw["WorkspaceProfile"].CustomTermsets[size-1]; 1615 jsonw["WorkspaceProfile"]["CustomTermsets"].length = size-1; 1616 // set null string , if 0 termsets 1617 if (count == 1) { 1618 jsonw["WorkspaceProfile"]["CustomTermsets"] = "null"; 1619 } 1620 saveWorkspace("USER"); 1621 loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]); 1622 }); 1623 1624 $('#userterms .cmd_load').live('click',function(event){ 1625 var term = String.trim($(this).parent().find('a').text()); 1626 columns_widget.add(new ListItem(term)); 1627 1628 }); 1629 $('#userterms .cmd_del').live('click', function(event){ 1630 var id = parseInt($("#ts_select option:selected").val()); 1631 var str = $(this).parent().find('a').attr("href"); 1632 var iq = parseInt(str.substring(10)); 1633 var size = jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"].length; 1634 1635 for (var i=iq;i<size-1;i++){ 1636 jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"][i] = jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"][i+1]; 1637 } 1638 1639 delete jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"][size-1]; 1640 jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"].length = size-1; 1641 1642 if (size == 1){ 1643 jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"] = "null"; 1644 } 1645 1646 saveWorkspace("USER"); 1647 loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]); 1648 //$("#ts_select option").remove(); 1649 //$("#ts_select option").first().attr("selected","true"); 1650 }); 1651 1652 1403 1653 $('#collections .cmd_load').live('click',function(event){ 1404 1654 hideWelcomeMessage(); 1405 1655 var collection_text = ""; 1406 var coll = $(this). next().next().next();1656 var coll = $(this).parent(); 1407 1657 collections.splice(0, collections.length); 1408 collections[0] = new Collection($(coll).attr("handle"), $(coll).html());1658 collections[0] = new Collection($(coll).attr("handle"), String.trim($(coll).children('a').text())); 1409 1659 var columns = columns_widget.getColumnsListText();//$('#columns_list').attr("value"); 1410 1660 var query = new Query(collections,columns,"",""); -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_widgets.js
r1062 r1108 110 110 111 111 ListWidget.prototype.init = function () { 112 var x = "<input type='text' class='input-widget autocomplete-input' /><div class='index-context'><table></table></div><div class='list-widget'></div>"; 112 var x_save = ""; 113 114 if ($(this.parent_div).attr("id") == 'columns-widget') { 115 x_save = "<span class='cmd cmd_save' />"; 116 } 117 118 var x = "<input type='text' class='input-widget autocomplete-input' />" + 119 x_save + 120 "<div class='index-context'><table></table></div><div class='list-widget'></div>"; 113 121 $(this.parent_div).append(x); 114 122 … … 257 265 ListItem.prototype.render = function () { 258 266 259 var x = "<div id='" + this.listid + "'class='list-item'><span>" + this.name + "</span><span class='cmd cmd_del'> </span></div>"; 267 var x_save = ""; 268 269 //if ($(this.parent_container).parent().attr("id") == 'columns-widget') { 270 // x_save = "<span class='cmd cmd_save' />"; 271 //} 272 273 var x = "<div id='" + this.listid + "'class='list-item'><span>" + this.name + "</span><span class='cmd cmd_del'> </span>" + x_save + "</div>"; 260 274 261 275 $(this.parent_container).prepend(x); -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/CollectionProxyAction.java
r1085 r1108 36 36 37 37 URL targetURL = null; 38 //targetURL =new URL( getBaseURL(), getActionkey()); 39 targetURL = new URL(getBaseURL(), "?operation=getCollections&maxdepth=" + this.getMaxdepth() + "&collection="); 38 //targetURL =new URL( getBaseURL(), getActionkey()); 39 //FIXME: get maxdepth-constant out of here !! 40 String params = ""; 41 params = "&maxdepth=" + getMaxdepth(); 42 params = params + "&collection="; 43 if (getCollection() != null){ 44 params = params + getCollection(); 45 } 46 targetURL = new URL(getBaseURL(), "?operation=getCollections" + params); 40 47 //Admin.notifyUser("CollectionProxy.targetURL:" + targetURL); 41 48 -
MDService2/trunk/MDService2/src/xsl/collection2view.xsl
r1081 r1108 66 66 </xsl:when> 67 67 <xsl:otherwise> 68 <div> 69 <ul class="treeview"> 68 <!-- <div> 69 --> 70 71 <ul class="treeview"> 70 72 <xsl:apply-templates select="*" > 71 73 <xsl:sort order="ascending" select="@n" /> 72 74 </xsl:apply-templates> 73 75 </ul> 74 </div> 76 <!-- </div> 77 --> 75 78 </xsl:otherwise> 76 79 </xsl:choose> 77 80 78 81 </xsl:template> 79 82 <!-- treeview --> 80 83 <xsl:template match="c" > 81 84 <xsl:variable name="lv" select="count(ancestor::c)" /> 82 85 <xsl:variable name="root" select="/Collections/@root" /> 86 87 <xsl:choose> 88 <xsl:when test="($lv>0) or $root='root'"> 83 89 <li> 84 <span class="cmd cmd_load"> </span> 90 <xsl:attribute name="class"> 91 <xsl:choose> 92 <xsl:when test="@cnt_subcolls=0">jstree-leaf</xsl:when> 93 <xsl:otherwise>jstree-closed</xsl:otherwise> 94 </xsl:choose> 95 </xsl:attribute> 96 <xsl:attribute name="handle"> 97 <xsl:value-of select="@handle"/> 98 </xsl:attribute> 99 <span class="cmd cmd_load"> </span> 100 101 <!-- 102 <label class="showselection" count="0" some_selection="0" >o</label> 103 <input type="checkbox" class="selection" child="undefined" /> 104 <span class="folder" > 105 <xsl:attribute name="handle"> 106 <xsl:value-of select="@handle"/> 107 </xsl:attribute> 108 <a href="{my:formURL('record','htmldetail', @handle )}" ><xsl:value-of select="@n" /></a></span> 109 <span class="note"> |<xsl:value-of select="@cnt" />|</span><span class="cmd cmd_detail"> </span> 110 --> 111 <a href="{my:formURL('record','htmldetail', @handle )}" ><xsl:value-of select="@n" /></a> 112 113 <xsl:if test="c and ($lv<$max_depth or $max_depth=0)"> 114 <ul> 115 <xsl:choose> 116 <xsl:when test="$sort='s'"> 117 <xsl:apply-templates select="c" > 118 <xsl:sort order="descending" select="@cnt" data-type="number" /> 119 </xsl:apply-templates> 120 </xsl:when> 121 <xsl:otherwise> 122 <xsl:apply-templates select="c" > 123 <xsl:sort order="ascending" select="@n" /> 124 </xsl:apply-templates> 125 </xsl:otherwise> 126 </xsl:choose> 127 </ul> 128 129 </xsl:if> 130 </li> 131 </xsl:when> 132 <xsl:otherwise> 133 <xsl:if test="c and ($lv<$max_depth or $max_depth=0)"> 134 135 <xsl:choose> 136 <xsl:when test="$sort='s'"> 137 <xsl:apply-templates select="c" > 138 <xsl:sort order="descending" select="@cnt" data-type="number" /> 139 </xsl:apply-templates> 140 </xsl:when> 141 <xsl:otherwise> 142 <xsl:apply-templates select="c" > 143 <xsl:sort order="ascending" select="@n" /> 144 </xsl:apply-templates> 145 </xsl:otherwise> 146 </xsl:choose> 147 148 </xsl:if> 149 150 </xsl:otherwise> 151 </xsl:choose> 152 </xsl:template> 153 <!-- old version treeview 154 155 <xsl:template match="c" > 156 <xsl:variable name="lv" select="count(ancestor::c)" /> 157 158 <li> 159 <xsl:attribute name="class"> 160 <xsl:choose> 161 <xsl:when test="@cnt_subcolls=0"> 162 jstree-leaf 163 </xsl:when> 164 <xsl:otherwise> 165 jstree-closed 166 </xsl:otherwise> 167 </xsl:choose> 168 </xsl:attribute> 169 <xsl:attribute name="handle"> 170 <xsl:value-of select="@handle"/> 171 </xsl:attribute> 172 <span class="cmd cmd_load"> </span> 85 173 <label class="showselection" count="0" some_selection="0" >o</label> 86 174 <input type="checkbox" class="selection" child="undefined" /> … … 91 179 <a href="{my:formURL('record','htmldetail', @handle )}" ><xsl:value-of select="@n" /></a></span> 92 180 <span class="note"> |<xsl:value-of select="@cnt" />|</span><span class="cmd cmd_detail"> </span> 93 <!-- 94 <span class="folder"><xsl:value-of select="@n" />(<xsl:value-of select="@cnt" />) 95 </span> 96 --> 97 181 98 182 <xsl:if test="c and ($lv<$max_depth or $max_depth=0)"> 99 183 <ul> … … 115 199 </li> 116 200 </xsl:template> 117 201 --> 202 118 203 <xsl:template match="c" mode="detail" > 119 204 <xsl:param name="parentid" select="'c-'" /> -
MDService2/trunk/MDService2/src/xsl/terms2view.xsl
r1081 r1108 440 440 $(this).after('<div class="ui-context-dialog cmds-ui-closable cmd cmd_get" ></div>'); 441 441 detail = $(this).parent().children('.ui-context-dialog'); 442 442 443 443 detail.load($(this).attr('href'), function(event) { 444 444 $(this).removeClass('cmd_get cmd');
Note: See TracChangeset
for help on using the changeset viewer.