source: MDService2/branches/MDService_simple3/WebContent/scripts/mdservice_ui.js @ 1569

Last change on this file since 1569 was 1569, checked in by gaba, 13 years ago

simple changes, exception for CQL parse error added

File size: 35.8 KB
Line 
1/**
2 * @fileOverview  This is the main file, contains main app function (jquery-initialization).
3 * The app main function runs setup functionality, which covers this domains:
4 * <dl>
5 * <dt>the variable initialization<dt>
6 *      <dd>functions from mdservice_searchclause.js, mdservice_widget.js, mdservice_ui_helpers.js</dd>
7 * <dt>loadData()</dt>
8 *      <dd>loading data from repository and creating particular client-side representations  - functions from <a>mdservice_ui_load.js</a></dd>
9 * <dt>creating of ui-layout</dt>
10 *      <dd>i.e. split UI to individual panes  - functions from mdservice_ui_layout.js</dd>
11 * <dt>addFunctionality()</dt>
12 *      <dd>bind handlers to events of ui-elements (function directly in mdservice_ui.js)</dd>
13 * </dl>
14 * @author
15 * @version
16 */
17
18$(function(){
19                // turn on debugging (see jquery.xslTransform.js)
20                var DEBUG = false;
21       
22                // check for jQuery
23                try{
24                        jQuery;
25                }catch(e){
26                        alert('You need to include jQuery!');
27                }
28               
29                /////// INIT VARIABLE SETTINGS
30                url_params = getUrlVars();
31                workspace = new Workspace();
32               
33                // create widgets
34                columns_widget = new ListWidget($('#columns-widget'), "columns");
35                collections_widget = new ListWidget($('#collections-widget'), "collections");
36                listwidgetset.add(columns_widget);
37                listwidgetset.add(collections_widget);
38               
39                //////////// LOAD DATA
40                loadData();
41                addFunctionality();
42               
43                ////////////// CREATE  UI-LAYOUT
44                createBlock('base','');
45                createLayouts('base');
46
47                // ??autocomplete correction
48                initDetailFloat();
49                searchclauseset.addsearchclause(new SearchClause("","",""),"",0,0);
50                createInfos();
51                detailcaller.calldetail(undefined, "info");
52       
53});
54
55function createInfos(){
56        var info = "<span class='cmd cmd_info'></span>";
57        $('.cmds-ui-block').children('.header').append(info);
58        createTooltip($('.cmds-ui-block').children('.header'));
59       
60        $('.cmds-ui-block').children('.header').children('.cmd_info').click(function(){
61                //var a = $(this).parent().next().attr('id');
62                //var uri = window.location.pathname + "static/info.xml";
63                //$.get(uri,{"id":a}, showDetail,'html');
64                detailcaller.calldetail($(this));
65                return false;
66        });     
67}
68
69
70function getSelectedRepository(){
71        return $('#repositories_select').find("option:selected").text();
72}
73
74function getInputMode(){
75        if ($('#searchclauselist').is(":visible")){
76                return 'complex';
77        }
78        return 'simple';
79}
80
81/**
82 * This function is called during the initialization sequence and binds event-handlers to events of ui-elements.
83 * @function
84 */
85function addFunctionality(){
86       
87        //switch the input simple query vs complex query
88        $('#switch-input').live('click',function(){
89                $('#searchclauselist').toggle();
90                $('#input-simplequery').toggle();
91                if (getInputMode() == 'complex'){
92                        searchclauseset.sctext = $('#input-simplequery').attr("value");
93                        searchclauseset.buildfromquerystring();
94                } else {
95                        $('#input-simplequery').attr("value",searchclauseset.simplequerytext());
96                }
97        });
98       
99        // DEL COMMAND
100        /*
101        $('.ui-dialog-titlebar .cmd_del').live('click',function(){
102                var did;
103                if ($(this).closest('.ui-dialog').length > 0){
104                        did = $(this).closest('.ui-dialog').find('.detail-wrapper').attr('id');
105                }
106                if (did != undefined){
107                        detail = detailcaller.getdetail(did);
108                        detail.close();
109                }
110                $(this).closest('.ui-dialog').hide();
111        })
112*/
113        /**
114         * Remove a query from queryset
115         * FIXME: shouldn't this primarily delete the query-object from the queryset?
116         * @event
117         * @name clickQueryremove
118         */
119        $('.query_header .cmd_del').live('click', function(){
120                $(this).closest('.query_wrapper').remove();
121        });
122
123        //TODO dialog
124        $('.detail-header .cmd_del').live('click', function(){
125                var did, detail;
126               
127                if ($(this).parent().hasClass('detail-header')){
128                        var dw = $(this).closest('.detail-wrapper');
129                        did = dw.attr('id');
130                        dw.hide();
131                }
132                else {
133                        if ($(this).parent().siblings('.ui-dialog-content').length > 0){
134                                did = $(this).parent().siblings('.ui-dialog-content').find('.detail-wrapper').attr('id');
135                        }
136                }       
137                if (did != undefined){
138                        detail = detailcaller.getdetail(did);
139                        detail.close();
140                }
141        });
142       
143        // DETAIL-CALLER
144        /*
145        $('.detail-caller, .cmd_detail').live('click',  function(event) {               
146                $(this).parent().children('.detail').toggle();
147                $(this).children('.cmd_down, .cmd_up').toggleClass('cmd_down cmd_up');         
148        });
149        */
150        $('.detail-caller a').live('click',  function(event) {         
151                event.preventDefault();
152        });
153        // open detail (from result-set, but also already within detail-view (ResourceRef, IsPartOf)   
154        $('.result a.internal, .mdrecord-detail a.internal').live('click',  function(event) {
155                event.preventDefault();         
156               
157                var uri = $(this).attr('href'); // + " body";
158                //notifyUser('internal-link: ' + uri,'debug' );
159                //$.get(uri, showDetail,'html');
160                detailcaller.calldetail(undefined, "record", uri);
161        });
162
163        $('.detail-content a').live('click',  function(event) {
164               
165                if ($(this).attr("target") == "_blank"){
166                        return true;
167                } else {
168                        event.preventDefault();         
169                        var uri = $(this).attr('href'); // + " body";
170                        if ($(this).attr("class") == "query"){
171                                var urlparams = getUrlVars(uri);
172                                loadQueryFromUriParams(urlparams);
173                        } else {
174                                var type;
175                                if ($(this).attr("class") == "bookmark"){
176                                        type = "record";
177                                } else {
178                                        type = $(this).parents('.detail-wrapper').attr("id");
179                                        type = type.substring(7,type.length);
180                                }
181                        //      $.get(uri, showDetail,'html'); */
182                                detailcaller.calldetail(undefined, type, uri);
183                        }
184                }
185        });
186        $('.result a.external, .mdrecord-detail a.external').live('click',  function(event) {
187               
188                //event.preventDefault();               
189                var uri = $(this).attr('href'); // + " body";
190                notifyUser('resource-link: ' + uri,'debug' );
191        //      $.get(uri, showDetail,'html'); */
192        });
193        /*
194        $('.result .cmd_detail').live('click',  function(event) {       
195                //var qid = $(this).closest('.query_wrapper').attr('id');
196                //var query = queryset.getQuery(qid);
197               
198                var uri = $(this).parent().find("a").attr('href'); // + " body";
199                $.get(uri, showDetail,'html');
200        });
201        */
202        $(".detail-caller, .cmd_detail").live('click',function(event) {
203                event.preventDefault(); 
204                detailcaller.calldetail($(this));
205                       
206        });             
207        $(".detail-caller-inline").live('click',function(event) {
208                event.preventDefault();
209                $(this).parent().children('.detail').toggle();
210                $(this).children('.cmd_down, .cmd_up').toggleClass('cmd_down cmd_up');
211                       
212        });     
213       
214        // cmd_up cmd_down
215        $('.cmd_up').live('click',  function(event) {
216                if ($(this).closest('.detail-wrapper').length >  0 ) {
217                        $(this).closest('.detail-wrapper').find('.detail-content').hide();
218                } else {
219                        $(this).closest('.query_wrapper').find('.result').hide();
220                }
221                $(this).toggleClass('cmd_down cmd_up');                                 
222        });
223        $('.cmd_down').live('click',  function(event) {
224                if ($(this).closest('.detail-wrapper').length >  0 ) {
225                        $(this).closest('.detail-wrapper').find('.detail-content').show();
226                } else {
227                        $(this).closest('.query_wrapper').find('.result').show();
228                }
229                $(this).toggleClass('cmd_down cmd_up');                         
230        });
231       
232        $('.cmd_publish').live('click', function(event){
233                var query = $(this).parent().data('query');
234                if (query != undefined){ // query
235                        query.publish();
236                } else { // bookmarksets
237                        var json = workspace.getTypedElement('user','bookmarkset');
238                        var id = parseInt($('#bts_select').find("option:selected").val());
239                        var bsjson = json[id];
240                        $.get("/MDService2/virtualcollection/USER/" + bsjson.id,"", function(data){
241                                if (bsjson.vcrid == 0){
242                                        var id = parseInt($(data).children().children('virtualcollectionid').text());
243                                        bsjson.vcrid = id;
244                                        workspace.savequeryset(bsjson, 1);
245                                }
246                        });
247                }
248
249        });
250       
251        //////////////////////////////////////////////
252        $('#searchretrieve').submit( function(event) {
253                event.preventDefault();
254                //hideWelcomeMessage();
255                var query, squery;
256                if (getInputMode() == 'complex'){
257                        searchclauseset.buildsctext();
258                        query = searchclauseset.sctext;
259                } else {
260                        squery = $('#input-simplequery').attr("value");
261                }
262                //searchclauseset.buildsctext();
263                //notifyUser(searchclauseset.sctext,'debug');                           
264                //submit_query (columns_widget.getColumnsListText(),searchclauseset.sctext, $('#input-simplequery').attr("value"), $('#input-withsummary').attr("checked"));   
265                //var query = searchclauseset.sctext;
266                //var squery = $('#input-simplequery').attr("value");
267                // TODO we dont use columns-widget
268                var columns = "";//columns_widget.getColumnsListText();
269                var collections = collections_widget.widgets; //searchclauseset.sctext;
270                //var ws  = $('#input-withsummary').attr("checked");
271               
272                notifyUser("processing query");
273               
274                if (jQuery.trim(query).length == 0){
275                        query = null;
276                }
277                var q = new Query(collections, columns, query, squery); //actions.collections.current, query );
278                q.repository = getSelectedRepository();
279                //if (ws) {
280                //      q.options = "withSummary";
281                //}
282                notifyUser("submit_query:" + q.query_uri(),'debug');
283                queryset.addquery(q);
284        });
285       
286        $('.autocomplete-select-caller').live('click',  function(event) {
287               
288                $(this).closest(".index-context").prev().parent().find(".autocomplete-input").val($(this).text()).change();             
289                $(this).closest(".index-context").hide();
290        });
291        $('.autocomplete-select-caller a').live('click',  function(event) {             
292                event.preventDefault();
293        });
294       
295       
296        $('.comp_detail input').live('keyup',  function(event) {                       
297                $('#srquery').val(
298                                $(this).parent().children('span.cmdelem_name').text()
299                                + "=" + $(this).val() );
300        });
301       
302       
303         $('a.open-in-context').live('click', function(event) {
304                        event.preventDefault();
305                        var uri = $(this).attr('href');
306                        /* notifyUser("open_incontext:" + uri);
307                        $(this).after("<div class='ui-context-dialog cmds-ui-block' ></div>");
308                        var trg = $(this).next(".ui-context-dialog");
309                        trg.show();                                             
310                        $(trg).load(uri); //function(event) {   } */
311                        var contextual_uri = uri.replace('htmlpage','htmldetail');             
312                       
313                        $.get(contextual_uri, showDetail,'html');
314        });
315       
316// RECORDSET searchRetrieve
317         /*
318        $('#searchretrieve').submit( function(event) {
319                        event.preventDefault();
320                        //hideWelcomeMessage();
321                        searchclauseset.buildsctext();
322                        notifyUser(searchclauseset.sctext,'debug');
323                        //submit_query ($('#columns_list').attr("value"),searchclauseset.sctext, $('#input-simplequery').attr("value"));                       
324                        submit_query (columns_widget.getColumnsListText(),searchclauseset.sctext, $('#input-simplequery').attr("value"), $('#input-withsummary').attr("checked"));
325        });
326*/
327        $('#columns-widget .cmd_save').click(function(event) {
328                var terms = [{}];       
329                       
330                var id = $("#ts_select option").size();
331                var name = "termset_" + id;
332               
333                columns_widget.getListWidget().find('.list-item').each(function(i,elem){
334                        terms[i] = $(elem).text();
335                });
336               
337                var dt = new Date();
338                var str_time = dateFormat(dt);//dt.toString("dd/mm/yyyy HH:mm:ss");
339                var jsont = {"name":name, "time" : str_time, "Terms" :terms};
340                if (jsonw["WorkspaceProfile"]["CustomTermsets"] == undefined) {
341                        jsonw["WorkspaceProfile"]["CustomTermsets"] = [{}];
342                }
343                jsonw["WorkspaceProfile"]["CustomTermsets"][id] = jsont;
344               
345                //saveWorkspace("USER");
346                Workspace.save("USER");
347                loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]);
348                //createTermsUI(jsonw["WorkspaceProfile"]["CustomTermsets"][id],$('#userterms'));
349                $("#ts_select option").removeAttr("selected");
350                $("#ts_select option").last().attr("selected","selected");
351                $('#ts_input').attr("value",name);
352                createTermsUI(jsonw["WorkspaceProfile"]["CustomTermsets"][id],$('#userterms'));
353        });
354       
355        /*
356        $('#querylist .query_header').find('.cmd_del').live('click',  function(event) {
357                //showTermDetail($(this).parent().text());
358               
359                queryset.removequery($(this).closest('.query_wrapper').attr('id'));
360                                       
361        });
362*/
363        /*
364        $('#querylist .cmd_up').live('click',  function(event) {
365                $(this).closest('.query_wrapper').find('.result').hide();
366                $(this).toggleClass('cmd_down cmd_up');                                 
367        });
368
369*/
370       
371        $('#detail_query .cmds .cmd_save').live('click',  function(event) {
372                //qid = $(this).data('query').listid;
373                qid = $(this).data('qid');
374                notifyUser("here I would save query: " + qid, "debug");
375                var q = queryset.getQuery(qid);
376                q.save();
377                //Workspace.saveQuery($(this).data('query'));
378        });
379        $('#detail_query .cmds .cmd_savenew').live('click',  function(event) {
380                //qid = $(this).data('query').listid;
381                qid = $(this).data('qid');
382                notifyUser("here I would savenew query: " + qid, "debug");
383                var q = queryset.getQuery(qid);
384                q.id = 0;
385                q.save();
386                //Workspace.saveQuery($(this).data('query'));
387        });
388
389        /**
390         * FIXME: this should only invoke appropriate query-function storing the query to workspaceprofile
391         */
392        $('#querylist .cmd_save').live('click',  function(event) {
393                // bookmark
394                if ($(this).parents('.result').length > 0){
395                        qstring = $(this).parent().find("a").attr('href');
396                        qstring = qstring.substring(18,qstring.length);
397                       
398                        var q = new Query([],"",qstring,"");
399                        q.bookmark = 1;
400                        q.save();
401                       
402                }
403        });
404        /*     
405        $('#querylist .cmd_save').live('click',  function(event) {
406               
407                var qid = "";
408                var qstring = "";       
409                var json_coll = "null";
410                var json_cols = "null";
411                var squery = "";
412                var bookmark = "0";
413                var json_options = "null";
414               
415                if ($(this).parents('.result').length > 0){
416                        qstring = $(this).parent().find("a").attr('href');
417                        qstring = qstring.substring(18,qstring.length);
418                        bookmark = "1";
419                } else {
420                        qid = $(this).closest('.query_wrapper').attr("id");
421                        qstring = queryset.getquerystring(qid);
422                        json_coll = queryset.getcollections(qid);
423                        json_cols = queryset.getcolumns(qid);
424                        squery = queryset.getsquery(qid);
425                        json_options = queryset.getoptions(qid);
426                }
427                notifyUser("saving query: " + qid, "debug");
428                // JSON conversion
429                if (qstring.length == 0){
430                        qstring = "[NULL]";
431                }
432                if (squery.length == 0){
433                        squery = "[NULL]";
434                }
435
436                var id = parseInt($("#qts_select option:selected").val());
437                var iq = $('#userqueries').children().size();
438       
439                if (iq == 0){
440                        jsonw["WorkspaceProfile"]["Querysets"][id]["Queries"] = [{}];
441                }
442                var dt = new Date();
443                var str_time = dateFormat(dt);//dt.toString("dd/mm/yyyy HH:mm:ss");
444                var jsonq = {"name":"", "squerystring":squery, "querystring":qstring,"searchclauses":"null" , "collections" : json_coll, "columns" : json_cols, "options" : json_options, "bookmark" : bookmark, "time" : str_time};
445               
446                var name;
447                if (bookmark == "1") {
448                        qstring = Url.decode(qstring);
449                        var s = qstring.split(':');
450                        name = s[s.length - 2] + ":" + s[s.length - 1];
451                } else {
452                        name = Query.fullformatstring(jsonq);
453                }
454                jsonq.name = name;
455               
456                jsonw["WorkspaceProfile"]["Querysets"][id]["Queries"][iq] = jsonq;
457                //saveWorkspace("USER");
458                Workspace.save("USER");
459                appendQueryUI(jsonw["WorkspaceProfile"]["Querysets"][id]["Queries"][iq],iq, $('#userqueries'));
460               
461                //$("#qs_select").append(new Option(Query.simplequerystring(qstring),iq));
462        });
463        */
464        /*
465        $('#querylist .cmd-xml').live('click',  function(event) {
466                var qid = $(this).closest('.query_wrapper').attr("id");
467
468                queryset.getQuery(qid).open('xml');
469        });
470        $('#querylist .cmd-page').live('click',  function(event) {
471                var qid = $(this).closest('.query_wrapper').attr("id");
472
473                queryset.getQuery(qid).open('htmlpage');
474        });
475        */
476        /*
477        $('#querylist .cmd-link').live('click',  function(event) {
478                /* var qid = $(this).closest('.query_wrapper').attr("id");
479                var qstring = queryset.getquerystring(qid);     
480                var json_coll = queryset.getcollections(qid);
481                var json_cols = queryset.getcolumns(qid);
482                var squery = queryset.getsquery(qid);
483                // JSON conversion
484                if (qstring.length == 0){
485                        qstring = "[NULL]";
486                }
487                if (squery.length == 0){
488                        squery = "[NULL]";
489                }               
490                var jsonq = {"squerystring":squery, "querystring":qstring,"searchclauses":"null" , "collections" : json_coll, "columns" : json_cols};
491                ///
492               
493                queryset.getQuery(qid).open();
494        });
495        */
496        /*
497        $('.cmd_select').live('click',  function(event) {
498                var qid = $(this).closest('.query_wrapper').attr("id");
499                                       
500                searchclauseset.sctext = queryset.getquerystring(qid);
501                searchclauseset.buildfromquerystring();
502        });
503        */
504        /**
505         * FIXME: this looks like a typo: #queryslist -> #querylist 
506         */
507        $('#queryslist .cmd_reload').live('click',  function(event) {
508                var qid = $(this).closest('.query_wrapper').attr("id");
509
510                queryset.resubmit(qid);
511               
512        });
513       
514       
515       
516        $('.cmd_sc_delete').live('click',  function(event) {
517                var i = $(this).closest('.sc-i').attr('id');
518                var j = $(this).closest('.sc-j').attr('id');
519                //notifyUser(i + j,'debug');
520                searchclauseset.removesearchclause(i,j);
521                                       
522        });
523        $('.cmd_add_and').live('click',  function(event) {
524                //showTermDetail($(this).parent().text());
525                //$(this).next().hide();
526                $(this).attr("value","AND");
527                var searchclause = new SearchClause("","","");
528                var i = $(this).closest('.sc-i').attr('id');
529                var j = $(this).closest('.sc-j').attr('id');
530                //notifyUser(i + j,'debug');
531                searchclauseset.addsearchclause(searchclause,"and",i,j);
532                                       
533        });
534        $('.cmd_add_or').live('click',  function(event) {
535                //showTermDetail($(this).parent().text());
536                //$(this).next().hide();
537                var i,j;
538                $(this).attr("value","OR");
539                var searchclause = new SearchClause("","","");
540                searchclauseset.addsearchclause(searchclause,"or",$(this).closest('.sc-i').attr('id'),$(this).closest('.sc-j').attr('id'));
541                                       
542        });
543
544        ///// QUERYSETS
545        $('#qts_save').click(function(){
546                var id = $("#qts_select option:selected").val();
547                //notifyUser($('#qts_input').val() + $('#qts_input').text(),'debug');
548                workspace.user_json["WorkspaceProfile"]["Querysets"][id]["name"] = $('#qts_input').val();
549                //workspace.save("USER");
550                workspace.savequeryset(workspace.user_json["WorkspaceProfile"]["Querysets"][id],0);
551               
552                $("#qts_select option:selected").text( $('#qts_input').val());
553               
554        });
555        $('#qts_add').click(function(){
556                //var new_name = "new_queryset";
557               
558                //workspace.addqueryset(new_name);
559                //var id = workspace.user_json["WorkspaceProfile"]["Querysets"].length-1;
560                //workspace.savequeryset(workspace.user_json["WorkspaceProfile"]["Querysets"][id],0);
561                //workspace.save("USER");
562                var q = workspace.addelement('queryset');
563                workspace.savequeryset(q, 0);
564                //todo
565                var id = $('#qts_select option').size();
566                $("#qts_select").append(new Option(q["name"], id));
567                $("#qts_select").find('option').attr("selected","false");
568                $("#qts_select").find('option').last().attr("selected","true");
569                $('#qts_input').val(q["name"]);
570        });
571        $('#qts_delete').click(function(){
572                var qsid = parseInt($("#qts_select option:selected").val());
573                workspace.removeelement("queryset", qsid);
574                workspace.save("USER");
575                //update
576                loadQuerysets("user");
577        });
578
579        //BOOKMARKSETS
580        $('#bts_save').click(function(){
581                var id = $("#bts_select option:selected").val();
582                workspace.user_json["WorkspaceProfile"]["Bookmarksets"][id]["name"] = $('#bts_input').val();
583                workspace.savequeryset(workspace.user_json["WorkspaceProfile"]["Bookmarksets"][id],1);
584               
585                $("#bts_select option:selected").text( $('#bts_input').val());
586        });
587        $('#bts_add').click(function(){
588                var b = workspace.addelement('bookmarkset');
589                //var id = workspace.user_json["WorkspaceProfile"]["Bookmarksets"].length-1;
590                //workspace.savequeryset(workspace.user_json["WorkspaceProfile"]["Bookmarksets"][id],1);
591                workspace.savequeryset(b,1);
592               
593                var id = $('#bts_select option').size();
594                $("#bts_select").append(new Option(b["name"], id));
595                $("#bts_select").find('option').attr("selected","false");
596                $("#bts_select").find('option').last().attr("selected","true");
597                $('#bts_input').val(b["name"]);
598        });
599        $('#bts_delete').click(function(){
600                var bsid = parseInt($("#bts_select option:selected").val());
601               
602                workspace.removeelement("bookmarkset", bsid);
603                workspace.save("USER");
604                //update
605                loadBookmarksets("user");
606        });
607
608        ////////////////////////////////////////////////
609        $('#ts_save').click(function(){
610                var id = $("#ts_select option:selected").val();
611                //notifyUser($('#qts_input').val() + $('#qts_input').text(),'debug');
612                jsonw["WorkspaceProfile"]["CustomTermsets"][id]["name"] = $('#ts_input').val();
613                       
614                $("#ts_select option:selected").text( $('#ts_input').val());
615                //saveWorkspace("USER");
616                Workspace.save("USER");
617        });
618        $('#ts_add').click(function(){
619                var new_name = "new_termset";
620               
621                var id = $('#ts_select option').size();
622                var dt = new Date();
623                var str_time = dateFormat(dt);//dt.toString("yyyy-MM-dd HH:mm:ss");
624               
625                if (id == 0){
626                        jsonw["WorkspaceProfile"]["CustomTermsets"] = [{}];
627                }
628       
629                jsonw["WorkspaceProfile"]["CustomTermsets"][id] = {"name":new_name,"created":str_time , "Terms" : "null"};
630               
631                //saveWorkspace("USER");
632                Workspace.save("USER");
633                //todo
634               
635                //loadWorkspace(jsonw["WorkspaceProfile"]["Querysets"]);
636                $("#ts_select").append(new Option(new_name, id));
637                $("#ts_select").find('option').attr("selected","false");
638                $("#ts_select").find('option').last().attr("selected","true");
639                $('#ts_input').val(new_name);
640                createTermsUI(jsonw["WorkspaceProfile"]["CustomTermsets"][id],$('#userterms'));
641        });
642        $('#ts_delete').click(function(){
643                var count = $("#ts_select option").size();
644               
645                //if (count > 1){
646                        var id = parseInt($("#ts_select option:selected").val());
647                        var size = jsonw["WorkspaceProfile"].CustomTermsets.length;
648               
649                        for (var i=id;i<size-1;i++){
650                                jsonw["WorkspaceProfile"].CustomTermsets[i] = jsonw["WorkspaceProfile"].CustomTermsets[i+1];
651                        }
652               
653                        delete jsonw["WorkspaceProfile"].CustomTermsets[size-1];
654                        jsonw["WorkspaceProfile"]["CustomTermsets"].length = size-1;
655                        // set null string , if 0 termsets
656                        if (count == 1) {
657                                jsonw["WorkspaceProfile"]["CustomTermsets"] = "null";
658                        }
659                        //saveWorkspace("USER");
660                        Workspace.save("USER");
661                        loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]);
662        });
663       
664        $('#userterms .cmd_load').live('click',function(event){
665                var term = String.trim($(this).parent().find('a').text());
666                columns_widget.add(new ListItem(term));
667               
668        });
669        $('#userterms .cmd_del').live('click', function(event){
670                var id = parseInt($("#ts_select option:selected").val());
671                var str = $(this).parent().find('a').attr("href");
672                var iq = parseInt(str.substring(10));
673                var size = jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"].length;
674               
675                for (var i=iq;i<size-1;i++){
676                        jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"][i] = jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"][i+1];
677                }
678       
679                delete jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"][size-1];
680                jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"].length = size-1;
681               
682                if (size == 1){
683                        jsonw["WorkspaceProfile"]["CustomTermsets"][id]["Terms"] = "null";
684                }
685               
686                //saveWorkspace("USER");
687                Workspace.save("USER");
688                loadTermsets(jsonw["WorkspaceProfile"]["CustomTermsets"]);
689                //$("#ts_select option").remove();
690                //$("#ts_select option").first().attr("selected","true");
691        });
692
693       
694        $('#collections .cmd_load').live('click',function(event){
695                //hideWelcomeMessage();
696                var collection_text = "";
697                var coll = $(this).parent();
698                var collections = [];
699                //collections.splice(0, collections.length);
700                collections[0] = new Collection($(coll).attr("handle"), String.trim($(coll).children('a').text()));
701                var columns = columns_widget.getListText();//$('#columns_list').attr("value");
702                //var collections = collections_widget.getListText();
703                var query = new Query(collections,columns,"","");
704                query.repository = getSelectedRepository();
705       
706                //searchclauseset.clear();
707                queryset.addquery(query);
708                //$('#collection_list').attr("value",query.getcollectiontext("name"));
709                collections_widget.load(query.collection);
710       
711        });
712        $('#serverqueries .cmd_load').live('click',function(event){
713               
714                //var id = parseInt( $("#serverqts_select option:selected").val());
715                //var str = $(this).parent().find('a').attr("href");
716                //var iq = parseInt(str.substring(9));
717                //var json = jQuery.parseJSON($("#serverqs").attr("data"));
718                //var q = json["WorkspaceProfile"]["Querysets"][id]["Queries"][iq];
719               
720                var q = $(this).closest('.cmds-elem-plus').data("query");//json");
721                loadQuery(q);
722        });
723        $('#userqueries .cmd_load').live('click',function(event){
724                var q = $(this).closest('.cmds-elem-plus').data("query");//json");
725                loadQuery(q);
726        });
727        $('#userqueries .cmd_del').live('click', function(event){
728                //var count = $("#userqueries li").size();
729                /*
730                var id = parseInt($("#qts_select option:selected").val());
731                var str = $(this).parent().find('a').attr("href");
732                var iq = parseInt(str.substring(7));
733                var size = workspace.user_json["WorkspaceProfile"]["Querysets"][id]["Queries"].length;
734               
735                for (var i=iq;i<size-1;i++){
736                        workspace.user_json["WorkspaceProfile"]["Querysets"][id]["Queries"][i] = workspace.user_json["WorkspaceProfile"]["Querysets"][id]["Queries"][i+1];
737                }
738       
739                delete workspace.user_json["WorkspaceProfile"]["Querysets"][id]["Queries"][size-1];
740                workspace.user_json["WorkspaceProfile"]["Querysets"][id]["Queries"].length = size-1;
741               
742                if (size == 1){
743                        workspace.user_json["WorkspaceProfile"]["Querysets"][id]["Queries"] = "null";
744                }
745                */
746                //saveWorkspace("USER");
747                var id2 = parseInt($("#qts_select option:selected").val());
748                var id1 = parseInt( $(this).parent().find('a').attr("href").substring(7));
749                workspace.removeelement("query", id1, id2);
750                workspace.save("user");
751                loadQuerysets("user");
752                //$("#qs_select option").remove();
753                //$("#qs_select option").first().attr("selected","true");
754        });
755
756        $('.detail-wrapper .cmd_withsummary').live('click',function(event){
757                var detail = $(this).closest('.detail-wrapper').data('detail');
758                var query = detail.query;
759                // aaaload new query
760                query.summaryinfo();
761                // copy summary data
762                //detailcaller.calldetail($(query.container).find('.result-header').find('.cmd_detail'));
763        });
764       
765        $('#bookmarks .cmd_load').live('click',function(event){
766                var q = $(this).closest('.cmds-elem-plus').data("query");//json");
767                var uri = "/MDService2/record/htmldetail/" + q.query;
768                detailcaller.calldetail(undefined, "record", uri);
769        });
770        $('#bookmarks .cmd_del').live('click', function(event){
771                var id2 = parseInt($("#bts_select option:selected").val());
772                var id1 = parseInt( $(this).parent().find('a').attr("href").substring(7));
773                workspace.removeelement("bookmark", id1, id2);
774                workspace.save("user");
775                loadBookmarksets();
776        });
777
778       
779        $('.ui-dialog-titlebar-del').live('click', function(event){
780                //$('#detail-float').dialog('close');
781                var t = $(this).parents('.ui-widget').children('.ui-dialog-content');
782                $(t).dialog('close');
783        });
784
785        $('.ui-dialog-titlebar-up').live('click', function(event){
786                var t = $(this).parents('.ui-widget').children('.ui-dialog-content');
787               
788                $(this).parents('.ui-widget').attr("tempheight",$(this).parents('.ui-widget').height());
789                //notifyUser("up(height):" + $(this).parents('.ui-widget').height(),'debug');
790                $(this).parents('.ui-widget').height(30);
791                //notifyUser("up(tempheight):" + $(this).parents('.ui-widget').attr("tempheight"),'debug');
792               
793               
794                //$(t).find(".ui-dialog-buttonpane:first, .ui-dialog-content").stop({clearQueue:true}).fadeOut(300);
795                //$(t).stop({clearQueue:true}).animate({height:'0px'},300);
796               
797                $(this).removeClass('cmd_up ui-dialog-titlebar-up');
798                $(this).addClass('cmd_down ui-dialog-titlebar-down');   
799        });
800        $('.ui-dialog-titlebar-down').live('click', function(event){
801                var t = $(this).parents('.ui-widget').children('.ui-dialog-content');
802               
803                var h = $(this).parents('.ui-widget').attr("tempheight");
804                //notifyUser("down(tempheight):" + h,'debug');
805                $(this).parents('.ui-widget').height(parseInt(h));
806                //notifyUser("down(height):" + $(this).parents('.ui-widget').height(),'debug');
807               
808               
809                //$(this).parents('.ui-widget').attr("tempheight",$(this).parents('.ui-widget').height());
810                //$(t).find(".ui-dialog-content, .ui-dialog-buttonpane:first").stop({clearQueue:true}).fadeIn(800)
811                //.end().stop({clearQueue:true}).animate({height:'100%'},300);
812
813                $(this).removeClass('cmd_down ui-dialog-titlebar-down');
814                $(this).addClass('cmd_up ui-dialog-titlebar-up');       
815        });
816
817}
818
819function initDetailFloat(){
820        $("#detail-float").dialog({ autoOpen: false});
821        $("#detail-float").dialog();
822        $("#detail-float").tabs();
823};
824function submit_query (columns, query, squery, ws) {
825        notifyUser("processing query");
826       
827        if (jQuery.trim(query).length == 0){
828                query = null;
829        }
830        if (jQuery.trim(squery).length == 0){
831                squery = null;
832        }
833       
834        var q = new Query(collections, columns, query, squery); //actions.collections.current, query );
835        q.repository = getSelectedRepository();
836        if (ws) {
837                q.options = "withSummary";
838        }
839        notifyUser("submit_query:" + q.query_uri(),'debug');
840        queryset.addquery(q);
841        //notifyUser("container" + q.container.attr('id'));
842        //$("#querylist").append("sdfdsf");     
843}
844
845/**
846 * allows to add ui-containers into the detail-pane.
847 *
848 * Most of it is just to ensure a defined ordering:
849 * 1. info, 2. index, 3. query, 4. record
850 */
851function addToDetailList(elem, did){
852        var exists = false;
853        var index_elem = undefined;
854        var query_elem = undefined;
855        var record_elem = undefined;
856        var info_elem = undefined;
857       
858        $('#detailblock').children('.content').children().each(function(){
859                if ($(this).attr("id") == did){
860                        exists = true;
861                }
862                if ($(this).attr("id") == "detail_index"){
863                        index_elem = this;
864                }
865                if ($(this).attr("id") == "detail_query"){
866                        query_elem = this;
867                }
868                if ($(this).attr("id") == "detail_record"){
869                        record_elem = this;
870                }
871                if ($(this).attr("id") == "detail_info"){
872                        info_elem = this;
873                }
874        });
875        if (!exists) {
876                if (did == "detail_record") {
877                        $('#detailblock').children('.content').append(elem);
878                } else {
879                        if (did == "detail_info") {
880                                $('#detailblock').children('.content').prepend(elem);
881                        } else {
882                                if (did == "detail_index") {
883                                        if (info_elem != undefined) {
884                                                $(info_elem).after(elem);
885                                        } else {
886                                                if (record_elem != undefined) {
887                                                        $(record_elem).before(elem);
888                                                } else {
889                                                        $('#detailblock').children('.content').prepend(elem);
890                                                }
891                                        }
892                                } else {
893                                        if (did == "detail_query") {
894                                                if (index_elem != undefined) {
895                                                        $(index_elem).after(elem);
896                                                } else {
897                                                        if (record_elem != undefined) {
898                                                                $(record_elem).before(elem);
899                                                        } else {
900                                                                $('#detailblock').children('.content').append(elem);
901                                                        }
902                                                }
903                                        } else {
904                                                $('#detailblock').children('.content').append(elem);
905                                        }
906                                }
907                        }
908                }
909
910        } else {
911                $('#detailblock').children('.content').children().each(function(){
912                        if ($(this).attr("id") == did){
913                                $(this).show();
914                        }
915                });
916        }
917}
918
919function addToSClist (div, i, j, rel) { 
920       
921        var x;
922       
923        //notifyUser(i + "," + j + "," + rel);
924        if (rel == ""){
925                x = $('<div />').addClass("sc-i").addClass("and_level");
926                $(div).appendTo($(x).appendTo($('#searchclauselist')));
927                $(x).attr("id",i);
928        } else {
929                if (rel == "and") {
930                        x = $('<div />').addClass("sc-i").addClass("and_level");
931                        $(x).attr("id",i);
932                        $(div).appendTo($(x).appendTo($('#searchclauselist')));
933                } else {
934                        $(div).appendTo($('#searchclauselist').children()[i]);
935                }
936        }
937       
938        //$('#searchclauselist').append($(li));
939       
940}
941
942function addToQuerylist (x) {   
943        $("#querylist").prepend(x);     
944}
945
946function addToNotifylist (x) { 
947        $("#notifylist").prepend(x);   
948}
949
950function createTooltip(parentwidget) {
951       
952         var ccmd;
953         if (parentwidget == null) {
954                 ccmd = $('.cmd');
955         } else {
956                 ccmd = $(parentwidget).find('.cmd');
957         }
958         $(ccmd).mouseover(function(){
959                 // command name
960                 var cmd = $(this).attr("class");
961                 cmd = cmd.substring(cmd.indexOf("cmd_"));
962                 cmd = cmd.split(" ")[0];
963                 
964                 // command place
965                 var place = "";
966                 if ($(this).parents('.content').length > 0) {
967                         place = $(this).parents('.content').attr("id") + ".";
968                 }
969                 if ($(this).parents('.block').length > 0) {
970                         place = $(this).parents('.block').attr("id") + ".";
971                 }
972                 
973
974                 // find tho tooltiptext
975                 var a = place + cmd;
976               
977                 if (tooltiptable[a] != null) {
978                        s = tooltiptable[a];
979                 } else { 
980                        if (tooltiptable[cmd] != null) {
981                                s = tooltiptable[cmd];
982                        } else {
983                                s = a;
984                        }
985                 }
986                 tooltip.show(s);
987         });
988         $(ccmd).mouseout(function(){
989                 tooltip.hide();
990         });
991
992};
993function loadQuery(query){
994        query.repository = getSelectedRepository();
995        queryset.addquery(query);
996       
997        searchclauseset.sctext = query.query;
998        notifyUser(searchclauseset.sctext,'debug');
999        searchclauseset.buildfromquerystring();
1000
1001        //collections = query.collection;
1002        collections_widget.load(query.collection);
1003        columns_widget.load(query.columns.split(','));
1004        $('#input-simplequery').attr("value",query.squery);
1005        $('#input-withsummary').attr("checked",(query.options != null));
1006        updateCollectionTree();
1007
1008};
1009/*
1010function loadQuery(q){
1011        if (q["bookmark"] == "1") {
1012                var uri = "/MDService2/record/htmldetail/" + q["querystring"];
1013                detailcaller.calldetail(undefined, "record", uri);
1014                //var uri = "/MDService2/record/htmldetail/" + q["querystring"];
1015                //showDetail(null,'html');
1016                //$.get(uri, showDetail,'html');
1017        } else {
1018                //hideWelcomeMessage();
1019                var query = new Query([],"","","");
1020                query.load(q);
1021                query.repository = getSelectedRepository();
1022                queryset.addquery(query);
1023               
1024                searchclauseset.sctext = query.query;
1025                notifyUser(searchclauseset.sctext,'debug');
1026                searchclauseset.buildfromquerystring();
1027
1028                //collections = query.collection;
1029                collections_widget.load(query.collection);
1030                columns_widget.load(query.columns.split(','));
1031                $('#input-simplequery').attr("value",query.squery);
1032                $('#input-withsummary').attr("checked",(query.options != null));
1033                updateCollectionTree();
1034        }
1035
1036}
1037*/
1038function loadQueryFromUriParams(local_uri){
1039        var url;
1040       
1041        if (local_uri == undefined){
1042                url = url_params;
1043        } else {
1044                url = local_uri;
1045        }
1046        //TODO new params
1047        var q = url["q"];
1048        if (url["query"] == undefined){
1049                q = url["q"];
1050        }
1051        else {
1052                q = url["query"];
1053        }
1054
1055        //var squery = url["query"];//url["squery"];
1056        var collection = url["collection"];
1057        var startItem = url["startRecord"];
1058        var maximumItems = url["maximumRecords"];
1059        var repository = url["repository"];
1060        var columns = url["columns"];
1061        if ((q != undefined) || (collection != undefined)) {
1062                if (q == undefined) {
1063                        q = "";
1064                } else {
1065                        q = Url.decode(q);
1066                }/*
1067                if (squery == undefined) {
1068                        squery = "";
1069                } */
1070                if (columns == undefined) {
1071                        columns = "";
1072                }
1073                if (startItem == undefined) {
1074                        startItem = 1;
1075                }
1076                if (maximumItems == undefined) {
1077                        maximumItems = 10;
1078                }
1079                if (repository == undefined) {
1080                        repository = getSelectedRepository();
1081                }
1082                if (collection == undefined){
1083                        collection = "";
1084                }
1085                var collections = [];
1086                if (collection.length > 0 ){
1087                        var coll = collection.split(",");
1088                        $.each(coll,function(i,item){
1089                                        var n;
1090                                        n = $('#collections').find(".folder:[handle='"+item+"']").text();
1091                                        var simple_collection = new Collection(item, n);
1092                                        collections[i] = simple_collection;
1093                        });
1094                }
1095               
1096                var query = new Query(collections, columns, q);
1097                query.startItem = startItem;
1098                query.maximumItems = maximumItems;
1099                query.repository = repository;
1100               
1101               
1102                queryset.addquery(query);
1103               
1104                searchclauseset.sctext = query.query;
1105                notifyUser(searchclauseset.sctext,'debug');
1106                searchclauseset.buildfromquerystring();
1107
1108                //collections = query.collection;
1109                collections_widget.load(query.collection);
1110                columns_widget.load(query.columns.split(','));
1111                $('#input-simplequery').attr("value",query.squery);
1112                $('#input-withsummary').attr("checked",(query.options != null));
1113                updateCollectionTree();
1114                /*
1115               
1116                searchclauseset.sctext = query.query;
1117                notifyUser(searchclauseset.sctext,'debug');
1118               
1119                searchclauseset.buildfromquerystring();
1120
1121                $('#collection_list').attr("value",query.getcollectiontext("name"));
1122       
1123                columns_widget.load(query.columns.split(','));
1124                //$('#columns_list').attr("value",query.columns);
1125                $('#input-simplequery').attr("value",query.squery);     
1126
1127                $('#query-input').show();
1128                                                                         
1129                //hideWelcomeMessage();
1130                */
1131        }
1132       
1133}
1134
1135
Note: See TracBrowser for help on using the repository browser.