Holger Knublauch

Fixed resource search, added index

...@@ -72,6 +72,158 @@ app:PropertyWidgetGroupFilterFunctions ...@@ -72,6 +72,158 @@ app:PropertyWidgetGroupFilterFunctions
72 ] ; 72 ] ;
73 spin:returnType xsd:boolean . 73 spin:returnType xsd:boolean .
74 74
75 +app:ResourcesWithLetter
76 + rdf:type spin:SelectTemplate ;
77 + rdfs:comment "Gets an ordered list of all instances of a given class that start with a given letter."^^xsd:string ;
78 + rdfs:label "Resources with letter"^^xsd:string ;
79 + rdfs:subClassOf spin:SelectTemplates ;
80 + spin:body
81 + [ rdf:type sp:Select ;
82 + sp:distinct "true"^^xsd:boolean ;
83 + sp:orderBy ([ rdf:type fn:lower-case ;
84 + sp:arg1 [ sp:varName "label"^^xsd:string
85 + ]
86 + ]) ;
87 + sp:resultVariables ([ sp:varName "resource"^^xsd:string
88 + ]) ;
89 + sp:where ([ rdf:type sp:TriplePath ;
90 + sp:object
91 + [ sp:varName "resourceType"^^xsd:string
92 + ] ;
93 + sp:path [ rdf:type sp:ModPath ;
94 + sp:modMax -2 ;
95 + sp:modMin 0 ;
96 + sp:subPath rdfs:subClassOf
97 + ] ;
98 + sp:subject
99 + [ sp:varName "type"^^xsd:string
100 + ]
101 + ] [ sp:object
102 + [ sp:varName "type"^^xsd:string
103 + ] ;
104 + sp:predicate rdf:type ;
105 + sp:subject
106 + [ sp:varName "resource"^^xsd:string
107 + ]
108 + ] [ rdf:type sp:Filter ;
109 + sp:expression
110 + [ rdf:type sp:isIRI ;
111 + sp:arg1 [ sp:varName "resource"^^xsd:string
112 + ]
113 + ]
114 + ] [ rdf:type sp:Bind ;
115 + sp:expression
116 + [ rdf:type ui:label ;
117 + sp:arg1 [ sp:varName "resource"^^xsd:string
118 + ]
119 + ] ;
120 + sp:variable
121 + [ sp:varName "label"^^xsd:string
122 + ]
123 + ] [ rdf:type sp:Filter ;
124 + sp:expression
125 + [ rdf:type fn:starts-with ;
126 + sp:arg1 [ rdf:type fn:upper-case ;
127 + sp:arg1 [ sp:varName "label"^^xsd:string
128 + ]
129 + ] ;
130 + sp:arg2 [ sp:varName "letter"^^xsd:string
131 + ]
132 + ]
133 + ])
134 + ] ;
135 + spin:constraint
136 + [ rdf:type spl:Argument ;
137 + rdfs:comment "The (uppercase) letter to match."^^xsd:string ;
138 + spl:predicate arg:letter ;
139 + spl:valueType xsd:string
140 + ] ;
141 + spin:constraint
142 + [ rdf:type spl:Argument ;
143 + rdfs:comment "The resource type."^^xsd:string ;
144 + spl:predicate arg:resourceType ;
145 + spl:valueType rdfs:Class
146 + ] .
147 +
148 +app:ResourcesWithNonLetter
149 + rdf:type spin:SelectTemplate ;
150 + rdfs:comment "Gets an ordered list of all instances of a given type that do not start with a letter from A-Z."^^xsd:string ;
151 + rdfs:label "Resources with non letter"^^xsd:string ;
152 + rdfs:subClassOf spin:SelectTemplates ;
153 + spin:body
154 + [ rdf:type sp:Select ;
155 + sp:distinct "true"^^xsd:boolean ;
156 + sp:orderBy ([ rdf:type fn:lower-case ;
157 + sp:arg1 [ sp:varName "label"^^xsd:string
158 + ]
159 + ]) ;
160 + sp:resultVariables ([ sp:varName "resource"^^xsd:string
161 + ]) ;
162 + sp:where ([ rdf:type sp:TriplePath ;
163 + sp:object
164 + [ sp:varName "resourceType"^^xsd:string
165 + ] ;
166 + sp:path [ rdf:type sp:ModPath ;
167 + sp:modMax -2 ;
168 + sp:modMin 0 ;
169 + sp:subPath rdfs:subClassOf
170 + ] ;
171 + sp:subject
172 + [ sp:varName "type"^^xsd:string
173 + ]
174 + ] [ sp:object
175 + [ sp:varName "type"^^xsd:string
176 + ] ;
177 + sp:predicate rdf:type ;
178 + sp:subject
179 + [ sp:varName "resource"^^xsd:string
180 + ]
181 + ] [ rdf:type sp:Filter ;
182 + sp:expression
183 + [ rdf:type sp:isIRI ;
184 + sp:arg1 [ sp:varName "resource"^^xsd:string
185 + ]
186 + ]
187 + ] [ rdf:type sp:Bind ;
188 + sp:expression
189 + [ rdf:type ui:label ;
190 + sp:arg1 [ sp:varName "resource"^^xsd:string
191 + ]
192 + ] ;
193 + sp:variable
194 + [ sp:varName "label"^^xsd:string
195 + ]
196 + ] [ rdf:type sp:Bind ;
197 + sp:expression
198 + [ rdf:type fn:upper-case ;
199 + sp:arg1 [ rdf:type fn:substring ;
200 + sp:arg1 [ sp:varName "label"^^xsd:string
201 + ] ;
202 + sp:arg2 1 ;
203 + sp:arg3 1
204 + ]
205 + ] ;
206 + sp:variable
207 + [ sp:varName "first"^^xsd:string
208 + ]
209 + ] [ rdf:type sp:Filter ;
210 + sp:expression
211 + [ rdf:type sp:not ;
212 + sp:arg1 [ rdf:type fn:contains ;
213 + sp:arg1 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
214 + sp:arg2 [ sp:varName "first"^^xsd:string
215 + ]
216 + ]
217 + ]
218 + ])
219 + ] ;
220 + spin:constraint
221 + [ rdf:type spl:Argument ;
222 + rdfs:comment "The type of resources to match (will include subclasses of the type)."^^xsd:string ;
223 + spl:predicate arg:resourceType ;
224 + spl:valueType rdfs:Class
225 + ] .
226 +
75 app:allValuesFromFunctor 227 app:allValuesFromFunctor
76 rdf:type spin:Function ; 228 rdf:type spin:Function ;
77 rdfs:comment "Can be used in conjunction with spif:walkObjects to get the \"first\" declared owl:allValuesFrom restriction of a given property (?property) at a given class (?class)."^^xsd:string ; 229 rdfs:comment "Can be used in conjunction with spif:walkObjects to get the \"first\" declared owl:allValuesFrom restriction of a given property (?property) at a given class (?class)."^^xsd:string ;
...@@ -809,6 +961,76 @@ app:isSingle ...@@ -809,6 +961,76 @@ app:isSingle
809 spin:private "true"^^xsd:boolean ; 961 spin:private "true"^^xsd:boolean ;
810 spin:returnType xsd:boolean . 962 spin:returnType xsd:boolean .
811 963
964 +app:letters
965 + rdf:type spin:MagicProperty ;
966 + rdfs:comment "Binds the variable on the left with all letters from A-Z, and then *."^^xsd:string ;
967 + rdfs:label "letters"^^xsd:string ;
968 + rdfs:subClassOf spin:MagicProperties ;
969 + spin:body
970 + [ rdf:type sp:Select ;
971 + sp:resultVariables ([ sp:varName "letter"^^xsd:string
972 + ]) ;
973 + sp:where ([ rdf:type sp:Bind ;
974 + sp:expression "ABCDEFGHIJKLMNOPQRSTUVXYZ*" ;
975 + sp:variable
976 + [ sp:varName "str"^^xsd:string
977 + ]
978 + ] [ rdf:type sp:Bind ;
979 + sp:expression
980 + [ rdf:type fn:string-length ;
981 + sp:arg1 [ sp:varName "str"^^xsd:string
982 + ]
983 + ] ;
984 + sp:variable
985 + [ sp:varName "length"^^xsd:string
986 + ]
987 + ] [ sp:object
988 + [ sp:varName "?0"^^xsd:string
989 + ] ;
990 + sp:predicate spif:for ;
991 + sp:subject
992 + [ sp:varName "x"^^xsd:string
993 + ]
994 + ] [ sp:object 1 ;
995 + sp:predicate rdf:first ;
996 + sp:subject
997 + [ sp:varName "?0"^^xsd:string
998 + ]
999 + ] [ sp:object
1000 + [ sp:varName "?1"^^xsd:string
1001 + ] ;
1002 + sp:predicate rdf:rest ;
1003 + sp:subject
1004 + [ sp:varName "?0"^^xsd:string
1005 + ]
1006 + ] [ sp:object
1007 + [ sp:varName "length"^^xsd:string
1008 + ] ;
1009 + sp:predicate rdf:first ;
1010 + sp:subject
1011 + [ sp:varName "?1"^^xsd:string
1012 + ]
1013 + ] [ sp:object () ;
1014 + sp:predicate rdf:rest ;
1015 + sp:subject
1016 + [ sp:varName "?1"^^xsd:string
1017 + ]
1018 + ] [ rdf:type sp:Bind ;
1019 + sp:expression
1020 + [ rdf:type fn:substring ;
1021 + sp:arg1 [ sp:varName "str"^^xsd:string
1022 + ] ;
1023 + sp:arg2 [ sp:varName "x"^^xsd:string
1024 + ] ;
1025 + sp:arg3 1
1026 + ] ;
1027 + sp:variable
1028 + [ sp:varName "letter"^^xsd:string
1029 + ]
1030 + ])
1031 + ] ;
1032 + spin:returnType xsd:string .
1033 +
812 app:localDomain 1034 app:localDomain
813 rdf:type spin:Function ; 1035 rdf:type spin:Function ;
814 rdfs:comment "Gets the \"domain\" of a property at an object. This is used to narrow down the Subjects widgets at edit time. Currently only uses rdfs:domain of the property, but future versions should also look at restrictions and spl:Arguments."^^xsd:string ; 1036 rdfs:comment "Gets the \"domain\" of a property at an object. This is used to narrow down the Subjects widgets at edit time. Currently only uses rdfs:domain of the property, but future versions should also look at restrictions and spl:Arguments."^^xsd:string ;
...@@ -1268,6 +1490,11 @@ arg:class ...@@ -1268,6 +1490,11 @@ arg:class
1268 rdfs:label "class"^^xsd:string ; 1490 rdfs:label "class"^^xsd:string ;
1269 rdfs:subPropertyOf sp:arg . 1491 rdfs:subPropertyOf sp:arg .
1270 1492
1493 +arg:letter
1494 + rdf:type rdf:Property ;
1495 + rdfs:label "letter"^^xsd:string ;
1496 + rdfs:subPropertyOf sp:arg .
1497 +
1271 arg:node 1498 arg:node
1272 rdf:type rdf:Property ; 1499 rdf:type rdf:Property ;
1273 rdfs:label "node"^^xsd:string ; 1500 rdfs:label "node"^^xsd:string ;
......
...@@ -2101,6 +2101,180 @@ app:ImageResourceViewer ...@@ -2101,6 +2101,180 @@ app:ImageResourceViewer
2101 ] 2101 ]
2102 ] . 2102 ] .
2103 2103
2104 +app:Index
2105 + rdf:type ui:NodeClass ;
2106 + rdfs:comment "Displays a list of hyperlinks A B C ... Z * where each letter opens a dialog with all resources starting with that letter."^^xsd:string ;
2107 + rdfs:label "Index"^^xsd:string ;
2108 + rdfs:subClassOf app:IndexElements ;
2109 + spin:constraint
2110 + [ rdf:type spl:Argument ;
2111 + rdfs:comment "The JavaScript code that will be called if the user has selected a resource. The variable resource will point to the URI of the selected resource."^^xsd:string ;
2112 + spl:predicate arg:onSelect ;
2113 + spl:valueType xsd:string
2114 + ] ;
2115 + spin:constraint
2116 + [ rdf:type spl:Argument ;
2117 + rdfs:comment "The type of instances to index."^^xsd:string ;
2118 + spl:predicate arg:resourceType ;
2119 + spl:valueType rdfs:Resource
2120 + ] ;
2121 + ui:prototype
2122 + [ rdf:type html:Div ;
2123 + html:class "appIndex"^^xsd:string ;
2124 + ui:child
2125 + [ rdf:type ui:forEach ;
2126 + ui:child
2127 + [ rdf:type html:A ;
2128 + html:href "javascript:void(0)"^^xsd:string ;
2129 + html:onclick
2130 + [ rdf:type ui:concat ;
2131 + sp:arg1 "appOpenIndexLetterDialog('appIndexLetterDialog', '"^^xsd:string ;
2132 + sp:arg2 [ sp:varName "letter"^^xsd:string
2133 + ] ;
2134 + sp:arg3 "')"^^xsd:string
2135 + ] ;
2136 + ui:child
2137 + [ rdf:type ui:TextNode ;
2138 + ui:childIndex 0 ;
2139 + ui:text [ sp:varName "letter"^^xsd:string
2140 + ]
2141 + ] ;
2142 + ui:childIndex 0
2143 + ] ;
2144 + ui:childIndex 0 ;
2145 + ui:resultSet
2146 + [ rdf:type sp:Select ;
2147 + sp:where ([ sp:object
2148 + [ sp:varName "letter"^^xsd:string
2149 + ] ;
2150 + sp:predicate app:letters ;
2151 + sp:subject ()
2152 + ])
2153 + ] ;
2154 + ui:separator " "^^xsd:string
2155 + ] ;
2156 + ui:child
2157 + [ rdf:type app:IndexLetterDialog ;
2158 + arg:onSelect
2159 + [ sp:varName "onSelect"^^xsd:string
2160 + ] ;
2161 + arg:resourceType
2162 + [ sp:varName "resourceType"^^xsd:string
2163 + ] ;
2164 + ui:childIndex 1
2165 + ]
2166 + ] .
2167 +
2168 +app:IndexElements
2169 + rdf:type ui:NodeClass ;
2170 + rdfs:label "Index elements"^^xsd:string ;
2171 + rdfs:subClassOf app:Elements ;
2172 + ui:abstract "true"^^xsd:boolean .
2173 +
2174 +app:IndexLetterDialog
2175 + rdf:type ui:NodeClass ;
2176 + rdfs:comment "A dialog that displays a sorted list of all resources starting with a given letter."^^xsd:string ;
2177 + rdfs:label "Index letter dialog"^^xsd:string ;
2178 + rdfs:subClassOf app:IndexElements ;
2179 + spin:constraint
2180 + [ rdf:type spl:Argument ;
2181 + rdfs:comment "The JavaScript that will be called."^^xsd:string ;
2182 + spl:predicate arg:onSelect ;
2183 + spl:valueType xsd:string
2184 + ] ;
2185 + spin:constraint
2186 + [ rdf:type spl:Argument ;
2187 + rdfs:comment "The type of instances to display."^^xsd:string ;
2188 + spl:predicate arg:resourceType ;
2189 + spl:valueType rdfs:Resource
2190 + ] ;
2191 + ui:prototype
2192 + [ rdf:type ui:loadable ;
2193 + html:style "display: none"^^xsd:string ;
2194 + ui:child
2195 + [ rdf:type ui:if ;
2196 + ui:child
2197 + [ rdf:type ui:call ;
2198 + arg:letter
2199 + [ sp:varName "letter"^^xsd:string
2200 + ] ;
2201 + arg:resourceType
2202 + [ sp:varName "resourceType"^^xsd:string
2203 + ] ;
2204 + ui:child
2205 + [ rdf:type html:Div ;
2206 + html:id "div-appIndexLetterDialog"^^xsd:string ;
2207 + html:title
2208 + [ rdf:type ui:concat ;
2209 + sp:arg1 "Resources starting with "^^xsd:string ;
2210 + sp:arg2 [ sp:varName "letter"^^xsd:string
2211 + ] ;
2212 + sp:arg3 " ("^^xsd:string ;
2213 + sp:arg4 [ rdf:type spr:rowCount ;
2214 + sp:arg1 [ sp:varName "rs"^^xsd:string
2215 + ]
2216 + ] ;
2217 + sp:arg5 ")"^^xsd:string
2218 + ] ;
2219 + ui:child
2220 + [ rdf:type ui:forEach ;
2221 + ui:child
2222 + [ rdf:type html:Div ;
2223 + html:class "appIndexSummary"^^xsd:string ;
2224 + ui:child
2225 + [ rdf:type html:A ;
2226 + html:href "javascript:void(0)"^^xsd:string ;
2227 + html:onclick
2228 + [ rdf:type ui:concat ;
2229 + sp:arg1 "var resource = '"^^xsd:string ;
2230 + sp:arg2 [ sp:varName "resource"^^xsd:string
2231 + ] ;
2232 + sp:arg3 "';"^^xsd:string ;
2233 + sp:arg4 [ sp:varName "onSelect"^^xsd:string
2234 + ] ;
2235 + sp:arg5 ";appCloseDialog('appIndexLetterDialog');"^^xsd:string
2236 + ] ;
2237 + ui:child
2238 + [ rdf:type ui:TextNode ;
2239 + ui:childIndex 0 ;
2240 + ui:text [ rdf:type ui:label ;
2241 + sp:arg1 [ sp:varName "resource"^^xsd:string
2242 + ]
2243 + ]
2244 + ] ;
2245 + ui:childIndex 0
2246 + ] ;
2247 + ui:childIndex 0
2248 + ] ;
2249 + ui:childIndex 0 ;
2250 + ui:resultSet
2251 + [ sp:varName "rs"^^xsd:string
2252 + ]
2253 + ] ;
2254 + ui:childIndex 0
2255 + ] ;
2256 + ui:childIndex 0 ;
2257 + ui:template
2258 + [ rdf:type sp:if ;
2259 + sp:arg1 [ rdf:type sp:eq ;
2260 + sp:arg1 [ sp:varName "letter"^^xsd:string
2261 + ] ;
2262 + sp:arg2 "*"
2263 + ] ;
2264 + sp:arg2 app:ResourcesWithNonLetter ;
2265 + sp:arg3 app:ResourcesWithLetter
2266 + ]
2267 + ] ;
2268 + ui:childIndex 0 ;
2269 + ui:condition
2270 + [ rdf:type sp:bound ;
2271 + sp:arg1 [ sp:varName "letter"^^xsd:string
2272 + ]
2273 + ]
2274 + ] ;
2275 + ui:loadId "appIndexLetterDialog"^^xsd:string
2276 + ] .
2277 +
2104 app:Label 2278 app:Label
2105 rdf:type ui:NodeClass ; 2279 rdf:type ui:NodeClass ;
2106 rdfs:label "Label"^^xsd:string ; 2280 rdfs:label "Label"^^xsd:string ;
...@@ -3866,7 +4040,7 @@ app:ResourceFacet ...@@ -3866,7 +4040,7 @@ app:ResourceFacet
3866 ] ; 4040 ] ;
3867 ui:prototype 4041 ui:prototype
3868 [ rdf:type app:AutoComplete ; 4042 [ rdf:type app:AutoComplete ;
3869 - arg:id [ rdf:type fn:concat ; 4043 + arg:id [ rdf:type ui:concat ;
3870 sp:arg1 "value"^^xsd:string ; 4044 sp:arg1 "value"^^xsd:string ;
3871 sp:arg2 [ sp:varName "uid"^^xsd:string 4045 sp:arg2 [ sp:varName "uid"^^xsd:string
3872 ] 4046 ]
...@@ -4084,8 +4258,8 @@ app:ResourceViewDialog ...@@ -4084,8 +4258,8 @@ app:ResourceViewDialog
4084 ] 4258 ]
4085 ] ; 4259 ] ;
4086 ui:childIndex 0 ; 4260 ui:childIndex 0 ;
4087 - ui:varName "noLinks"^^xsd:string ; 4261 + ui:varName "createLinkFunction"^^xsd:string ;
4088 - ui:varValue "true"^^xsd:boolean 4262 + ui:varValue app:noLink
4089 ] ; 4263 ] ;
4090 ui:childIndex 0 4264 ui:childIndex 0
4091 ] ; 4265 ] ;
...@@ -6962,29 +7136,6 @@ app:createLink ...@@ -6962,29 +7136,6 @@ app:createLink
6962 sp:where ([ rdf:type sp:Bind ; 7136 sp:where ([ rdf:type sp:Bind ;
6963 sp:expression 7137 sp:expression
6964 [ rdf:type ui:contextValue ; 7138 [ rdf:type ui:contextValue ;
6965 - sp:arg1 "noLinks"
6966 - ] ;
6967 - sp:variable
6968 - [ sp:varName "noLinks"^^xsd:string
6969 - ]
6970 - ] [ rdf:type sp:Filter ;
6971 - sp:expression
6972 - [ rdf:type sp:or ;
6973 - sp:arg1 [ rdf:type sp:not ;
6974 - sp:arg1 [ rdf:type sp:bound ;
6975 - sp:arg1 [ sp:varName "noLinks"^^xsd:string
6976 - ]
6977 - ]
6978 - ] ;
6979 - sp:arg2 [ rdf:type sp:ne ;
6980 - sp:arg1 [ sp:varName "noLinks"^^xsd:string
6981 - ] ;
6982 - sp:arg2 "true"^^xsd:boolean
6983 - ]
6984 - ]
6985 - ] [ rdf:type sp:Bind ;
6986 - sp:expression
6987 - [ rdf:type ui:contextValue ;
6988 sp:arg1 "createLinkFunction" 7139 sp:arg1 "createLinkFunction"
6989 ] ; 7140 ] ;
6990 sp:variable 7141 sp:variable
...@@ -7409,6 +7560,18 @@ app:modeProperty ...@@ -7409,6 +7560,18 @@ app:modeProperty
7409 spl:valueType rdf:Property 7560 spl:valueType rdf:Property
7410 ] . 7561 ] .
7411 7562
7563 +app:noLink
7564 + rdf:type spin:Function ;
7565 + rdfs:comment "A dummy function that returns nothing, suppressing any links."^^xsd:string ;
7566 + rdfs:label "no link"^^xsd:string ;
7567 + rdfs:subClassOf app:CreateLinkFunctions ;
7568 + spin:body
7569 + [ rdf:type sp:Select ;
7570 + sp:resultVariables ([ sp:varName "nothing"^^xsd:string
7571 + ]) ;
7572 + sp:where ()
7573 + ] .
7574 +
7412 app:objectWidgetClass 7575 app:objectWidgetClass
7413 rdf:type rdf:Property ; 7576 rdf:type rdf:Property ;
7414 rdfs:domain app:Mode ; 7577 rdfs:domain app:Mode ;
...@@ -7497,6 +7660,11 @@ app:weight ...@@ -7497,6 +7660,11 @@ app:weight
7497 rdfs:range xsd:integer ; 7660 rdfs:range xsd:integer ;
7498 rdfs:subPropertyOf app:systemProperty . 7661 rdfs:subPropertyOf app:systemProperty .
7499 7662
7663 +arg:callback
7664 + rdf:type rdf:Property ;
7665 + rdfs:label "callback"^^xsd:string ;
7666 + rdfs:subPropertyOf sp:arg .
7667 +
7500 arg:child 7668 arg:child
7501 rdf:type rdf:Property ; 7669 rdf:type rdf:Property ;
7502 rdfs:label "child"^^xsd:string ; 7670 rdfs:label "child"^^xsd:string ;
......
...@@ -29,6 +29,15 @@ body { ...@@ -29,6 +29,15 @@ body {
29 display: inline-block !important; 29 display: inline-block !important;
30 } 30 }
31 31
32 +.appIndex {
33 + font-size: 12px;
34 + text-align: right;
35 +}
36 +
37 +.appIndexSummary {
38 + font-size: 12px;
39 +}
40 +
32 .appLabeledObjectsBodyTD { 41 .appLabeledObjectsBodyTD {
33 padding: 0px 0px 1px 0px; 42 padding: 0px 0px 1px 0px;
34 } 43 }
......
...@@ -73,6 +73,18 @@ function appAddRow(id, single) { ...@@ -73,6 +73,18 @@ function appAddRow(id, single) {
73 73
74 74
75 /** 75 /**
76 + * Programmatically closes and destroys the elements of a dialog that was previously
77 + * loaded through a ui:loadable.
78 + * @param loadId the id of the loadable surrounding the dialog
79 + */
80 +function appCloseDialog(loadId) {
81 + var div = $('#div-' + loadId);
82 + div.dialog("destroy");
83 + div.remove();
84 +}
85 +
86 +
87 +/**
76 * Called when the user clicks delete to delete a row from a widget. 88 * Called when the user clicks delete to delete a row from a widget.
77 * This completely deletes the element with the given id. 89 * This completely deletes the element with the given id.
78 * The hidden fields to instruct the server that the given object 90 * The hidden fields to instruct the server that the given object
...@@ -108,7 +120,7 @@ function appInitAutoComplete(id, hiddenId, link) { ...@@ -108,7 +120,7 @@ function appInitAutoComplete(id, hiddenId, link) {
108 return item.label; 120 return item.label;
109 }, 121 },
110 select : function(event, ui) { 122 select : function(event, ui) {
111 - $('#' + hiddenId).val(ui.item.resource); 123 + $('#' + hiddenId).val('<' + ui.item.resource + '>');
112 } 124 }
113 }); 125 });
114 } 126 }
...@@ -312,6 +324,22 @@ function appNavigateToInTab(resourceURI, queryGraphURI) { ...@@ -312,6 +324,22 @@ function appNavigateToInTab(resourceURI, queryGraphURI) {
312 } 324 }
313 325
314 326
327 +// Private
328 +function appOpenIndexLetterDialog(loadId, letter) {
329 + appLoad(loadId, { letter: '"' + letter + '"' }, function() {
330 + var div = $('#div-' + loadId);
331 + var title = div.attr('title');
332 + var options = {
333 + modal: true,
334 + title: title,
335 + width: 500,
336 + height: 400
337 + };
338 + div.dialog(options);
339 + });
340 +}
341 +
342 +
315 /** 343 /**
316 * Loads and then opens a dialog that was inserted into the current 344 * Loads and then opens a dialog that was inserted into the current
317 * document using app:ResourceViewDialog. 345 * document using app:ResourceViewDialog.
......
...@@ -82,8 +82,8 @@ rhswp:AGResourceViewDialog ...@@ -82,8 +82,8 @@ rhswp:AGResourceViewDialog
82 ] 82 ]
83 ] ; 83 ] ;
84 ui:childIndex 0 ; 84 ui:childIndex 0 ;
85 - ui:varName "noLinks"^^xsd:string ; 85 + ui:varName "createLinkFunction"^^xsd:string ;
86 - ui:varValue "true"^^xsd:boolean 86 + ui:varValue <http://appschema.org/noLink>
87 ] ; 87 ] ;
88 ui:childIndex 0 88 ui:childIndex 0
89 ] ; 89 ] ;
......