Changeset 1215 for MDService2
- Timestamp:
- 04/15/11 10:59:56 (13 years ago)
- Location:
- MDService2/trunk/MDService2
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
MDService2/trunk/MDService2/WebContent/scripts/mdservice_model.js
r1182 r1215 8 8 this.name = name; 9 9 }; 10 var collections = [];10 //var collections = []; 11 11 12 12 … … 94 94 return this.columns; 95 95 } 96 return this.columns_widget.get ColumnsListText();96 return this.columns_widget.getListText(); 97 97 }; 98 98 … … 128 128 params = params + "&options=withSummary"; 129 129 } 130 131 return params; 132 133 //return $.param(this.query); 134 }; 135 136 Query.prototype.sruquery_uri = function () { 137 var params = "?operation=searchRetrieve&version=1.2&"; 138 var q = ""; 139 if (this.query != null) { 140 q = "( " + escape(this.query) + " )"; 141 } 142 if (this.squery != null) { 143 escaped_sq =escape(this.squery).replace(/%20/g,"%2520").replace(/\%2[27]/g,"%2522") ; 144 escaped_sq = escaped_sq.replace(/%7C/g,"%257C").replace(/\+/g,"%2B"); 145 //params = params + "squery=" + escaped_sq + "&"; 146 if (q.length > 0){ 147 q = q + " and "; 148 } 149 q = q + escaped_sq; 150 } 151 params = params + "query=" + q + "&x-cmd-collections=" + this.getcollectiontext("index") + 152 "&startRecord=" + this.startItem + "&maximumRecords=" + this.maximumItems + "&x-cmd-repository=" + this.repository; 130 153 131 154 return params; … … 480 503 uri = link('base',this.query_uri()); 481 504 } else { 482 uri = link('recordset',type, this.query_uri()); 505 if (type == "xml"){ 506 uri = link('sru',this.sruquery_uri()); 507 } else { 508 uri = link('recordset',type, this.query_uri()); 509 } 483 510 } 484 511 return uri; … … 758 785 var query = queryset.queries[qid.substring(1)-1]; 759 786 760 query.repository = parseInt(getSelectedRepository());787 query.repository = getSelectedRepository(); 761 788 query.startItem = $('#' + qid ).find('.start_record').val(); 762 789 query.maximumItems = $('#' + qid ).find('.maximum_records').val(); … … 831 858 832 859 function addDetailFunctionality(q_header){ 860 q_header.find('.cmd_xml').click(function() { 861 var qid; 862 if ($(this).parent().attr('class') == 'result-header'){ 863 qid = $(this).closest('.query_wrapper').attr("id"); 864 } else { 865 var did = $(this).closest('.detail-wrapper').attr("id"); 866 var slid = $(this).closest('.detail-wrapper').find('.selectionlist-widget').attr("id"); 867 var detail = detailcaller.getdetail(did); 868 qid = detail.temp_id; 869 } 870 var q = queryset.getQuery(qid); 871 q.open("xml"); 872 }); 873 q_header.find('.cmd_link').click(function() { 874 var qid; 875 if ($(this).parent().attr('class') == 'result-header'){ 876 qid = $(this).closest('.query_wrapper').attr("id"); 877 } else { 878 var did = $(this).closest('.detail-wrapper').attr("id"); 879 var slid = $(this).closest('.detail-wrapper').find('.selectionlist-widget').attr("id"); 880 var detail = detailcaller.getdetail(did); 881 qid = detail.temp_id; 882 } 883 var q = queryset.getQuery(qid); 884 q.open("fullpage"); 885 }); 886 q_header.find('.cmd_page').click(function() { 887 var qid; 888 if ($(this).parent().attr('class') == 'result-header'){ 889 qid = $(this).closest('.query_wrapper').attr("id"); 890 } else { 891 var did = $(this).closest('.detail-wrapper').attr("id"); 892 var slid = $(this).closest('.detail-wrapper').find('.selectionlist-widget').attr("id"); 893 var detail = detailcaller.getdetail(did); 894 qid = detail.temp_id; 895 } 896 var q = queryset.getQuery(qid); 897 q.open(); 898 }); 899 833 900 q_header.find('.cmd_reload').click(function() { 834 901 // reload from columns-wrapper … … 851 918 } else 852 919 { 853 q.columns = selectionlistset.getselectionlist(slid).listwidget.get ColumnsListText();920 q.columns = selectionlistset.getselectionlist(slid).listwidget.getListText(); 854 921 } 855 922 } -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_ui.js
r1187 r1215 58 58 function addFunctionality(){ 59 59 // DEL COMMAND 60 /* 61 $('.ui-dialog-titlebar .cmd_del').live('click',function(){ 62 var did; 63 if ($(this).closest('.ui-dialog').length > 0){ 64 did = $(this).closest('.ui-dialog').find('.detail-wrapper').attr('id'); 65 } 66 if (did != undefined){ 67 detail = detailcaller.getdetail(did); 68 detail.close(); 69 } 70 $(this).closest('.ui-dialog').hide(); 71 }) 72 */ 60 73 $('.query_header .cmd_del').live('click', function(){ 61 74 $(this).closest('.query_wrapper').remove(); … … 155 168 // TODO we dont use columns-widget 156 169 var columns = "";//columns_widget.getColumnsListText(); 157 //var collections = collections_widget.get//searchclauseset.sctext;170 var collections = collections_widget.widgets; //searchclauseset.sctext; 158 171 var ws = $('#input-withsummary').attr("checked"); 159 172 … … 532 545 var collection_text = ""; 533 546 var coll = $(this).parent(); 534 collections.splice(0, collections.length); 547 var collections = []; 548 //collections.splice(0, collections.length); 535 549 collections[0] = new Collection($(coll).attr("handle"), String.trim($(coll).children('a').text())); 536 var columns = columns_widget.getColumnsListText();//$('#columns_list').attr("value"); 550 var columns = columns_widget.getListText();//$('#columns_list').attr("value"); 551 //var collections = collections_widget.getListText(); 537 552 var query = new Query(collections,columns,"",""); 538 553 query.repository = getSelectedRepository(); -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_ui_detail.js
r1181 r1215 258 258 notifyUser("removing detail:" + did); 259 259 260 //this.details.splice(i, 1); 260 var detail = this.getdetail(did); 261 //detail.clear(); 262 this.details[detail.name] = undefined; 261 263 262 264 $('#' + did).remove(); … … 366 368 367 369 if (data == null){ 368 var title = "";369 370 $('#detail-float').html(blankdata); 370 371 371 if ( $('#detail-float').dialog("isOpen")) { 372 var up = $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-titlebar-up'); 373 up.removeClass('.cmd_up .ui-dialog-titlebar-up').addClass('.cmd_get .ui-dialog-titlebar-get'); 374 var down = $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-titlebar-down'); 375 down.removeClass('.cmd_down .ui-dialog-titlebar-down').addClass('.cmd_get .ui-dialog-titlebar-get'); 376 377 $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-title').text(title); 378 } else { 379 $('#detail-float').dialog('open'); 380 $('#detail-float').siblings('div.ui-dialog-titlebar').addClass('ui-state-default'); 381 $('#detail-float').siblings('div.ui-dialog-titlebar').children().remove(); 382 var x = '<span class="cmd cmd_del ui-dialog-titlebar-del "/><span class="cmd cmd_get ui-dialog-titlebar-get"/><span class="ui-dialog-title">' + "" +'</span>'; 383 $('#detail-float').siblings('div.ui-dialog-titlebar').prepend(x); 384 385 } 386 372 openDialog("", true); 387 373 } else 388 { 389 374 { 390 375 // detail data 391 376 var did = $(data).attr("id"); … … 400 385 $("#detail-float").dialog('option', 'position', [pos.left,pos.top]); 401 386 387 402 388 $('#detail-float').find('.detail-header').hide(); 403 389 $('#detail-float').find('.detail-content').show(); 404 390 405 if ( $('#detail-float').dialog("isOpen")) { 406 var get = $('#detail-float').siblings('div.ui-dialog-titlebar').find('.cmd_get'); 407 get.removeClass('cmd_get'); 408 get.removeClass('ui-dialog-titlebar-get'); 409 get.addClass('cmd_up'); 410 get.addClass('ui-dialog-titlebar-up'); 411 412 $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-title').text(title); 413 } else { 414 //ui-state-default 415 $('#detail-float').dialog('open'); 416 $('#detail-float').siblings('div.ui-dialog-titlebar').addClass('ui-state-default'); 417 $('#detail-float').siblings('div.ui-dialog-titlebar').children().remove(); 418 var x = '<span class="cmd cmd_del ui-dialog-titlebar-del "/><span class="cmd cmd_up ui-dialog-titlebar-up"/><span class="ui-dialog-title">' + title +'</span>'; 419 $('#detail-float').siblings('div.ui-dialog-titlebar').append(x); 420 } 391 openDialog(title,false); 421 392 } 422 393 … … 425 396 } 426 397 } 398 399 function openDialog(title, is_get){ 400 if ( $('#detail-float').dialog("isOpen")) { 401 if (! is_get) { 402 var get = $('#detail-float').siblings('div.ui-dialog-titlebar').find('.cmd_get'); 403 get.removeClass('cmd_get').addClass('cmd_up'); 404 get.removeClass('ui-dialog-titlebar-get').addClass('ui-dialog-titlebar-up'); 405 } else { 406 var up = $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-titlebar-up'); 407 up.removeClass('.cmd_up .ui-dialog-titlebar-up').addClass('.cmd_get .ui-dialog-titlebar-get'); 408 var down = $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-titlebar-down'); 409 down.removeClass('.cmd_down .ui-dialog-titlebar-down').addClass('.cmd_get .ui-dialog-titlebar-get'); 410 } 411 $('#detail-float').siblings('div.ui-dialog-titlebar').find('.ui-dialog-title').text(title); 412 //$('#detail-float').closest('.ui-dialog').show(); 413 414 } else { 415 $('#detail-float').dialog('open'); 416 $('#detail-float').siblings('div.ui-dialog-titlebar').addClass('ui-state-default'); 417 $('#detail-float').siblings('div.ui-dialog-titlebar').children().remove(); 418 var x = '<span class="cmd cmd_del ui-dialog-titlebar-del "/>' ; 419 if (is_get){ 420 x = x + '<span class="cmd cmd_get ui-dialog-titlebar-get"/>'; 421 } else { 422 x = x + '<span class="cmd cmd_up ui-dialog-titlebar-up"/>'; 423 } 424 x = x + '<span class="ui-dialog-title">' + title +'</span>'; 425 $('#detail-float').siblings('div.ui-dialog-titlebar').append(x); 426 427 428 $("#detail-float").dialog({ 429 beforeclose: function(event, ui) { 430 431 var did; 432 if ($(this).length > 0){ 433 did = $(this).find('.detail-wrapper').attr('id'); 434 } 435 if (did != undefined){ 436 detail = detailcaller.getdetail(did); 437 detail.close(); 438 //if (detail.name == "collections"){ 439 detailcaller.removedetail(did); 440 //} 441 } 442 443 } 444 }); 445 } 446 447 } -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_ui_load.js
r1177 r1215 84 84 $('#collections').bind('loaded.jstree reopen.jstree', function(event, data) 85 85 { 86 if ( ini) {86 if ((event.type == "loaded") &&(ini)) { 87 87 loadQueryFromUriParams(); 88 88 } … … 97 97 var coll; 98 98 if (!local_collections){ 99 collections.splice(0, collections.length); 99 var collections = []; 100 //collections.splice(0, collections.length); 100 101 101 102 $(this).find('.jstree-checked').each(function(index){ … … 487 488 $('#query-input').show(); 488 489 489 hideWelcomeMessage();490 //hideWelcomeMessage(); 490 491 } 491 492 -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_ui_settings.js
r1177 r1215 45 45 base_uri: "/MDService2/datcats/", 46 46 current:5 47 } 47 }, 48 sru: { 49 base_uri: "/MDService2/sru/" 50 } 48 51 49 52 }; -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_widgets.js
r1174 r1215 106 106 for (var i = 0; i < this.widgets.length; i++) { 107 107 if (this.widgets[i].listid == id) { 108 //if (this.type == "collections"){ 109 // var n = this.widgets[i].index; 110 // //$('#collections').find("[href=" + n + "]"); 111 // $('#collections').find('.jstree-checked').each(function(){ 112 // var jstreename = $(this).find('a').attr("href").split('?')[1].split('&')[0].split('=')[1]; 113 // if (jstreename == n){ 114 // $(this).removeClass("jstree-checked").addClass("jstree-unchecked"); 115 // //$('#collections').plugins.checkbox.uncheck($(this)); 116 // } 117 // }); 118 //} 108 119 this.widgets.splice(i, 1); 120 109 121 } 110 122 } … … 273 285 }; 274 286 275 ListWidget.prototype.get ColumnsListText = function() {287 ListWidget.prototype.getListText = function() { 276 288 var column_text = ""; 277 $.each(this.widgets,function(i,column){ 278 column_text = column_text + "," + jQuery.trim(column.name); 279 }); 289 if (this.type == "collections"){ 290 $.each(this.widgets,function(i,column){ 291 column_text = column_text + "," + jQuery.trim(column.index); 292 }); 293 } else { 294 $.each(this.widgets,function(i,column){ 295 column_text = column_text + "," + jQuery.trim(column.name); 296 }); 297 } 298 280 299 281 300 if (column_text.length > 1) { -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/GenericProxyAction.java
r1187 r1215 46 46 47 47 private Diagnostics diagnostics; 48 49 48 /** 50 49 * Properties to be filled by Struts with according request-parameters … … 100 99 } 101 100 101 102 102 public Diagnostics getDiagnostics(){ 103 103 return this.diagnostics; -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/MDRepoProxyAction.java
r1046 r1215 41 41 42 42 private String proxy_key = "mdrepository"; 43 44 43 45 44 @Override -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/SRUProxyAction.java
r1191 r1215 32 32 import net.sf.json.JSONObject; 33 33 import net.sf.json.JSONSerializer; 34 import net.sf.json.xml.XMLSerializer; 34 35 35 36 … … 64 65 private String operation; 65 66 private String query; 67 private String scanClause; 66 68 private int startRecord; 67 69 private int maximumRecords; … … 79 81 private HttpServletRequest request; 80 82 83 private static int OP_SEARCHRETRIEVE = 1; 84 private static int OP_EXPLAIN = 2; 85 private static int OP_SCAN = 3; 86 81 87 private final static HashMap<String,String> hash_operations = new HashMap<String,String>(); 82 88 static 83 89 { 84 90 hash_operations.put("searchRetrieve", "recordset"); 85 } 91 } 92 93 private final static HashMap<String,Integer> operation_code = new HashMap<String,Integer>(); 94 static 95 { 96 operation_code.put("searchRetrieve", OP_SEARCHRETRIEVE); 97 operation_code.put("searchRetrieve", OP_EXPLAIN); 98 operation_code.put("searchRetrieve", OP_SCAN); 99 } 86 100 87 101 public SRUProxyAction(){ … … 153 167 this.query = query; 154 168 } 169 170 public String getScanClause() { 171 return scanClause; 172 } 173 174 public void setScanClause(String scanClause) { 175 this.scanClause = scanClause; 176 } 177 155 178 156 179 public int getStartRecord() { … … 255 278 } 256 279 257 public void prepare(){ 280 public void prepareOperation() throws UnsupportedEncodingException{ 281 282 mdrepoproxyaction = new MDRepoProxyAction(); 283 mdrepoproxyaction.setDiagnostics(diagnostics); 284 mdrepoproxyaction.setActionkey(hash_operations.get(this.getOperation())); 285 286 if (operation.equals("searchRetrieve")){ 287 288 //query 289 mdrepoproxyaction.setSquery(""); 290 if (this.query == null) { 291 this.Diagnostics().Add(Diagnostic.MANDATORY_NOTSUPPLIED, "query"); 292 //return -1; 293 } 294 mdrepoproxyaction.setQ(getQuery()); 295 mdrepoproxyaction.setFormat("xml"); 296 297 if ((this.startRecord < 0 ) ||((getServletRequest().getParameter("startRecord") != null)&&(getServletRequest().getParameter("startRecord").equals("0")))) { 298 this.Diagnostics().Add(new Diagnostic(Diagnostic.UNSUPPORTED_PARAMETERVALUE, "startRecord must by grater than 0."));//,Diagnostic.NONFATALNONSURORGATE)); 299 //mdrepoproxyaction.setStartItem("1"); 300 } else { 301 mdrepoproxyaction.setStartItem(Integer.toString(getStartRecord())); 302 } 303 304 if ((this.maximumRecords < 0 ) ||((getServletRequest().getParameter("maximumRecords") != null) && (getServletRequest().getParameter("maximumRecords").equals("0")))){ 305 this.Diagnostics().Add(new Diagnostic(Diagnostic.UNSUPPORTED_PARAMETERVALUE, 306 "maximumRecords must by grater than 0.")); 307 } else { 308 mdrepoproxyaction.setMaximumItems(Integer.toString(this.getMaximumRecords())); 309 } 310 311 if (this.getX_cmd_repository() != null ) { 312 mdrepoproxyaction.setRepository(this.getX_cmd_repository()); 313 //TODO\ 314 if (mdrepoproxyaction.getBaseURI() == null) this.Diagnostics().Add(Diagnostic.UNSUPPORTED_PARAMETERVALUE, "Unknown repository." + getX_cmd_repository()); 315 } 316 if (this.getX_cmd_collections() != null ) { 317 mdrepoproxyaction.setCollection(this.getX_cmd_collections()); 318 } 319 320 } else { 321 if (operation.equals("explain")){ 322 323 }else { 324 if (operation.equals("scan")){ 325 if (this.scanClause == null) { 326 this.Diagnostics().Add(Diagnostic.MANDATORY_NOTSUPPLIED, "scanClause"); 327 //return -1; 328 } else{ 329 if (this.scanClause.equals("cmd.Collections")){ 330 331 } else { 332 if (this.scanClause.equals("cmd.Repository")){ 333 XMLSerializer xmlserializer = new XMLSerializer(); 334 String xml = xmlserializer.write( mdrepoproxyaction.getRepositories() ); 335 resultStream = new ByteArrayInputStream(xml.getBytes("UTF-8")); 336 337 } else { 338 339 } 340 } 341 } 342 }else { 343 this.Diagnostics().Add(Diagnostic.UNSUPPOERTED_OPERATION, "Only searchRetrieve,explain scan supported."); } 344 } 345 } 346 } 347 public void prepare() throws UnsupportedEncodingException{ 258 348 // special handling of parameter setting, x-cmd-... not alowed in java 259 349 this.setX_cmd_repository(getServletRequest().getParameter("x-cmd-repository")); 260 350 this.setX_cmd_collections(getServletRequest().getParameter("x-cmd-collections")); 261 351 262 mdrepoproxyaction = new MDRepoProxyAction(); 263 mdrepoproxyaction.setDiagnostics(diagnostics); 264 265 //operation 266 if (this.operation == null) { 267 this.Diagnostics().Add(Diagnostic.MANDATORY_NOTSUPPLIED, "operation"); 268 //return -1; 269 } else { 270 if (!operation.equals("searchRetrieve")) { 271 this.Diagnostics().Add(Diagnostic.UNSUPPOERTED_OPERATION, "Only searchRetrieve supported."); 272 //return -1; 273 } 274 } 275 mdrepoproxyaction.setActionkey(hash_operations.get(this.getOperation())); 352 276 353 //version 277 354 if (this.version == null) { … … 284 361 } 285 362 } 286 //query 287 mdrepoproxyaction.setSquery(""); 288 if (this.query == null) { 289 this.Diagnostics().Add(Diagnostic.MANDATORY_NOTSUPPLIED, "query"); 363 //operation 364 if (this.operation == null) { 365 this.Diagnostics().Add(Diagnostic.MANDATORY_NOTSUPPLIED, "operation"); 290 366 //return -1; 291 }292 mdrepoproxyaction.setQ(getQuery());293 294 mdrepoproxyaction.setFormat("xml");295 296 297 if ((this.startRecord < 0 ) ||((getServletRequest().getParameter("startRecord") != null)&&(getServletRequest().getParameter("startRecord").equals("0")))) {298 this.Diagnostics().Add(new Diagnostic(Diagnostic.UNSUPPORTED_PARAMETERVALUE, "startRecord must by grater than 0."));//,Diagnostic.NONFATALNONSURORGATE));299 //mdrepoproxyaction.setStartItem("1");300 367 } else { 301 mdrepoproxyaction.setStartItem(Integer.toString(getStartRecord())); 302 } 303 304 if ((this.maximumRecords < 0 ) ||((getServletRequest().getParameter("maximumRecords") != null) && (getServletRequest().getParameter("maximumRecords").equals("0")))){ 305 this.Diagnostics().Add(new Diagnostic(Diagnostic.UNSUPPORTED_PARAMETERVALUE, 306 "maximumRecords must by grater than 0.")); 307 } else { 308 mdrepoproxyaction.setMaximumItems(Integer.toString(this.getMaximumRecords())); 309 } 310 311 if (this.getX_cmd_repository() != null ) { 312 mdrepoproxyaction.setRepository(this.getX_cmd_repository()); 313 //TODO\ 314 if (mdrepoproxyaction.getBaseURI() == null) this.Diagnostics().Add(Diagnostic.UNSUPPORTED_PARAMETERVALUE, "Unknown repository." + getX_cmd_repository()); 315 } 316 if (this.getX_cmd_collections() != null ) { 317 mdrepoproxyaction.setCollection(this.getX_cmd_collections()); 318 } 319 320 //return 1; 321 } 368 prepareOperation(); 369 } 370 371 } 372 322 373 public static String inputStreamAsString(InputStream stream) 323 374 throws IOException { -
MDService2/trunk/MDService2/src/xsl/mdset2view.xsl
r1187 r1215 158 158 <!-- <div class='ui-context-dialog ui-widget-content columns-wrapper'> --> 159 159 <div class='ui-widget-content columns-wrapper'> 160 <span class="cmd cmd_reload" /> 160 <span class="cmd cmd_reload" /><span class="cmd cmd_xml" /><span class="cmd cmd_link" /> 161 161 <div class='query-columns'> 162 162 <xsl:call-template name="columns" />
Note: See TracChangeset
for help on using the changeset viewer.