Changeset 614


Ignore:
Timestamp:
07/29/10 20:23:44 (14 years ago)
Author:
gaba
Message:
 
Location:
MDService2/trunk/MDService2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • MDService2/trunk/MDService2/WebContent/index.jsp

    r596 r614  
    1111<link href="style/metares.css" type="text/css" rel="stylesheet">
    1212<link href="style/cmdi.css" type="text/css" rel="stylesheet">
     13<link href="style/query.css" type="text/css" rel="stylesheet">
     14<link href="style/jquery/jquery-textboxlist/TextboxList.css" rel="stylesheet" type="text/css">
    1315<link href="style/jquery/jquery-autocomplete/jquery.autocomplete.css" rel="stylesheet" type="text/css">
    1416
     17
     18<script src="scripts/jquery/js/jquery-1.3.2.min.js" type="text/javascript"></script>
    1519<script src="scripts/jquery/js/jquery-1.4.2.js" type="text/javascript"></script>
    1620<script src="scripts/jquery/js/jquery-ui-1.8.1.custom.min.js" type="text/javascript"></script>
     21
     22
     23<script src="scripts/jquery/jquery-textboxlist/GrowingInput.js" type="text/javascript"></script>
     24<!--
     25<script src="scripts/jquery/jquery-textboxlist/TextboxList.js" type="text/javascript"></script>
     26
     27 -->
     28
    1729<script src="scripts/jquery/jquery-treeview/jquery.treeview.js" type="text/javascript"></script>
    1830<script src="scripts/jquery/jquery-autocomplete/jquery.autocomplete.js" type="text/javascript"></script>
     31
     32<script src="scripts/mdservice_searchclause.js" type="text/javascript"></script>
    1933<script src="scripts/mdservice_model.js" type="text/javascript"></script>
    2034<script src="scripts/mdservice2_ui.js" type="text/javascript"></script>
     35
    2136
    2237</head>
     
    3651                <h2>Terms</h2> 
    3752                <div id="terms" class="block">
    38                         <div id="tmp_profiles" visible="false">
     53                        <div id="tmp_profiles">
    3954               
    4055                        </div>
     
    7489       
    7590        <s:form action="searchretrieve">
    76                 <s:textfield id="srquery" name="query" label="Query" size="50"/>       
    77                 <s:select label="Collections" size="1"
    78                 headerKey="-1" headerValue="" 
    79                 list="#{'1':'all'}"
    80                                 name="collection_selection"  />
     91                <!-- <s:textfield id="srquery" name="query" label="Query" size="50"/>-->       
     92                <label for="_query">Query:</label>
     93                <s:textfield id="query_list" name="_query" />
     94                <s:textarea id="query_area" name="_query" cols="60" rows="3" />
     95                <s:label id="q-button"  value="Click to use PLAIN TEXT" />
     96                <s:textarea label="Collection" id="collection_list" cols="60" rows="1" />
    8197                <s:submit value="Submit" />
    8298        </s:form>
     
    112128</div>
    113129
     130<div id="bubble1" >
     131<input type="text" id="q1" />
     132</div>
     133<div id="bubble2" >
     134<input type="text" id="q2" />
     135</div>
     136
    114137
    115138</body>
  • MDService2/trunk/MDService2/WebContent/scripts/mdservice2_ui.js

    r596 r614  
    3333
    3434
     35String.prototype.beginsWith = function(t, i) { if (i==false) { return
     36         (t == this.substring(0, t.length)); } else { return (t.toLowerCase()
     37         == this.substring(0, t.length).toLowerCase()); } } ;
     38
     39
     40String.prototype.endsWith = function(t, i) { if (i==false) { return (t
     41         == this.substring(this.length - t.length)); } else { return
     42         (t.toLowerCase() == this.substring(this.length -
     43         t.length).toLowerCase()); } } ;
     44
     45
    3546$(function(){
    3647
     
    4960//////////////         
    5061// POPULATE/LOAD VIEWS/BOXES;           
    51                        
    52 // COLLECTIONS getCollections          
     62                               
     63// COLLECTIONS getCollections   
    5364        $('#collections').load(link('collections','htmllist'), //profile.collections.base_uri,
    5465                        function() {
     
    7081                                               
    7182                                                // select or deselect all children according to parent
    72                                                 $(this).next().next().find(".selection").attr("checked",checked_status);
    73        
    74                                                 //                                              if (checked_status == "true"){
    75                                                 //                                                      $(this).next().next().find(".selection").attr("child","checked_child");
    76                                                 //                                      } else {
    77                                                 //                                      $(this).next().next().find(".selection").attr("child","undefined");
    78                                                 //                      }
    79                                                 //              notifyUser($(this).next().next().find(".selection").attr("child") ,'debug');
    80                                                 //                     
    81                                        
     83                                                $(this).next().next().find(".selection").attr("checked",checked_status);                                       
    8284                                       
    8385                                                // deselect parents
     
    134136                                                //notifyUser("collection:" + collection,'debug');
    135137                                               
    136                                                 var collection_size = $("li",$treeview).find("input:checked[child='parent_selection']").size();
    137                                                 if (collection_size == 0){
    138                                                         $("#searchretrieve_collection_selection").attr("size",1);
    139                                                         $("#searchretrieve_collection_selection").html("<option value='0'>all</option>");
    140                                                 } else{
    141                                                         $("#searchretrieve_collection_selection").attr("size",collection_size);
    142                                                         $("li",$treeview).find("input:checked[child='parent_selection']").next().each(function(index){
    143                                                                 //notifyUser("selection...:" + index + ":" + this.textContent,'debug');
    144                                                                 if (index == 0) {
    145                                                                         $("#searchretrieve_collection_selection").html("<option value='" + index  + "'>" + this.textContent + "</option>");
    146                                                                 } else {
    147                                                                         $("#searchretrieve_collection_selection").append("<option value='" + index  + "'>" + this.textContent + "</option>");
    148                                                                 }
    149                                                         });
    150                                                 }
     138
     139                                                var collection_text = "";
     140                                                $("li",$treeview).find("input:checked[child='parent_selection']").next().each(function(index){
     141                                                        notifyUser("selection...:" + index + ":" + this.textContent + this.value + $(this).value,'debug');                                                     
     142                                                        if (index == 0) {
     143                                                                collection_text = this.textContent;
     144                                                        } else {
     145                                                                collection_text = collection_text + ", " + this.textContent;
     146                                                        }
     147                                               
     148                                                });
     149                                                $('#collection_list').attr("value",collection_text);
    151150                                               
    152151                                        });// end of treeview click
    153152        });// end of collection callback       
     153
    154154
    155155// COMPONENTS ComponentRegistry                 
     
    179179        );
    180180// elements
    181         $('#terms').load(link('elements','htmllist'));
     181        $('#terms').load(link('elements','htmllist'),function(){
     182                //load autocomplete element after elements are loaded
     183                 // load autocomplete innerText, if (tag.innerHTML)
     184                 $('.term_detail_caller','#terms').each(function(index){
     185                                element_autocomplete[index]= $(this).children()[0].innerHTML;
     186                 });
     187                 
     188                 console.log("autocomplete loaded",'debug');
     189                 ////// INITIALIZE  QUERYSEARCH after elements are loaded
     190
     191                 $('#query_list').css('display', 'none');
     192                 $('<div id="searchclauselist"/>').insertAfter($('#query_list'));
     193
     194                var sc = new SearchClause("","","");
     195                searchclauseset.addsearchclause(sc,"",0,0);
     196
     197                 $('#query_area').hide();
     198                 $('#searchclauselist').show();
     199                 $('#q-button').addClass("searchtype_clauses");
     200                 
     201                 $('#q-button').live('click',function(){
     202                         if ($(this).text() == "Click to use PLAIN TEXT") {
     203                                 searchclauseset.buildsctext();
     204                                 $('#query_area').val(searchclauseset.sctext);
     205                                 $('#query_area').show();
     206                                 $('#searchclauselist').hide();
     207                                 $(this).toggleClass('searchtype_text searchtype_clauses');     
     208                                 $(this).text("Click to use SEARCH CLAUSES");
     209                         } else {
     210                                 $('#query_area').hide();
     211                                 $('#searchclauselist').show();
     212                                 $(this).text("Click to use PLAIN TEXT");
     213                                 $(this).toggleClass('searchtype_text searchtype_clauses');
     214                         }
     215                 });
     216                 
     217
     218        });
    182219       
    183220       
     
    192229        } );
    193230       
     231       
     232        $('#bubble .cmd_filter').live('click',  function(event) {       
     233                var term = $(this).next().next().attr("href");
     234                if ($('.searchtype_text','#search').size()> 0 ) {
     235                        var t = $('#query_area').text();
     236                        $('#query_area').val(t + " " + term);
     237                } else {
     238                        $('.focused','#searchclauselist').find('.index_input').val(term);
     239                }
     240                //$('#srquery').val(term);
     241        });
    194242        $(".term_detail_caller a").live('click',
    195243                                /* function(event) {
     
    220268       
    221269// MODEL queryModel
    222         /*
     270/*
    223271        $('#terms').load(link('terms', 'htmllist', actions.terms.current) );
    224272        $('#query_terms').attr('value', actions.terms.current);
     
    239287                        //update(event.currentTarget, '#terms', '#terms');                     
    240288                        });
    241 */
    242        
     289
     290        */
    243291       
    244292        // ISOCAT DCR
     
    263311                                        }
    264312                                        notifyUser('last_bubble_uri:' + last_bubble_uri,'debug');
     313                                       
     314                                        //TODO filter, read isocat:nr
     315                                        // use in query clause
     316                                        var term = $(this).val();
     317                                        var x = uri.split("/");
     318                                        var category = x[x.length-1];
     319                                        console.log(term);
     320                                        searchclauseset.updatedata(term, true, category);
    265321                                });
    266322
     
    293349                }
    294350        );             
    295 
    296          *
    297          */     
    298                        
     351       
     352                */     
    299353       
    300354///////// ADD functionality
    301          /*var  customarray = new Array('apple','pear','mango','pineapple',
    302                  'orange','banana','durian', 'jackfruit','etc');
    303          var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
    304          */
    305355         
    306          $('#srquery').autocomplete("/MDService2/static/terms_autocomplete.txt",
    307                          { delay: 40,
    308                  cacheLength : 200,
    309                  maxItemsToShow  :10
    310                          });
    311          ///$('#ccc').autocomplete("/MDService2/static/test.txt");
    312          
    313          
    314         $('.cmd_filter').live('click',  function(event) {                       
    315                         var term = $(this).parent().children('a').attr('href');
    316                 $('#srquery').val($(this).parent().children('a').attr('href'));
     356        $('#components .cmd_filter').live('click',  function(event) {   
     357                var term = $(this).prev().text();
     358                if ($('.searchtype_text','#search').size()> 0 ) {
     359                        var t = $('#query_area').text();
     360                        $('#query_area').val(t + " " + term);
     361                } else {
     362                        searchclauseset.updatedata(term);
     363                        //$('.focused','#searchclauselist').find('.index_input').val(term);
     364                }
     365                //$('#srquery').val($(this).parent().children('a').attr('href'));
    317366        });
    318367       
     
    320369        $('#terms .cmd_filter').live('click',  function(event) {                       
    321370                var term = $(this).parent().find('span.term_detail_caller a').text();
    322                 $('#srquery').val(term);
     371                if ($('.searchtype_text','#search').size()> 0 ) {
     372                        var t = $('#query_area').text();
     373                        $('#query_area').val(t + " " + term);
     374                } else {
     375                        searchclauseset.updatedata(term);
     376                       
     377                }
     378                //$('#srquery').val(term);
    323379        });
    324380/*
     
    380436       
    381437// RECORDSET searchRetrieve
    382         $('#searchretrieve').submit( function(event) {                 
     438        $('#searchretrieve').submit( function(event) {
    383439                        event.preventDefault();
    384                         var collections = "";
    385                         var length = $('#searchretrieve_collection_selection option').size();
    386                         $('#searchretrieve_collection_selection option').each(function(index){
    387                                 collections = collections + this.textContent;
    388                                 if (index < length - 1) {
    389                                   collections = collections + ",";     
    390                                 };
    391                         });
    392                         submit_query (collections,$('#srquery').attr('value'));                 
     440                        searchclauseset.buildsctext();
     441                        submit_query ($('#collection_list').attr("value"),searchclauseset.sctext);                     
    393442        });
    394443
     
    409458                $(this).toggleClass('cmd_down cmd_up');                                 
    410459        });
    411 
    412        
     460        $('.cmd_sc_delete').live('click',  function(event) {
     461                var i = $(this).closest('.sc-i').attr('id');
     462                var j = $(this).closest('.sc-j').attr('id');
     463                //console.log(i + j,'debug');
     464                searchclauseset.removesearchclause(i,j);
     465                                       
     466        });
     467        $('.cmd_add_and').live('click',  function(event) {
     468                //showTermDetail($(this).parent().text());
     469                //$(this).next().hide();
     470                $(this).attr("value","AND");
     471                var searchclause = new SearchClause("","","");
     472                var i = $(this).closest('.sc-i').attr('id');
     473                var j = $(this).closest('.sc-j').attr('id');
     474                //console.log(i + j,'debug');
     475                searchclauseset.addsearchclause(searchclause,"and",i,j);
     476                                       
     477        });
     478        $('.cmd_add_or').live('click',  function(event) {
     479                //showTermDetail($(this).parent().text());
     480                //$(this).next().hide();
     481                var i,j;
     482                $(this).attr("value","OR");
     483                var searchclause = new SearchClause("","","");
     484                searchclauseset.addsearchclause(searchclause,"or",$(this).closest('.sc-i').attr('id'),$(this).closest('.sc-j').attr('id'));
     485                                       
     486        });
    413487//////////// VISUALS
    414488                                       
     
    437511function submit_query (collection, query) {
    438512        notifyUser("processing query");
    439 /*
    440         var $treeview = $(".treeview","#collections");
    441         var collection = $("li",$treeview).find("input:checked[child='parent_selection']").next().text();
    442         notifyUser("collection:" + collection,'debug');
    443         */
     513
    444514        var q = new Query(collection, query); //actions.collections.current, query );
    445515        notifyUser("submit_query:" + q.query_uri(),'debug');
     
    506576        $("#querylist").prepend(x);     
    507577}
     578function addToSClist (div, i, j, rel) {
     579       
     580        var x;
     581       
     582        //console.log(i + "," + j + "," + rel);
     583        if (rel == ""){
     584                x = $('<div />').addClass("sc-i").addClass("and_level");
     585                $(div).appendTo($(x).appendTo($('#searchclauselist')));
     586                $(x).attr("id",i);
     587        } else {
     588                if (rel == "and") {
     589                        x = $('<div />').addClass("sc-i").addClass("and_level");
     590                        $(x).attr("id",i);
     591                        $(div).appendTo($(x).appendTo($('#searchclauselist')));
     592                } else {
     593                        $(div).appendTo($('#searchclauselist').children()[i]);
     594                }
     595        }
     596       
     597        //$('#searchclauselist').append($(li));
     598       
     599}
    508600
    509601var last_bubble_uri;
  • MDService2/trunk/MDService2/WebContent/scripts/mdservice_model.js

    r596 r614  
    44function Query(collection, query ) {
    55        this.collection = collection;
    6         this.query = query;     
     6        this.query = query;              //sctext
    77        this.listid = "";
    88        this.container = {};
     
    1212        return "?q=" + escape(this.query) + "&collection=" + this.collection;
    1313        //return $.param(this.query);
    14 }
     14};
    1515
    1616Query.prototype.render = function () {
     
    2222        addToQuerylist(x);     
    2323        this.container = $('#' + this.listid );
    24  }
     24 };
    2525
    2626Query.prototype.submit = function () {
     
    3838                        });
    3939
    40 }
     40};
    4141
    4242
  • MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/CompRegistryProxyAction.java

    r582 r614  
    119119                          }
    120120                         */
    121 
    122                         MDTransformer.getMDTransformer().setSrcFile(getTargetRequest());
    123                         _resultStream = MDTransformer.getMDTransformer().transformXML(_sourceStream, getFullFormat());
    124 
     121                       
     122                        if (getFormat().equals("xml")) {                       
     123                                _resultStream = _sourceStream; 
     124                        }else {
     125                                // set URL as srcFile (for MDTransformer to pass to xsl-scripts)
     126                                MDTransformer.getMDTransformer().setSrcFile(getTargetRequest());
     127                                _resultStream = MDTransformer.getMDTransformer().transformXML(_sourceStream, getFullFormat());
     128                                       
     129                        }
     130       
     131                        Admin.notifyUser(getProxyKey() + " success:" + (_resultStream!=null));
     132                       
    125133                        setSourceStream(_sourceStream);
    126134                        setResultStream(_resultStream);
    127                        
     135
     136                        /*
    128137                        if (getFormat().equals("txt")) {
    129138                                File f=new File(Cache.getCache().formPath("terms_autocomplete.txt"));
     
    136145Admin.notifyUser("terms_autocomplete.txt");
    137146                        }
    138                        
     147                        */
    139148                       
    140149                }
  • MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/model/Query.java

    r595 r614  
    1717import java.util.Map;
    1818
     19import org.w3c.dom.*;
     20import javax.xml.parsers.*;
     21
     22import org.xml.sax.SAXException;
    1923import org.z3950.zing.cql.CQLParseException;
    2024import org.z3950.zing.cql.CQLParser;
    2125import org.z3950.zing.cql.CQLNode;
    2226
     27import eu.clarin.cmdi.mdservice.action.Admin;
    2328import eu.clarin.cmdi.mdservice.action.MDTransformer;
    2429
     
    114119                if (type.equals(RECORDSET)) {
    115120                        parse();
     121                        //preprocess();
    116122                }
    117123                       
     
    199205       
    200206        /**
     207         * tries to parse the query_string according the CQL-syntax
     208         * if successful returns the root-node of the parse-tree
     209         */
     210        public void  preprocess() {
     211                 
     212          try {
     213                Admin.notifyUser(toXCQL());
     214                       
     215               
     216                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     217                DocumentBuilder builder = factory.newDocumentBuilder();
     218                Document doc = builder.parse(new org.xml.sax.InputSource(new java.io.StringReader(toXCQL())));
     219                       
     220                //Admin.notifyUser("document created");
     221                SearchClauses searchclauses = new SearchClauses(doc);
     222                //do the processing
     223                searchclauses.process();
     224                String xml_s = searchclauses.toXML();
     225               
     226                //Admin.notifyUser("AAAA2:" + xml_s);
     227          }
     228                catch (Exception e) {
     229                        e.printStackTrace();
     230                }
     231                return;
     232        }
     233       
     234       
     235        /**
    201236         * provides a xml-version of the query (if parsed successfully)
    202237         * according to the XCQL-schema defined in the SRU/CQL standard
Note: See TracChangeset for help on using the changeset viewer.