1 | function checkLoop(pid, serverFunction, callback)
|
---|
2 | {
|
---|
3 | var startLoop = function()
|
---|
4 | {
|
---|
5 | var loopCallback =
|
---|
6 | {
|
---|
7 | success:function(response)
|
---|
8 | {
|
---|
9 | var checkText = response.responseText;
|
---|
10 | if(checkText == null || checkText == "")
|
---|
11 | {
|
---|
12 | console.log("There was an error getting the XML to check the status of " + serverFunction);
|
---|
13 | }
|
---|
14 | else
|
---|
15 | {
|
---|
16 | var checkCodeStart = checkText.indexOf("code=\"") + 6;
|
---|
17 | var checkCodeEnd = checkText.indexOf("\"", checkCodeStart);
|
---|
18 | var code = checkText.substring(checkCodeStart, checkCodeEnd);
|
---|
19 |
|
---|
20 | if(code == 11 || code == 1) //11 is COMPLETED, 1 is success
|
---|
21 | {
|
---|
22 | callback();
|
---|
23 | }
|
---|
24 | else if(code == 12 || code == 3) //12 is HALTED, 3 is ERROR
|
---|
25 | {
|
---|
26 | console.log("There was an error on the server, could not check status of " + serverFunction);
|
---|
27 | }
|
---|
28 | else
|
---|
29 | {
|
---|
30 | setTimeout(startLoop, 1000);
|
---|
31 | }
|
---|
32 | }
|
---|
33 | },
|
---|
34 | failed:function()
|
---|
35 | {
|
---|
36 | console.log("There was a problem checking the status of " + serverFunction)
|
---|
37 | }
|
---|
38 | }
|
---|
39 | YAHOO.util.Connect.asyncRequest("GET", gs.xsltParams.library_name + "?a=g&rt=s&ro=1&s=" + serverFunction + "&s1.pid=" + pid, loopCallback);
|
---|
40 | }
|
---|
41 | startLoop();
|
---|
42 | }
|
---|
43 |
|
---|
44 | function buildFunction(collection)
|
---|
45 | {
|
---|
46 | var buildCallback =
|
---|
47 | {
|
---|
48 | success:function(response)
|
---|
49 | {
|
---|
50 | var buildText = response.responseText;
|
---|
51 | if(buildText == null || buildText == "")
|
---|
52 | {
|
---|
53 | console.log("There was an error getting the xml response from the building request");
|
---|
54 | }
|
---|
55 | else
|
---|
56 | {
|
---|
57 | var buildPIDStart = buildText.indexOf("pid=\"") + 5;
|
---|
58 | var buildPIDEnd = buildText.indexOf("\"", buildPIDStart);
|
---|
59 | var buildPID = buildText.substring(buildPIDStart, buildPIDEnd);
|
---|
60 |
|
---|
61 | checkLoop(buildPID, "BuildCollection", function()
|
---|
62 | {
|
---|
63 | var activateCallback =
|
---|
64 | {
|
---|
65 | success: function(response)
|
---|
66 | {
|
---|
67 | var activateText = response.responseText;
|
---|
68 | if(activateText == null || activateText == "")
|
---|
69 | {
|
---|
70 | console.log("There was an error getting the xml response from the activating request");
|
---|
71 | }
|
---|
72 | else
|
---|
73 | {
|
---|
74 | var activatePIDStart = activateText.indexOf("pid=\"") + 5;
|
---|
75 | var activatePIDEnd = activateText.indexOf("\"", activatePIDStart);
|
---|
76 | var activatePID = activateText.substring(activatePIDStart, activatePIDEnd);
|
---|
77 |
|
---|
78 | checkLoop(activatePID, "ActivateCollection", function()
|
---|
79 | {
|
---|
80 | var updateCallback =
|
---|
81 | {
|
---|
82 | success: function(response){document.getElementById("buildStatusBar").style.visibility = "hidden";},
|
---|
83 | failed: function(reponse){ alert("Failed in saveFunction() to re-read config files"); document.getElementById("buildStatusBar").style.visibility = "hidden";}
|
---|
84 | };
|
---|
85 | YAHOO.util.Connect.asyncRequest("GET", gs.xsltParams.library_name + "?a=s&sa=c", updateCallback);
|
---|
86 | });
|
---|
87 | }
|
---|
88 | },
|
---|
89 | failed: function(response)
|
---|
90 | {
|
---|
91 | document.getElementById("buildStatusBar").style.visibility = "hidden";
|
---|
92 | console.log("Failed to get response from activate collection request");
|
---|
93 | }
|
---|
94 | }
|
---|
95 | YAHOO.util.Connect.asyncRequest("GET", gs.xsltParams.library_name + "?a=g&rt=r&ro=1&s=ActivateCollection&s1.collection=" + collection, activateCallback);
|
---|
96 | });
|
---|
97 | }
|
---|
98 | },
|
---|
99 | failed: function(){console.log("Failed to get build collection response"); document.getElementById("buildStatusBar").style.visibility = "hidden";}
|
---|
100 | }
|
---|
101 |
|
---|
102 | YAHOO.util.Connect.asyncRequest("GET", gs.xsltParams.library_name + "?a=g&rt=r&ro=1&s=BuildCollection&s1.collection=" + collection, buildCallback);
|
---|
103 | showBuildingMessage();
|
---|
104 | }
|
---|
105 |
|
---|
106 | function saveAndBuildCollection(col)
|
---|
107 | {
|
---|
108 | for(var j = 0; j < gs.toDeleteArray.keys.length; j++)
|
---|
109 | {
|
---|
110 | var current = gs.toDeleteArray[gs.toDeleteArray.keys[j]];
|
---|
111 | if(current == null){continue;}
|
---|
112 | var metaToDelete = ["user", "text", "tags"];
|
---|
113 | for(var l = 0; l < metaToDelete.length; l++)
|
---|
114 | {
|
---|
115 | var deleteArchivesURL = "cgi-bin/metadata-server.pl?\
|
---|
116 | a=remove-archives-metadata&\
|
---|
117 | c=" + gs.cgiParams.c + "&\
|
---|
118 | site="+gs.xsltParams.site_name+"&\
|
---|
119 | d=" + gs.cgiParams.d + "&\
|
---|
120 | metaname=gstext." + metaToDelete[l] + "&\
|
---|
121 | metavalue=" + ((l == 0) ? (current.user.name) : (current[metaToDelete[l]]));
|
---|
122 |
|
---|
123 | var deleteIndexURL = "cgi-bin/metadata-server.pl?\
|
---|
124 | a=remove-metadata&\
|
---|
125 | c=" + gs.cgiParams.c + "&\
|
---|
126 | site="+gs.xsltParams.site_name+"&\
|
---|
127 | d=" + gs.cgiParams.d + "&\
|
---|
128 | metaname=gstext." + metaToDelete[l] + "&\
|
---|
129 | metavalue=" + ((l == 0) ? (current.user.name) : (current[metaToDelete[l]]));
|
---|
130 |
|
---|
131 | var deleteImportURL = "cgi-bin/metadata-server.pl?\
|
---|
132 | a=remove-import-metadata&\
|
---|
133 | c=" + gs.cgiParams.c + "&\
|
---|
134 | site="+gs.xsltParams.site_name+"&\
|
---|
135 | d=" + gs.cgiParams.d + "&\
|
---|
136 | metaname=gstext." + metaToDelete[l] + "&\
|
---|
137 | metavalue=" + ((l == 0) ? (current.user.name) : (current[metaToDelete[l]]));
|
---|
138 | var deleteArchivesCallback =
|
---|
139 | {
|
---|
140 | success:function(){},
|
---|
141 | failed: function(){alert("Failed to save text annotations archives metadata");}
|
---|
142 | }
|
---|
143 | YAHOO.util.Connect.asyncRequest("GET", deleteArchivesURL, deleteArchivesCallback);
|
---|
144 |
|
---|
145 | var deleteIndexCallback =
|
---|
146 | {
|
---|
147 | success:function(){},
|
---|
148 | failed: function(){alert("Failed to save text annotations index metadata");}
|
---|
149 | }
|
---|
150 | YAHOO.util.Connect.asyncRequest("GET", deleteIndexURL, deleteIndexCallback);
|
---|
151 |
|
---|
152 | var deleteImportCallback =
|
---|
153 | {
|
---|
154 | success:function(){},
|
---|
155 | failed: function(){alert("Failed to save text annotations import metadata");}
|
---|
156 | }
|
---|
157 | YAHOO.util.Connect.asyncRequest("GET", deleteImportURL, deleteImportCallback);
|
---|
158 | }
|
---|
159 | }
|
---|
160 | gs.toDeleteArray = new Array();
|
---|
161 | gs.toDeleteArray.keys = new Array();
|
---|
162 |
|
---|
163 | if(gs.annotationArray.keys.length > 0)
|
---|
164 | {
|
---|
165 | var json = "[";
|
---|
166 | for(var i = 0; i < gs.annotationArray.keys.length; i++)
|
---|
167 | {
|
---|
168 | var current = gs.annotationArray[gs.annotationArray.keys[i]];
|
---|
169 | if(current == null){continue;}
|
---|
170 | var metaToAdd = ["user", "text", "tags"];
|
---|
171 |
|
---|
172 | for(var j = 0; j < metaToAdd.length; j++)
|
---|
173 | {
|
---|
174 | if(metaToAdd[j] == "user")
|
---|
175 | {
|
---|
176 | json += '{"docid":"' + gs.cgiParams.d + '", "metaname":"gstext.' + metaToAdd[j] + '", "metavalue":"' + current.user.name + '"}';
|
---|
177 | }
|
---|
178 | else
|
---|
179 | {
|
---|
180 | json += '{"docid":"' + gs.cgiParams.d + '", "metaname":"gstext.' + metaToAdd[j] + '", "metavalue":"' + current[metaToAdd[j]] + '"}';
|
---|
181 | }
|
---|
182 |
|
---|
183 | if(j != (metaToAdd.length - 1) || i != (gs.annotationArray.keys.length - 1))
|
---|
184 | {
|
---|
185 | json += ',';
|
---|
186 | }
|
---|
187 | }
|
---|
188 | }
|
---|
189 | json += "]";
|
---|
190 |
|
---|
191 | var saveArchivesURL = "cgi-bin/metadata-server.pl?a=set-archives-metadata-array&c=" + gs.cgiParams.c + "&site="+gs.xsltParams.site_name+"&collect=" + gs.cgiParams.c + "&json=" + json;
|
---|
192 | var saveIndexURL = "cgi-bin/metadata-server.pl?a=set-metadata-array&c=" + gs.cgiParams.c + "&site="+gs.xsltParams.site_name+"&collect=" + gs.cgiParams.c + "&json=" + json;
|
---|
193 | var saveImportURL = "cgi-bin/metadata-server.pl?a=set-import-metadata-array&c=" + gs.cgiParams.c + "&site="+gs.xsltParams.site_name+"&collect=" + gs.cgiParams.c + "&json=" + json;
|
---|
194 |
|
---|
195 | var saveArchivesCallback =
|
---|
196 | {
|
---|
197 | success:function(){console.log("Away to build"); buildFunction(gs.cgiParams.c);},
|
---|
198 | failed: function(){alert("Failed to save text annotations index metadata");}
|
---|
199 | }
|
---|
200 | YAHOO.util.Connect.asyncRequest("GET", saveArchivesURL, saveArchivesCallback);
|
---|
201 |
|
---|
202 | var saveIndexCallback =
|
---|
203 | {
|
---|
204 | success:function(){},
|
---|
205 | failed: function(){alert("Failed to save text annotations import metadata");}
|
---|
206 | }
|
---|
207 | YAHOO.util.Connect.asyncRequest("GET", saveIndexURL, saveIndexCallback);
|
---|
208 |
|
---|
209 | var saveImportCallback =
|
---|
210 | {
|
---|
211 | success:function(){},
|
---|
212 | failed: function(){alert("Failed to save text annotations import metadata");}
|
---|
213 | }
|
---|
214 | YAHOO.util.Connect.asyncRequest("GET", saveImportURL, saveImportCallback);
|
---|
215 | }
|
---|
216 |
|
---|
217 | gs.annotationArray = new Array();
|
---|
218 | gs.annotationArray.keys = new Array();
|
---|
219 | }
|
---|
220 |
|
---|
221 | function showRebuildOption()
|
---|
222 | {
|
---|
223 | var buildStatusBar = document.getElementById("buildStatusBar");
|
---|
224 | buildStatusBar.style.visibility = "visible";
|
---|
225 |
|
---|
226 | var buildMessage = document.getElementById("buildMessage");
|
---|
227 | buildMessage.innerHTML = 'Please rebuild to index annotations (make annotations searchable): <span id="rebuildButton" style="cursor:pointer; padding:2px;" class="ui-state-default ui-corner-all">Rebuild</span>';
|
---|
228 |
|
---|
229 | var rebuildButton = document.getElementById("rebuildButton");
|
---|
230 | rebuildButton.onclick = function(){saveAndBuildCollection("pj-flat");}
|
---|
231 | }
|
---|
232 |
|
---|
233 | function showBuildingMessage()
|
---|
234 | {
|
---|
235 | var buildStatusBar = document.getElementById("buildStatusBar");
|
---|
236 | buildStatusBar.style.visibility = "visible";
|
---|
237 |
|
---|
238 | var buildMessage = document.getElementById("buildMessage");
|
---|
239 | buildMessage.innerHTML = '<img src="' + gs.imageURLs.loading + '"/> Reindexing ...';
|
---|
240 | }
|
---|
241 |
|
---|