X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fjcr%2Fclass%2Forg%2Fargeo%2Fjcr%2Fria%2Fviews%2FQueriesView.js;fp=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fjcr%2Fclass%2Forg%2Fargeo%2Fjcr%2Fria%2Fviews%2FQueriesView.js;h=7b6c2d84f8cc0c163e18d7fd4796a079d90db8e0;hb=42edced0ab53158ef52a4f8f1652a9d487a9ded5;hp=5a8dd840f6982c38857d718b1539215b03758d50;hpb=5defbc739b7b0d438e428a874aa46e86a9c7f78d;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/QueriesView.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/QueriesView.js index 5a8dd840f..7b6c2d84f 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/QueriesView.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/views/QueriesView.js @@ -9,12 +9,32 @@ qx.Class.define("org.argeo.jcr.ria.views.QueriesView", { */ commands : { init : { + "refresh_query" : { + label : "Refresh", + icon : "org.argeo.slc.ria/media-playback-start.png", + shortcut : null, + enabled : true, + menu : "Query", + toolbar : null, + callback : function(e) { + var selection = this.tree.getSelection(); + if(!selection.length) return; + var treeNode = selection[0]; + this._submitQuery(treeNode); + }, + selectionChange : function(viewId, selection){ + this.setEnabled(false); + if(selection && selection.length && !selection[0].getJcrNode){ + this.setEnabled(true); + } + } + }, "remove_query" : { label : "Remove", icon : "org.argeo.slc.ria/media-playback-start.png", shortcut : null, enabled : true, - menu : "Queries", + menu : "Query", toolbar : null, callback : function(e) { var selection = this.tree.getSelection(); @@ -142,31 +162,48 @@ qx.Class.define("org.argeo.jcr.ria.views.QueriesView", { return; } } - }else if(crtTreeSel.getParent() && crtTreeSel.getJcrNode().getParent().getPath() == selection[0].getPath()){ + }else if(crtTreeSel.getJcrNode().getParent() && crtTreeSel.getJcrNode().getParent().getPath() == selection[0].getPath()){ this.tree.setSelection([crtTreeSel.getParent()]); } }, this); this.tree.setContextMenu(org.argeo.ria.event.CommandsManager - .getInstance().createMenuFromIds(["open", "remove_query"])); + .getInstance().createMenuFromIds(["open", "refresh_query", "remove_query"])); }, - _submitQuery : function(){ - var query = this.textarea.getValue(); - var language = this.radio.getModelSelection()[0]; + _submitQuery : function(existingQueryFolder){ + var query; + var language; + if(existingQueryFolder){ + var model = existingQueryFolder.getModel(); + query = model.query; + language = model.language; + existingQueryFolder.removeAll(); + }else{ + query = this.textarea.getValue(); + language = this.radio.getModelSelection()[0]; + } var src = "/org.argeo.slc.webapp/queryJcrNodes.jcr?language="+language+"&statement="+query; var conn = new org.argeo.ria.remote.Request(src, "GET", "application/json"); conn.addListener("completed", function(response){ var json = response.getContent(); - this._addQueryResult(language, query, json); + this._addQueryResult(language, query, json, existingQueryFolder); }, this); conn.send(); }, - _addQueryResult : function(language, query, results){ - var treeQuery = new qx.ui.tree.TreeFolder((language=="xpath"?"XPath":"SQL") + " query : '"+query+"' ("+results.length+")"); - this.treeBase.add(treeQuery); + _addQueryResult : function(language, query, results, queryFolder){ + + var label = (language=="xpath"?"XPath":"SQL") + " query : '"+query+"' ("+results.length+")"; + if(queryFolder){ + queryFolder.setLabel(label); + var treeQuery = queryFolder; + }else{ + var treeQuery = new qx.ui.tree.TreeFolder(label); + treeQuery.setModel({language:language, query:query}); + this.treeBase.add(treeQuery); + } var realRoot = this.getDataModel().getRootNode(); var provider = realRoot.getNodeProvider(); for(var i=0;i