| 8 | | var createuri= uri + 'create?exp=' |
| 9 | | var updateuri= uri + 'update?exp=' |
| 10 | | var executeuri= uri + 'execute?exp=' |
| 11 | | var removeuri= uri + 'remove?exp=' |
| 12 | | |
| 13 | | var facetsuri= '/facets/execute?exp=' |
| 14 | | |
| 15 | | var facetoriginalexpression=null; |
| | 8 | var createuri = uri + 'create?exp=' |
| | 9 | var updateuri = uri + 'update?exp=' |
| | 10 | var executeuri = uri + 'execute?exp=' |
| | 11 | var removeuri = uri + 'remove?exp=' |
| | 12 | |
| | 13 | var facetsuri = '/facets/execute?exp=' |
| | 14 | |
| | 15 | var facetoriginalexpression = null; |
| 20 | | //Removing a resource from a set. Remove an element from a set is the same |
| 21 | | // than do the difference from the original set and the resource |
| 22 | | if (item.hasClassName('resource')){ |
| 23 | | parameters.set('SET', item.up('._WINDOW')); |
| 24 | | parameters.set('REMOVE', item); |
| 25 | | ajax_update(item.up('._WINDOW').id,updateuri + new SemanticExpression('SET').difference('REMOVE') + '&uri=' + item.up('._WINDOW').id); |
| 26 | | } |
| 27 | | else { |
| 28 | | //Removing a entire set |
| 29 | | ajax_remove('/explorator/execute?exp=remove(\'' + item.id + '\')'); |
| 30 | | } |
| 31 | | },crt_refresh: function(item,view,filter){ |
| 32 | | //reload the set . |
| 33 | | ajax_update(item.id,executeuri + 'refresh(\'' + item.id +'\',:'+view+',\''+filter+'\')'); |
| 34 | | }, |
| 35 | | //open a new window where his content will be defined by the item.exp attribute. |
| 36 | | ctr_open: function(item){ |
| 37 | | parameters.set('O', item); |
| | 20 | //Removing a resource from a set. Remove an element from a set is the same |
| | 21 | // than do the difference from the original set and the resource |
| | 22 | if (item.hasClassName('resource')) { |
| | 23 | parameters.set('SET', item.up('._WINDOW')); |
| | 24 | parameters.set('REMOVE', item); |
| | 25 | ajax_update(item.up('._WINDOW').id, updateuri + new SemanticExpression('SET').difference('REMOVE') + '&uri=' + item.up('._WINDOW').id); |
| | 26 | } |
| | 27 | else { |
| | 28 | //Removing a entire set |
| | 29 | ajax_remove('/explorator/execute?exp=remove(\'' + item.id + '\')'); |
| | 30 | } |
| | 31 | }, |
| | 32 | crt_refresh: function(item, view, filter){ |
| | 33 | //reload the set . |
| | 34 | ajax_update(item.id, executeuri + 'refresh(\'' + item.id + '\',:' + view + ',\'' + filter + '\')'); |
| | 35 | }, |
| | 36 | //open a new window where his content will be defined by the item.exp attribute. |
| | 37 | ctr_open: function(item){ |
| | 38 | parameters.set('O', item); |
| 40 | | //Create or replace the facet window with a new content. |
| 41 | | crt_facet: function(item,name){ |
| 42 | | facetoriginalexpression=null; |
| 43 | | facetsetmove(); |
| 44 | | if ($('facets')){ |
| 45 | | ajax_update('facets', facetsuri+'facet' + Element.exp(item) + '&name='+name); |
| 46 | | }else{ |
| 47 | | ajax_request_forfacet(facetsuri+'facet' + Element.exp(item)+ '&name='+name,item); |
| 48 | | } |
| | 41 | //Create or replace the facet window with a new content. |
| | 42 | crt_facet: function(item, name){ |
| | 43 | facetoriginalexpression = null; |
| | 44 | |
| | 45 | |
| | 46 | facetsetmove(); |
| | 47 | if ($('facets')) { |
| | 48 | ajax_update('facets', facetsuri + 'facet' + item.exp() + '&name=' + name); |
| | 49 | } |
| | 50 | else { |
| | 51 | |
| | 52 | ajax_request_forfacet(facetsuri + 'facet' + item.exp() + '&name=' + name, item); |
| | 53 | } |
| 50 | | crt_infer: function(item){ |
| 51 | | facetoriginalexpression=null; |
| 52 | | facetsetmove(item); |
| 53 | | if ($('facets')){ |
| 54 | | ajax_update('facets',facetsuri+'infer' + Element.exp(item)); |
| 55 | | }else{ |
| 56 | | ajax_request_forfacet(facetsuri+ 'infer' + Element.exp(item),item); |
| 57 | | } |
| 58 | | }, |
| 59 | | crt_dofacet: function(item){ |
| 60 | | facetwindow = item.up('._WINDOW').up('._WINDOW'); |
| 61 | | if (facetoriginalexpression==null){ |
| 62 | | facetoriginalexpression=facetwindow.readAttribute('exp') ; |
| 63 | | } |
| 64 | | facetwindow.setAttribute('exp',facetoriginalexpression); |
| 65 | | parameters.set('C', facetwindow); |
| 66 | | expression = new SemanticExpression('C'); |
| 67 | | $$(".values").each(function(x){ |
| 68 | | allchecked = x.select("._checkboxfacet:checked"); |
| 69 | | if (allchecked.size() > 0 ){ |
| 70 | | parameters.set('A', allchecked); |
| 71 | | expression.intersection('A'); |
| 72 | | } |
| 73 | | }); |
| 74 | | ajax_update(facetwindow.readAttribute('set'), updateuri + expression + '&uri=' + Element.set(facetwindow)); |
| 75 | | |
| 76 | | }, |
| 77 | | sum: function (item){ |
| 78 | | ajax_update(item.id, uri + "sum?uri=" + item.id ); |
| 79 | | }, |
| 80 | | set: function(item){ |
| | 55 | crt_infer: function(item){ |
| | 56 | facetoriginalexpression = null; |
| | 57 | |
| | 58 | facetsetmove(item); |
| | 59 | if ($('facets')) { |
| | 60 | ajax_update('facets', facetsuri + 'infer' + item.exp()); |
| | 61 | } |
| | 62 | else { |
| | 63 | |
| | 64 | ajax_request_forfacet(facetsuri + 'infer' + item.exp(), item); |
| | 65 | } |
| | 66 | }, |
| | 67 | |
| | 68 | crt_dofacet: function(item){ |
| | 69 | facetwindow = item.up('._WINDOW').up('._WINDOW'); |
| | 70 | if (facetoriginalexpression == null) { |
| | 71 | facetoriginalexpression = facetwindow.readAttribute('exp'); |
| | 72 | } |
| | 73 | facetwindow.setAttribute('exp', facetoriginalexpression); |
| | 74 | parameters.set('C', facetwindow); |
| | 75 | expression = new SemanticExpression('C'); |
| | 76 | $$(".values").each(function(x){ |
| | 77 | allchecked = x.select("._checkboxfacet:checked"); |
| | 78 | if (allchecked.size() > 0) { |
| | 79 | parameters.set('A', allchecked); |
| | 80 | expression.intersection('A'); |
| | 81 | } |
| | 82 | }); |
| | 83 | ajax_update(facetwindow.readAttribute('set'), updateuri + expression + '&uri=' + Element.set(facetwindow)); |
| | 84 | |
| | 85 | }, |
| | 86 | sum: function(item){ |
| | 87 | ajax_update(item.id, uri + "sum?uri=" + item.id); |
| | 88 | }, |
| | 89 | set: function(item){ |
| 104 | | removeCSS(Element.exp(item)); |
| 105 | | $$('.SELECTED').invoke('addClassName', Element.exp(item)); |
| 106 | | item.addClassName(Element.exp(item)); |
| 107 | | parameters.set(item.id, $$('.SELECTED')); |
| 108 | | } |
| | 115 | removeCSS(Element.exp(item)); |
| | 116 | $$('.SELECTED').invoke('addClassName', Element.exp(item)); |
| | 117 | item.addClassName(Element.exp(item)); |
| | 118 | parameters.set(item.id, $$('.SELECTED')); |
| | 119 | } |
| | 120 | |
| 130 | | setParameter(item); |
| 131 | | parameters.set('operation','difference' ); |
| 132 | | }; |
| 133 | | }); |
| 134 | | $$('._equal').each(function(item){ |
| 135 | | item.onclick = function(){ |
| 136 | | parameters.set('B', $$('.SELECTED')); |
| 137 | | if(parameters.get('operation') == 'union'){ |
| 138 | | ajax_create(new SemanticExpression('A').union('B'));} |
| 139 | | else if(parameters.get('operation') == 'intersection') |
| 140 | | ajax_create(new SemanticExpression('A').intersection('B')); |
| 141 | | else if(parameters.get('operation') == 'difference') |
| 142 | | ajax_create(new SemanticExpression('A').difference('B')); |
| 143 | | else{//spo |
| 144 | | if (validation_spo()) return; |
| 145 | | parameters.set(item.id, Element.exp(item)); |
| 146 | | var view = 'subject_view'; |
| 147 | | if (parameters.get(':s') != undefined && parameters.get(':p') != undefined && parameters.get(':o') == undefined ){ |
| 148 | | view = 'object_view'; |
| 149 | | } |
| 150 | | ajax_create(new SemanticExpression().spo(':s', ':p', ':o', ':r') + "&view=" + view); |
| 151 | | } |
| 152 | | clear(); |
| 153 | | }; |
| 154 | | }); |
| 155 | | $$('._sum').each(function(item){ |
| 156 | | item.onclick = function(){ |
| | 142 | setParameter(item); |
| | 143 | parameters.set('operation', 'difference'); |
| | 144 | }; |
| | 145 | }); |
| | 146 | $$('._equal').each(function(item){ |
| | 147 | item.onclick = function(){ |
| | 148 | parameters.set('B', $$('.SELECTED')); |
| | 149 | if (parameters.get('operation') == 'union') { |
| | 150 | ajax_create(new SemanticExpression('A').union('B')); |
| | 151 | } |
| | 152 | else |
| | 153 | if (parameters.get('operation') == 'intersection') |
| | 154 | ajax_create(new SemanticExpression('A').intersection('B')); |
| | 155 | else |
| | 156 | if (parameters.get('operation') == 'difference') |
| | 157 | ajax_create(new SemanticExpression('A').difference('B')); |
| | 158 | else {//spo |
| | 159 | if (validation_spo()) |
| | 160 | return; |
| | 161 | parameters.set(item.id, Element.exp(item)); |
| | 162 | var view = 'subject_view'; |
| | 163 | if (parameters.get(':s') != undefined && parameters.get(':p') != undefined && parameters.get(':o') == undefined) { |
| | 164 | view = 'object_view'; |
| | 165 | } |
| | 166 | ajax_create(new SemanticExpression().spo(':s', ':p', ':o', ':r') + "&view=" + view); |
| | 167 | } |
| | 168 | clear(); |
| | 169 | }; |
| | 170 | }); |
| | 171 | $$('._sum').each(function(item){ |
| | 172 | item.onclick = function(){ |
| 178 | | //Remove all CSS added to which resource selected. |
| 179 | | ['A','B','S','P','O'].each (function(item){removeCSS(item);} ); |
| 180 | | removeCSS('SELECTED'); |
| 181 | | parameters = new Hash(); |
| 182 | | |
| 183 | | } |
| 184 | | function removeCSS(item) { |
| 185 | | $$('.' + item).invoke('removeClassName', item); |
| 186 | | } |
| | 197 | //Remove all CSS added to which resource selected. |
| | 198 | ['A', 'B', 'S', 'P', 'O'].each(function(item){ |
| | 199 | removeCSS(item); |
| | 200 | }); |
| | 201 | removeCSS('SELECTED'); |
| | 202 | parameters = new Hash(); |
| | 203 | |
| | 204 | } |
| | 205 | |
| | 206 | function removeCSS(item){ |
| | 207 | $$('.' + item).invoke('removeClassName', item); |
| | 208 | } |
| | 209 | |
| 205 | | $$('._form_facet').each( function(item){ |
| 206 | | item.onsubmit = function(){ |
| 207 | | parameters.set('A', $$('.SELECTED')); |
| 208 | | ajax_request("/facets/create?name="+$F(this['facetname'])+"&exp="+ new SemanticExpression('A')); |
| 209 | | clear(); |
| 210 | | return false; |
| 211 | | }; |
| 212 | | }); |
| 213 | | |
| 214 | | $$('._facetlist').each( function(item){ |
| 215 | | item.onchange = function(){ |
| 216 | | //gets the set that has been faceted and computes the facet again. |
| 217 | | $$('div#facetgroup > div:nth-child(3)')[0].crt_facet($F(this)); |
| 218 | | return false; |
| 219 | | }; |
| 220 | | }); |
| | 228 | $$('._form_facet').each(function(item){ |
| | 229 | item.onsubmit = function(){ |
| | 230 | parameters.set('A', $$('.SELECTED')); |
| | 231 | ajax_request("/facets/create?name=" + $F(this['facetname']) + "&exp=" + new SemanticExpression('A')); |
| | 232 | clear(); |
| | 233 | return false; |
| | 234 | }; |
| | 235 | }); |
| | 236 | |
| | 237 | $$('._facetlist').each(function(item){ |
| | 238 | item.onchange = function(){ |
| | 239 | //gets the set that has been faceted and computes the facet again. |
| | 240 | $$('div#facetgroup > div:nth-child(3)')[0].crt_facet($F(this)); |
| | 241 | return false; |
| | 242 | }; |
| | 243 | }); |
| 291 | | var resource = Element.resource(x); |
| 292 | | if (resource == 'null'){ |
| 293 | | var exp = x.readAttribute('exp'); |
| 294 | | if (exp.indexOf (':o,:o')!= -1) |
| 295 | | { |
| 296 | | return 'SemanticExpression.new' + encodeURIComponent(exp.replace(":o,:o",':o')) +'.resources(:o)' ; |
| 297 | | }else if (exp.indexOf (':o,:p') != -1) |
| 298 | | { |
| 299 | | return 'SemanticExpression.new' + encodeURIComponent(exp.replace(":o,:p",':o')) +'.resources(:p)' ; |
| 300 | | }else{ |
| 301 | | return 'SemanticExpression.new' + encodeURIComponent(exp) +'.resources(:s)' ; |
| 302 | | } |
| 303 | | }else{ |
| 304 | | return "['" + resource + "']" ; |
| 305 | | } |
| 306 | | }).join('|'); |
| 307 | | } |
| 308 | | return expression ; //returns a array of resources in ruby |
| 309 | | }, |
| 310 | | spo: function(s, p, o, r){ |
| | 314 | var resource = Element.resource(x); |
| | 315 | if (resource == 'null') { |
| | 316 | var exp = x.readAttribute('exp'); |
| | 317 | if (exp.indexOf(':o,:o') != -1) { |
| | 318 | return 'SemanticExpression.new' + encodeURIComponent(exp.replace(":o,:o", ':o')) + '.resources(:o)'; |
| | 319 | } |
| | 320 | else |
| | 321 | if (exp.indexOf(':o,:p') != -1) { |
| | 322 | return 'SemanticExpression.new' + encodeURIComponent(exp.replace(":o,:p", ':o')) + '.resources(:p)'; |
| | 323 | } |
| | 324 | else { |
| | 325 | return 'SemanticExpression.new' + encodeURIComponent(exp) + '.resources(:s)'; |
| | 326 | } |
| | 327 | } |
| | 328 | else { |
| | 329 | return "['" + resource + "']"; |
| | 330 | } |
| | 331 | }).join('|'); |
| | 332 | } |
| | 333 | return expression; //returns a array of resources in ruby |
| | 334 | }, |
| | 335 | spo: function(s, p, o, r){ |
| 331 | | Element.extend(el); |
| 332 | | var win = el.up('._WINDOW'); |
| 333 | | var exp = Element.exp(win); |
| 334 | | |
| 335 | | var select = el.previous('select'); |
| 336 | | |
| 337 | | var operator = $F(select); |
| 338 | | var value = el.value; |
| 339 | | |
| 340 | | ajax_update(win.id, uri + "addfilter?uri=" + win.id +"&op=" + operator +"&value=" +value); |
| 341 | | } |
| 342 | | |
| | 356 | Element.extend(el); |
| | 357 | var win = el.up('._WINDOW'); |
| | 358 | var exp = Element.exp(win); |
| | 359 | |
| | 360 | var select = el.previous('select'); |
| | 361 | |
| | 362 | var operator = $F(select); |
| | 363 | var value = el.value; |
| | 364 | |
| | 365 | ajax_update(win.id, uri + "addfilter?uri=" + win.id + "&op=" + operator + "&value=" + value); |
| | 366 | } |
| | 367 | |