Changeset 1076
- Timestamp:
- 01/16/11 15:17:34 (13 years ago)
- Location:
- MDService2/trunk/MDService2
- Files:
-
- 3 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
MDService2/trunk/MDService2/WebContent/index.jsp
r1071 r1076 36 36 <% if ( request.getRemoteUser() == null) { %> 37 37 <a href="workspace.jsp" > login</a> 38 <a href=" static/MDBrowser_explained_5_resize.png" > docs</a>38 <a href="docs/htmlpage/info" > docs</a> 39 39 40 40 <% } else { %> -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_helpers.js
r1075 r1076 8 8 $(elems).children('.header').addClass('ui-widget-header ui-state-default ui-corner-top'); 9 9 $(elems).children('.content').addClass('ui-widget-content ui-corner-bottom'); 10 $(elems).children('.header').click(function() {10 /* $(elems).children('.header').click(function() { 11 11 $(this).next().toggle('fast'); 12 12 return false; 13 13 }).next().hide(); 14 15 14 */ 15 $(elems).children('.header').append('<span class="cmd cmd-collapse cmd_down" > </span>'); 16 $(elems).find('.cmd-collapse').click(function(event) { 17 $(this).closest('.header').next().toggle('fast'); 18 $(this).toggleClass('cmd_down cmd_up'); 19 return false; 20 }); 16 21 17 22 $(elems).each(function(i) { 18 23 if ($(this).hasClass('init-show')) { 19 24 $(this).children('.content').show(); 25 $(this).find('.cmd-collapse').toggleClass('cmd_down cmd_up'); 20 26 } 21 27 if ($(this).parent().hasClass('cmds-ui-closable')) { -
MDService2/trunk/MDService2/WebContent/scripts/mdservice_model.js
r1071 r1076 108 108 }; 109 109 110 /** special handling for special characters: double escaping (escape the %-sign) 111 * to survive the %-encoding through the request (and parsing) down to the transformation in XCQL2XPath.xsl 112 * it's: whitespace, and single and double-quotes (unified to double quotes %22) 113 */ 114 110 115 Query.prototype.query_uri = function () { 111 116 var params = "?"; … … 114 119 } 115 120 if (this.squery != null) { 116 params = params + "squery=" + escape(this.squery).replace("%20","%2520") + "&"; 121 escaped_sq =escape(this.squery).replace(/%20/g,"%2520").replace(/\%2[27]/g,"%2522") ; 122 escaped_sq = escaped_sq.replace(/%7C/g,"%257C").replace(/\+/g,"%2B"); 123 params = params + "squery=" + escaped_sq + "&"; 117 124 } 118 125 params = params + "collection=" + this.getcollectiontext("index") + "&columns=" + this.getcolumnstext() + "&startItem=" + this.startItem + "&maximumItems=" + this.maximumItems + "&repository=" + this.repository; -
MDService2/trunk/MDService2/WebContent/static/info.xml
r1064 r1076 1 1 <info xml:lang="en" > 2 <div id="title">Information</div> 2 3 <div id="welcome"> 3 4 … … 8 9 <li>browse the collections</li> 9 10 <li>try one of the sample queries</li> 10 <li>p rovide complex boolean-searches by profiles</li>11 <li>perform complex boolean-searches</li> 11 12 <li>search by profiles</li> 12 13 <li>search by data categories</li> … … 22 23 <p>Overview of current data set: 23 24 <ul> 24 <li>by Collections</li>25 <li>by Profiles</li>25 <li>by <a href="/MDService2/collections/htmlpage" >Collections</a></li> 26 <li>by <a href="/MDService2/terms/htmlpage/?q=all" >Profiles</a></li> 26 27 </ul> 27 </p> 28 28 </p> 29 </div> 30 <div> 31 <span class="title">Overview</span> 32 <p>Overview and explanation of usage of individual elements of the user-interface</p> 33 <a href="/MDService2/static/MDBrowser_explained_5_resize2000.png" > 34 <img src="/MDService2/static/MDBrowser_explained_5_resize800.png" title="MDBrowser explained2" /></a> 29 35 </div> 30 36 <div id="serverqs-info"> … … 36 42 <span class="title">Personalized workspace - commons</span> 37 43 <p>when logged in, you can store your queries and bookmarks here.</p> 38 <p>All anonymous user share the default workspace.</p>44 <p>All anonymous users share the default workspace.</p> 39 45 </div> 40 46 <div id="collections-info"> 47 <span class="title">Collections</span> 41 48 <p>Overview of collections=datasets available in the repository</p> 42 49 </div> 43 50 <div id="terms-info"> 51 <span class="title">Terms</span> 44 52 <p>Terms combines information from MDRepository, ComponentRegistry, Datacategory Registries (isocat, dublincore) and Relationregistry to allow to search by profiles or data categories, or even perform semantic search</p> 45 <p>You can search in he fields of individual profiles used by the MDrecords in the repository, or search over multiple profiles via datacategories</p>53 <p>You can search in the fields of individual profiles instantiated as the MDrecords in the repository, or search over multiple profiles via datacategories.</p> 46 54 </div> 47 55 <div id="compreg-info"> 48 <p>Overview of </p> 56 <span class="title" >Component Registry</span> 57 <p>Overview of all profiles and components defined in the Component Registry</p> 49 58 </div> 50 59 <div id="query-input-info"> 51 60 <span class="title" >Query Input</span> 61 <p>Form for entering the query. Either a simple or complex query</p> 62 <p>Both parts can be used in parallel: i.e. you can specify some terms for full-text search 63 and further refine them with. 64 The two parts are combined with boolean AND (the matching records have to satisfy both parts of the query.) 65 See <a href="queries" >example queries</a> for an overview of possible query types. 66 </p> 52 67 <div id="input-simplequery-info"> 53 <p>simple full-text search: individual terms, multiple terms, phrases(not yet)</p> 68 <p>simple full-text search: individual terms, multiple terms, phrases</p> 69 </div> 70 <div d="searchclauselist-info"> 71 <p>complex queries according to SRU/CQL-standard</p> 72 <p>Basic <em>search clause</em> consists of: <code>index relation term</code>, e.g. <code>dc.title any system</code>. 73 You can combine this search clauses with boolean operators (AND, OR), to more complex queries</p> 54 74 </div> 55 75 </div> … … 58 78 59 79 <div id="commands" > 80 <span class="title">Commands</span> 81 <p>List of commands available in the user-interface, explanation of their function:</p> 60 82 <dt id="cmd_add">Add new item</dt> 61 83 <dt id="cmd_add_and">Add an additional condition (AND)</dt> -
MDService2/trunk/MDService2/WebContent/style/cmds-ui.css
r1071 r1076 124 124 .columns-selected { } 125 125 126 /* documentation */ 127 .title, h1, h2, h3 { color: #014172;} 128 h1 {font-size: 1.6em;} 129 h2 {font-size: 1.4em;} 130 h3 {font-size: 1.2em;} 131 .title {font-size: 1.2 em; font-weight: bold; margin: 1em 0 0 0.2em;} 132 dt { padding: 1em 0 0.2em 1.5em; font-weight: bold;} 133 dd { padding-left: 2.5em; display:block;} 134 .info p { margin: 0.2em 0; } 135 126 136 /* ************* */ 127 137 /* tooltip */ … … 133 143 background:#A6C9E2; 134 144 color:#000; 135 } 136 145 } 137 146 138 147 /* command icons */ -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/Cache.java
r1069 r1076 193 193 194 194 File f = new File (formPath(key_info)); 195 Admin.notifyUser("CACHE.getFromCache:"+key_info);195 //Admin.notifyUser("CACHE.getFromCache:"+key_info); 196 196 197 197 198 198 if (f.exists()) { // read from file to InputStream; 199 Admin.notifyUser("CACHE.getFromCache.fromfile:"+f.getName() );199 Admin.notifyUser("CACHE.getFromCache.fromfile:"+f.getName() + "[#" + key_info + "]"); 200 200 InputStream instream; 201 201 try { … … 210 210 211 211 } else { //not cached, my dear 212 Admin.notifyUser("CACHE.getFromCache: NOT CACHED" );212 Admin.notifyUser("CACHE.getFromCache: NOT CACHED" + "[#" + key_info + "]"); 213 213 return null; 214 214 } … … 248 248 249 249 if(key_array.length > 1){ 250 Admin.notifyUser("formPATH- querystring:" + key_array[1]);250 // Admin.notifyUser("formPATH- querystring:" + key_array[1]); 251 251 if (key_array[0].equals("recordset")){ 252 252 query_str = this.transformQuery(key_array[1]); 253 Admin.notifyUser("formPATH- querystring-transformed:" + query_str);253 // Admin.notifyUser("formPATH- querystring-transformed:" + query_str); 254 254 } 255 255 else { -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/CompRegistryProxyAction.java
r1046 r1076 110 110 public void prepare() throws Exception { 111 111 112 Admin.notifyUser("CRPA.prepare");112 //Admin.notifyUser("CRPA.prepare"); 113 113 if (!getActionkey().equals("elements")) { 114 114 super.prepare(); 115 115 } else { 116 Admin.notifyUser("CRPA.prepareSourceStream - elements");116 // Admin.notifyUser("CRPA.prepareSourceStream - elements"); 117 117 String xcid; 118 118 InputStream _sourceStream; … … 122 122 _sourceStream = Cache.getCache().getFromCache(getRequestKey()); 123 123 if (_sourceStream == null) { 124 Admin.notifyUser("CRPA.prepareSourceStream- profiles");124 // Admin.notifyUser("CRPA.prepareSourceStream- profiles"); 125 125 setActionkey("profiles"); 126 126 setFormat("xmlresolved"); … … 129 129 __sourceStream = getSourceStream(); 130 130 xcid = Cache.getCache().putInCache(getRequestKey(),__sourceStream); 131 Admin.notifyUser("CRPA-putting in cache: " + getRequestKey());131 //Admin.notifyUser("CRPA-putting in cache: " + getRequestKey()); 132 132 __sourceStream = Cache.getCache().getFromCache(getRequestKey()); 133 133 } else{ 134 Admin.notifyUser("CRPA-reading from cache: " + getRequestKey());134 //Admin.notifyUser("CRPA-reading from cache: " + getRequestKey()); 135 135 } 136 Admin.notifyUser("CCCRPA." + getTargetRequest());137 Admin.notifyUser("CCCRPA." + getFullFormat());136 // Admin.notifyUser("CCCRPA." + getTargetRequest()); 137 // Admin.notifyUser("CCCRPA." + getFullFormat()); 138 138 MDTransformer transformer = new MDTransformer(); 139 139 transformer.setSrcFile(getTargetRequest()); 140 140 transformer.setParams(createTransformerParams()); 141 141 _sourceStream = transformer.transformXML(__sourceStream);//, getFullFormat(),null,null,null,null,null,null); 142 Admin.notifyUser("CRPA.- elements");142 // Admin.notifyUser("CRPA.- elements"); 143 143 setActionkey("elements"); 144 144 setFormat("htmllist"); 145 145 xcid = Cache.getCache().putInCache(getRequestKey(),_sourceStream); 146 Admin.notifyUser("CRPA-putting in cache: " + getRequestKey());146 // Admin.notifyUser("CRPA-putting in cache: " + getRequestKey()); 147 147 _sourceStream = Cache.getCache().getFromCache(getRequestKey()); 148 } 148 } /*else { 149 149 Admin.notifyUser("CRPA-reading from cache: " + getRequestKey()); 150 } 150 }*/ 151 151 /* 152 152 File file=new File(Cache.getCache().formPath(getRequestKey())); -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/GenericProxyAction.java
r1071 r1076 543 543 long now = System.currentTimeMillis(); 544 544 xcid = Cache.getCache().putInCache(req_key,sourceStream); 545 Admin.notifyUser("putting in cache: " + req_key);545 //Admin.notifyUser("putting in cache: " + req_key); 546 546 sourceStream = Cache.getCache().getFromCache(req_key); 547 } else {547 } /* else { 548 548 Admin.notifyUser("reading from cache: " + req_key); 549 } 549 } */ 550 550 } 551 551 … … 557 557 transformer.setSrcFile(getTargetRequest()); 558 558 // getColumns 559 Admin.notifyUser("GPA.getRepository, before xsl:" + getRepository());559 // Admin.notifyUser("GPA.getRepository, before xsl:" + getRepository()); 560 560 transformer.setParams(createTransformerParams()); 561 561 resultStream = transformer.transformXML(sourceStream);//, getFullFormat(), getColumns(), getStartRecord(), getMaximumRecords(),getLang(),getQ(),String.valueOf(getRepository())); … … 572 572 573 573 574 Admin.notifyUser("session-attrs:");575 Admin.notifyUser(getServletRequest().getRemoteUser() );574 //Admin.notifyUser("session-attrs:"); 575 //Admin.notifyUser(getServletRequest().getRemoteUser() ); 576 576 //Admin.notifyUser(String.valueOf(getSession())); 577 577 -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/TermsProxyAction.java
r911 r1076 37 37 return proxy_key; 38 38 } 39 40 /* special handling for the two phase processing of dcr/rr Terms */ 41 public void setProxyKey(String new_key) { 42 proxy_key=new_key; 43 } 44 39 45 40 46 /* @Override … … 122 128 public InputStream getSourceStream() throws IOException{ 123 129 String type = getTSAttr("type"); 130 Admin.notifyUser("TPA.getSourceStream.TStype: " + type); 124 131 if (type.equals("dcr") | type.equals("rr")) { 125 132 // if dcr|rr call model/matrix/all: http://localhost:8080/MDService2/model/matrix/?q=all … … 131 138 InputStream resultStream=null; 132 139 try { 140 this.setProxyKey("terms.dcr"); 133 141 MDTransformer transformer = new MDTransformer(); 134 142 transformer.setParams(createTransformerParams()); 143 /* IMPORTANT! change the format for the second phase: 144 * (but preserve the original format for the third phase. */ 145 transformer.getParams().put("format","terms2extract"); 146 147 Admin.notifyUser("TPA.getSourceStream.transformer.effectiveTranskey: " + transformer.getTranskey() + ", for Termset:" + getTSAttr("name") + '#' + getTSAttr("id")); 135 148 resultStream = transformer.transformXML(stream_matrix_all);//, "terms2extract", getColumns(), getStartRecord(), getMaximumRecords(),getLang(),getQ(), getRepositoryPath()); 149 136 150 } catch (InterruptedException e) { 137 151 Admin.notifyUser("TPA.getSourceStream(): "+ e.getMessage()); -
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/model/Query.java
r1071 r1076 450 450 if (query_string.contains(":")) { 451 451 int delim_index = query_string.indexOf(":"); 452 String prefix = query_string.substring(0,delim_index ); 453 Termset res = (Termset) Termset.getTermset(prefix); 454 String profile_name = res.getAttr("name"); 452 String profile_name = query_string.substring(0,delim_index ); 453 Termset res = (Termset) Termset.getTermset(profile_name); 454 if (res!=null) { 455 profile_name= res.getAttr("name"); 456 } 455 457 if (profile_name.equals("")) { 456 458 xpath=query_string.substring(delim_index); -
MDService2/trunk/MDService2/src/mdservice.properties
r1064 r1076 5 5 terms.dcr.uri = http://localhost:8080/MDService2/terms/extract/?q= 6 6 terms.file=terms_setup.xml 7 docs.uri=http://localhost:8080/MDService2/static/ 7 8 8 9 //dcregistry.uri = http://www.isocat.org/rest/ … … 69 70 70 71 xsl.admin2htmlpage = cache2view.xsl 72 xsl.docs2htmlpage = docs2view.xsl -
MDService2/trunk/MDService2/src/struts.xml
r1029 r1076 200 200 </action> 201 201 202 <action name="docs/*/*" class="eu.clarin.cmdi.mdservice.action.DocsAction" method="execute"> 203 <param name="format">{1}</param> 204 <param name="q">{2}</param> 205 <param name="actionkey">docs</param> 206 <result type="stream"> 207 <param name="contentType">${getActionContentType()}</param> 208 <param name="inputName">resultStream</param> 209 </result> 210 </action> 211 202 212 <action name="admin/*/*" class="eu.clarin.cmdi.mdservice.action.AdminAction" method="execute"> 203 213 <param name="format">{2}</param> -
MDService2/trunk/MDService2/src/terms_setup.xml
r1046 r1076 11 11 <Termset type="dcr" id="dct" name="dublincore terms" url="http://purl.org/dc/terms/" format="rdf" /> 12 12 <Termset type="rr" id="relcat" name="Relation Registry CMDI-set" url="http://lux13.mpi.nl/relcat/rest/set/cmdi" format="rdf" /> 13 <Termset type="rr" id="hdcrel" name="Relation Registry DC-set" url="http://lux13.mpi.nl/relcat/rest/set/dc" format="rdf" /> 14 13 15 </Termsets> -
MDService2/trunk/MDService2/src/xsl/XCQL2Xpath.xsl
r1064 r1076 48 48 <xsl:output method="text" /> 49 49 50 50 <xsl:template match="/"> 51 <xsl:message>XCQL: <xsl:copy-of select="." /></xsl:message> 52 <xsl:apply-templates/> 53 </xsl:template> 54 51 55 <xsl:template match="triple"> 52 <xsl:message>XCQL: <xsl:copy-of select="." /></xsl:message>56 53 57 <xsl:choose> 54 58 <!-- this is rather hacky yet … … 63 67 </xsl:when> 64 68 <xsl:otherwise> 65 <xsl:if test="not(ancestor::triple)" >//C MD/*[</xsl:if>69 <xsl:if test="not(ancestor::triple)" >//Components[</xsl:if> 66 70 <xsl:call-template name="boolean" > 67 71 <xsl:with-param name="op" select="boolean/value" /> … … 159 163 <xsl:variable name="ix_xpathed" select="my:index2xpath(.)" ></xsl:variable> 160 164 <xsl:choose> 161 <xsl:when test=".='cql.serverChoice' or .='*'" >//Components</xsl:when> 165 <xsl:when test="(.='cql.serverChoice' or .='*') and not(ancestor::triple)" >//Components</xsl:when> 166 <xsl:when test=".='cql.serverChoice' or .='*'" >.</xsl:when> 162 167 <xsl:when test="ancestor::triple" > 163 168 <xsl:value-of select="concat('.//',$ix_xpathed)" /> … … 182 187 <xsl:text>contains(.,'</xsl:text><xsl:value-of select="$sanitized_term"/><xsl:text>')</xsl:text> 183 188 </xsl:when> 184 <xsl:when test="(preceding-sibling::index='*' or preceding-sibling::index='cql.serverChoice') and contains($term,' ')" > 185 <xsl:text>ft:query(.,<phrase></xsl:text><xsl:value-of select="lower-case($sanitized_term)" /><xsl:text></phrase>)</xsl:text> 186 </xsl:when> 187 <xsl:when test="value='any' or preceding-sibling::index='cql.serverChoice'" > 188 <!-- use full-text querying: [ft:query(., "language")] --> 189 <xsl:text>ft:query(.,'</xsl:text><xsl:value-of select="lower-case($sanitized_term)"/><xsl:text>')</xsl:text> 190 189 <xsl:when test="(value='any' or preceding-sibling::index='*' or preceding-sibling::index='cql.serverChoice')" > 190 <!-- use full-text querying: [ft:query(., "language")] --> 191 <xsl:choose> 192 <xsl:when test="starts-with($term,'%22')" > 193 <xsl:text>ft:query(.,<phrase></xsl:text><xsl:value-of select="replace(lower-case($sanitized_term),'%22','')" /><xsl:text></phrase>)</xsl:text> 194 </xsl:when> 195 <xsl:when test="contains($term,'%7C')" > 196 <xsl:text>ft:query(.,'</xsl:text><xsl:value-of select="replace(lower-case($sanitized_term),'%7C','')"/><xsl:text>')</xsl:text> 197 </xsl:when> 198 <xsl:when test="contains($term,'%20') or contains($sanitized_term,'+')" > <!-- AND-combined full-text search--> 199 <xsl:for-each select="tokenize(replace($sanitized_term,'\+','%20'),'%20')" > 200 <xsl:if test=".!=''" > 201 <xsl:text>ft:query(.,'</xsl:text><xsl:value-of select="."/><xsl:text>')</xsl:text> 202 <xsl:message><xsl:value-of select="concat(position(),':', .)" ></xsl:value-of></xsl:message> 203 <xsl:if test="position()!=last()" ><xsl:text>][</xsl:text></xsl:if> 204 </xsl:if> 205 </xsl:for-each> 206 </xsl:when> 207 <xsl:otherwise> 208 <xsl:text>ft:query(.,'</xsl:text><xsl:value-of select="lower-case($sanitized_term)"/><xsl:text>')</xsl:text> 209 </xsl:otherwise> 210 </xsl:choose> 211 </xsl:when> 212 <xsl:when test="value='='" > 213 <xsl:text>. eq </xsl:text> <xsl:text>'</xsl:text><xsl:value-of select="$sanitized_term"/><xsl:text>'</xsl:text> 191 214 </xsl:when> 192 215 <xsl:otherwise> -
MDService2/trunk/MDService2/src/xsl/cmd_commons.xsl
r1071 r1076 38 38 39 39 <xsl:template match="/"> 40 <xsl:message>root_document-uri:<xsl:value-of select="$root_uri" /></xsl:message> 41 <xsl:message>components_uri:<xsl:value-of select="$components_uri" /></xsl:message> 40 <xsl:message>root_document-uri:<xsl:value-of select="$root_uri" /></xsl:message> 42 41 <xsl:choose> 43 42 <xsl:when test="contains($format,'htmlpage')" > -
MDService2/trunk/MDService2/src/xsl/cmd_functions.xsl
r1072 r1076 183 183 <xsl:param name="q" /> 184 184 185 <xsl:value-of select="concat($base_dir, '/',$action, '/', $format, '/?q=', $q, '&repository=', $repository_id)" /> 185 <xsl:choose> 186 <xsl:when test="$action=''"> 187 <xsl:value-of select="concat($base_dir, '/?q=', $q, '&repository=', $repository_id)" /> 188 </xsl:when> 189 <xsl:otherwise> 190 <xsl:value-of select="concat($base_dir, '/',$action, '/', $format, '/?q=', $q, '&repository=', $repository_id)" /> 191 </xsl:otherwise> 192 </xsl:choose> 193 186 194 </xsl:function> 187 195 -
MDService2/trunk/MDService2/src/xsl/mdinst2view.xsl
r1064 r1076 28 28 <xsl:param name="title" /> 29 29 <xsl:param name="inner_title" > 30 <!-- Gather just first title/name or something --> 31 <xsl:variable name="titles"> 30 <!-- Gather just first title/name or something --> 31 <xsl:variable name="titles" select="(//Title|//title|//ResourceName|//Name|//name)" /> 32 <!-- <xsl:variable name="titles"> 32 33 <xsl:choose> 33 34 <xsl:when test="exists(//Title/text())"> … … 42 43 </xsl:choose> 43 44 </xsl:variable> 45 --> 44 46 <!--<xsl:value-of select="count($titles)" /> --> 45 <xsl:value-of select="$titles /*[1]" />47 <xsl:value-of select="$titles[1]" /> 46 48 </xsl:param> 47 49 -
MDService2/trunk/MDService2/src/xsl/terms2view.xsl
r1074 r1076 45 45 </xsl:when> 46 46 <xsl:when test="$format='terms2htmllist'" > 47 <xsl: call-template name="list"/>47 <xsl:apply-templates select=".//Termset" mode="list"/> 48 48 </xsl:when> 49 49 <xsl:when test="$format='terms2flat'" > … … 59 59 <select id="terms-select"> 60 60 <xsl:apply-templates select=".//Termset" mode="select"/> 61 </select> 61 </select> 62 <a href="{my:formURL('terms','htmlpage','all')}">overview</a> 62 63 </xsl:when> 63 64 <xsl:otherwise> 64 <xsl: call-template name="list"/>65 <xsl:apply-templates select=".//Termset" mode="list"/> 65 66 </xsl:otherwise> 66 67 </xsl:choose> … … 109 110 </xsl:template> 110 111 111 <xsl:template name="list"> 112 <div class="terms"> 112 <xsl:template match="Termset" mode="list"> 113 <div class="terms"> 114 <span class="detail-caller"><xsl:value-of select="@name"/></span> 115 <xsl:call-template name="attr-detail-div" /> 113 116 <!-- format:<xsl:value-of select="$format" /> --> 114 117 <!--<xsl:variable name="translated_term" select="translate(replace(/*/Term[1]/@path,'//',''),'/','.')" /> 115 118 <input id="query_terms" value="{$translated_term}" /> --> 116 119 <ul class="treeview"> 117 <xsl:apply-templates select=" /*/Term[@path]" mode="list" />120 <xsl:apply-templates select="Term[@path]" mode="list" /> 118 121 </ul> 119 122 </div> -
MDService2/trunk/MDService2/src/xsl/values2view.xsl
r1074 r1076 85 85 86 86 <xsl:template match="Term" > 87 <xsl:variable name="index" select=" @name"/>87 <xsl:variable name="index" select="my:xpath2index(@path)"/> 88 88 <table> 89 89 <xsl:for-each select="v" > 90 90 <tr><td align="right"><xsl:value-of select="@count"/></td> 91 <td><a href="{ $base_dir}?q=({concat($index, '%3D%22', @key, '%22')})" target="_blank" >91 <td><a href="{my:formURL('','', concat($index, '%3D%22', @key, '%22'))}" target="_blank" > 92 92 <xsl:value-of select="@key"/></a></td> 93 93
Note: See TracChangeset
for help on using the changeset viewer.