ws_roxieconfig.js 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740
  1. /*##############################################################################
  2. # HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. ############################################################################## */
  16. // RoxieConfig Tab
  17. YAHOO.namespace("esp.container");
  18. var WS_ROXIECONFIG_VER = "1.01";
  19. var tabView;
  20. /*
  21. window.onresize = function() {
  22. refreshCurrentTab(true);
  23. if (queryPanel) {
  24. if (queryPanel.cfg.getProperty("visible")) {
  25. tabQuery.set('activeIndex', tabQuery.get('activeIndex'));
  26. queryPanel.cfg.setProperty("height", (YAHOO.util.Dom.getViewportHeight() > 500 ? YAHOO.util.Dom.getViewportHeight() - 40 : 500));
  27. queryPanel.cfg.setProperty("width", (YAHOO.util.Dom.getViewportWidth() > 500 ? YAHOO.util.Dom.getViewportWidth() - 140 : 500));
  28. // queryPanel.render();
  29. }
  30. }
  31. }
  32. */
  33. var ds_FullQueries, dt_FullQueries, ds_Queries, dt_Queries;
  34. function loadTab(Index, Resize)
  35. {
  36. switch (Index) {
  37. case 0:
  38. clearDataFiles();
  39. loadQueries('ListDeployedQueries', Resize);
  40. break;
  41. case 1:
  42. clearDataFiles();
  43. loadQueries('ListDeployedDataOnlyQueries', Resize);
  44. break;
  45. case 2:
  46. clearDataFiles();
  47. loadQueries('ListDeployedLibraryQueries', Resize);
  48. break;
  49. case 3:
  50. clearDataFiles();
  51. loadAliases('', "dtaliases", null, Resize);
  52. break;
  53. case 4:
  54. loadDataFiles('', 'dtindexes', 18, null, Resize);
  55. break;
  56. case 5:
  57. loadSuperFiles('', 'dtsuperfiles', 20, null, Resize);
  58. break;
  59. case 6:
  60. //loadComponentsXml();
  61. loadPendingDeployments('dt_deployments', Resize);
  62. }
  63. }
  64. function refreshCurrentTab(Resize) {
  65. loadTab(tabView.get('activeIndex'), Resize);
  66. }
  67. // Query Tab
  68. var tabQuery;
  69. function setQueryActionState(DisableActionButtons) {
  70. disableActions = DisableActionButtons;
  71. switch (tabView.get('activeIndex')) {
  72. case 0:
  73. document.getElementById('buttonDeleteQuery1').disabled = disableActions;
  74. document.getElementById('buttonAddAlias1').disabled = disableActions;
  75. document.getElementById('buttonSuspendQueries1').disabled = disableActions;
  76. break;
  77. case 1:
  78. document.getElementById('buttonDeleteQuery2').disabled = disableActions;
  79. document.getElementById('buttonAddAlias2').disabled = disableActions;
  80. break;
  81. case 2:
  82. document.getElementById('buttonDeleteQuery3').disabled = disableActions;
  83. document.getElementById('buttonAddAlias3').disabled = disableActions;
  84. document.getElementById('buttonSuspendQueries3').disabled = disableActions;
  85. break;
  86. }
  87. }
  88. function changeQueryTab(Index)
  89. {
  90. switch (Index)
  91. {
  92. case 1:
  93. loadAliases(CurrentQueryName, "dtqueryaliases", true);
  94. break;
  95. case 2:
  96. loadDataFiles(CurrentQueryName, 'dtqueryfiles', 15, true);
  97. break;
  98. case 3:
  99. loadSuperFiles(CurrentQueryName, 'dtquerysuperfiles', 15, true);
  100. break;
  101. case 4:
  102. var LibraryName = CurrentQueryName.substring(0, CurrentQueryName.lastIndexOf('.'));
  103. loadQueriesUsingLibrary(LibraryName, 'dtlibqueries');
  104. }
  105. }
  106. // DataFiles Tab
  107. var tabDataFiles;
  108. var tabQueryDataFiles;
  109. // Query Panel
  110. var queryPanel, actionPanel, confirmationPanel;
  111. var openPanel;
  112. var ShowDeployTab = 0;
  113. function init() {
  114. // Instantiate a Panel from markup
  115. /*
  116. var loader = new YAHOO.util.YUILoader({
  117. require: ["treeview", "button", "animation", "autocomplete"],
  118. base: '/esp/files/yui/build/',
  119. loadOptional: false,
  120. combine: true,
  121. filter: "MIN",
  122. allowRollup: true,
  123. //When the loading is all complete, we want to initialize
  124. //our TabView process; we can set this here or pass this
  125. //in as an argument to the insert() method:
  126. onSuccess: function() {
  127. //YAHOO.util.Get.css('yui/build/treeview/assets/css/folders/tree.css');
  128. //YAHOO.util.Get.script('scripts/ws_roxieconfig_left.js');
  129. //YAHOO.util.Get.script('/esp/files/scripts/ws_roxieconfig.js');
  130. }
  131. });
  132. loader.insert();
  133. */
  134. document.getElementById('bd1').style.display = "block";
  135. document.getElementById('tvcontainer').style.display = "block";
  136. tabView = new YAHOO.widget.TabView('tvcontainer');
  137. tabView.on('activeIndexChange', function(e) { loadTab(e.newValue) });
  138. document.getElementById('tvcontainer').style.display = 'block';
  139. document.getElementById('bd1').style.display = 'block';
  140. tabQuery = new YAHOO.widget.TabView('tvquery');
  141. document.getElementById('tvquery').style.display = '';
  142. tabDataFiles = new YAHOO.widget.TabView('tvdatafiles');
  143. document.getElementById('tvdatafiles').style.display = '';
  144. tabQueryDataFiles = new YAHOO.widget.TabView('tvquerydata');
  145. document.getElementById('tvquerydata').style.display = '';
  146. tabQuery.on('activeIndexChange', function(e) { changeQueryTab(e.newValue) });
  147. confirmationPanel = new YAHOO.widget.Panel("ConfirmationPanel", { width: "320px", height: "320px", modal: true, visible: false, fixedcenter: true });
  148. document.getElementById('ConfirmationPanel').style.display = 'block';
  149. confirmationPanel.render();
  150. actionPanel = new YAHOO.widget.Panel("ActionPanel", { width: "800px", visible: false, fixedcenter: true, constraintoviewport: true });
  151. document.getElementById('ActionPanel').style.display = 'block';
  152. actionPanel.render();
  153. loadTab(ShowDeployTab);
  154. };
  155. YAHOO.util.Event.addListener(window, "load", init);
  156. var CurrentQueryName;
  157. var notifyRoxie = true;
  158. function setNotifyRoxie(Setting) {
  159. notifyRoxie = Setting;
  160. for (var i = 1; i < 6; i++) {
  161. var chk = document.getElementById('checkNotifyRoxie' + i);
  162. if (chk) {
  163. chk.checked = notifyRoxie;
  164. }
  165. }
  166. }
  167. var queryPanelWidth;
  168. function displayQueryPanel() {
  169. var selectedRow = dt_Queries.getSelectedRows();
  170. if (selectedRow.length > 0) {
  171. if (queryPanel) {
  172. queryPanel = null;
  173. }
  174. queryPanelWidth = YAHOO.util.Dom.getViewportWidth() - 140;
  175. if (queryPanelWidth < 500) {
  176. queryPanelWidth = 500;
  177. }
  178. queryPanel = new YAHOO.widget.Panel("QueryPanel",
  179. { height: (YAHOO.util.Dom.getViewportHeight() > 500 ? YAHOO.util.Dom.getViewportHeight() - 40 : 500), width: queryPanelWidth, visible: false, x: 10, y: 10, constraintoviewport: true
  180. });
  181. //queryPanel.cfg.setProperty("height", (YAHOO.util.Dom.getViewportHeight() > 500 ? YAHOO.util.Dom.getViewportHeight() - 40 : 500));
  182. //queryPanel.cfg.setProperty("width", (YAHOO.util.Dom.getViewportWidth() > 500 ? YAHOO.util.Dom.getViewportWidth() - 140 : 500));
  183. document.getElementById('QueryPanel').style.display = 'block';
  184. queryPanel.render();
  185. var record = dt_Queries.getRecord(selectedRow[0]);
  186. CurrentQueryName = record.getData('QueryId');
  187. document.getElementById('qhd').innerHTML = CurrentQueryName;
  188. tabQuery.set('activeIndex', 0);
  189. var queryDetails = '<table class="yui-skin-sam">';
  190. queryDetails += '<tr><td style="width:150"><b>Name:</b></td><td>&nbsp;' + record.getData('QueryId') + '</td></tr>';
  191. queryDetails += '<tr><td style="width:150"><b>Suspended:</b></td><td>&nbsp;' + (record.getData('Suspended') == "1" ? "Yes" : "No") + '</td></tr>';
  192. queryDetails += '<tr><td style="width:150"><b>Aliases:</b></td><td>&nbsp;' + (record.getData('Aliased') == "1" ? "Yes" : "No") + '</td></tr>';
  193. queryDetails += '<tr><td style="width:150"><b>Library:</b></td><td>&nbsp;' + (record.getData('IsLibrary') == "1" ? "Yes" : "No") + '</td></tr>';
  194. queryDetails += '<tr><td style="width:150"><b>Libraries Used:</b></td><td>&nbsp;' + record.getData('LibrariesUsed') + '</td></tr>';
  195. queryDetails += '<tr><td style="width:150"><b>Comment:</b></td><td>&nbsp;' + record.getData('Comment') + '</td></tr>';
  196. queryDetails += '<tr><td style="width:150"><b>Label:</b></td><td>&nbsp;' + record.getData('Label') + '</td></tr>';
  197. queryDetails += '<tr><td style="width:150"><b>Wuid:</b></td><td>&nbsp;' + record.getData('Wuid') + '</td></tr>';
  198. queryDetails += '<tr><td style="width:150"><b>AssociatedName:</b></td><td>&nbsp;' + record.getData('AssociatedName') + '</td></tr>';
  199. queryDetails += '<tr><td style="width:150"><b>Error:</b></td><td>&nbsp;' + record.getData('Error') + '</td></tr>';
  200. queryDetails += '<tr><td style="width:150"><b>DeployedBy:</b></td><td>&nbsp;' + record.getData('DeployedBy') + '</td></tr>';
  201. queryDetails += '<tr><td style="width:150"><b>PkgQueryVersion:</b></td><td>&nbsp;' + record.getData('PkgQueryVersion') + '</td></tr>';
  202. queryDetails += '<tr><td style="width:150"><b>SuspendedBy:</b></td><td>&nbsp;' + record.getData('SuspendedBy') + '</td></tr>';
  203. queryDetails += '</table>';
  204. document.getElementById('qdetails').innerHTML = queryDetails;
  205. ds_QueryDataFiles = null;
  206. dt_QueryDataFiles = null;
  207. document.getElementById('dtqueryfiles').innerHTML = '';
  208. queryPanel.show();
  209. }
  210. }
  211. // ListDeployedQueries
  212. var QueryRowHandler = function(oArgs) {
  213. displayQueryPanel();
  214. };
  215. var queryUrlClicked = false;
  216. var QueryRowClickedHandler = function(oArgs) {
  217. dt_Queries.onEventSelectRow(oArgs);
  218. if (queryUrlClicked)
  219. {
  220. displayQueryPanel();
  221. queryUrlClicked = false;
  222. }
  223. };
  224. var QueryCellClickedHandler = function(oArgs) {
  225. var record = dt_Queries.getRecord(oArgs.target);
  226. var column = dt_Queries.getColumn(oArgs.target);
  227. if (column && column.field == 'Mark') {
  228. var isChecked = record.getData(column.field) == '1' ? true : false;
  229. record.setData(column.field, isChecked ? '0' : '1');
  230. var records = dt_Queries.getRecordSet().getRecords();
  231. var i_marked = 0;
  232. for (var i = 0; i < records.length; i++) {
  233. if (records[i].getData('Mark') == '1') {
  234. i_marked++;
  235. }
  236. }
  237. if (i_marked == records.length) { // marked all
  238. document.getElementById("markallqueries").checked = true;
  239. }
  240. if (i_marked == 0) { // marked none
  241. document.getElementById("markallqueries").checked = false;
  242. }
  243. var disableActions = i_marked > 0 ? false : true;
  244. setQueryActionState(disableActions);
  245. }
  246. dt_Queries.onEventShowCellEditor(oArgs);
  247. }
  248. function createEntry(sData, oRecord, oColumn, bMasked, DatatableName) {
  249. var d = '<input type=\"' + (bMasked ? 'password' : 'text') + '\" onChange=\"onEditEntryChange(\'' + oColumn.getField() + '\', \'' + oRecord.getId() + '\', this.value, \'' + DatatableName + '\')\" value=\"' + sData + '\" />';
  250. return d;
  251. }
  252. function onEditEntryChange(ColumnName, RecordId, Value, DatatableName) {
  253. switch (DatatableName) {
  254. case "dt_Action":
  255. {
  256. var record = dt_Action.getRecord(RecordId);
  257. record.setData(ColumnName, Value);
  258. break;
  259. }
  260. default:
  261. {
  262. break;
  263. }
  264. }
  265. }
  266. var formatActionInlineEntry = function(elCell, oRecord, oColumn, sData) {
  267. elCell.innerHTML = createEntry(sData, oRecord, oColumn, false, 'dt_Action');
  268. };
  269. var formatUrl = function(elCell, oRecord, oColumn, sData) {
  270. elCell.innerHTML = '<a href="javascript:void(0)" onclick="queryUrlClicked=true;">' + sData + '</a>';
  271. };
  272. var formatBool = function(elCell, oRecord, oColumn, sData) {
  273. elCell.innerHTML = sData == "1" ? "Yes" : "No";
  274. };
  275. var formatCheckboxDisabled = function(elCell, oRecord, oColumn, sData) {
  276. elCell.innerHTML = "&nbsp;";
  277. if (sData == "1") {
  278. YAHOO.util.Dom.addClass(elCell, "yuimenuitem-checked");
  279. }
  280. };
  281. var formatUsesLibraries = function(elCell, oRecord, oColumn, sData) {
  282. elCell.innerHTML = "&nbsp;";
  283. if (sData.length > 0) {
  284. YAHOO.util.Dom.addClass(elCell, "yuimenuitem-checked");
  285. }
  286. }
  287. var formatQueryError = function(elCell, oRecord, oColumn, sData) {
  288. if (sData.length > 0) {
  289. elCell.innerHTML = '<a href="javascript:void(0)" class="cellstatusinformation" title="Query information" onclick="showQueryError(\'' + oRecord.getId() + '\')">&nbsp;</a>';
  290. return;
  291. }
  292. elCell.innerHTML = '';
  293. };
  294. function showQueryError(RecId) {
  295. var recordSet = dt_Queries.getRecordSet();
  296. var record = recordSet.getRecord(RecId);
  297. showInformation(record.getData('QueryId') + ' Status', record.getData('ErrorStatus').replace(/\n/gi, '<br />'));
  298. }
  299. function showInformation(HeaderText, BodyText) {
  300. var handleOk = function() {
  301. statusPanel.hide();
  302. statusPanel = null;
  303. };
  304. if (!statusPanel) {
  305. statusPanel = new YAHOO.widget.SimpleDialog("showDeploymentStatus",
  306. { width: "500px",
  307. fixedcenter: true,
  308. visible: true,
  309. close: true,
  310. effect: {
  311. effect: YAHOO.widget.ContainerEffect.FADE,
  312. duration: 0.25
  313. },
  314. icon: YAHOO.widget.SimpleDialog.ICON_INFO,
  315. constraintoviewport: true,
  316. buttons: [{ text: "Ok", handler: handleOk, isDefault: true}]
  317. });
  318. }
  319. statusPanel.setHeader(HeaderText);
  320. statusPanel.setBody('<div style="text-align:left; height:300px; width:auto; overflow:scroll;">' + BodyText + '</div>');
  321. statusPanel.render("statusdiv");
  322. statusPanel.show();
  323. }
  324. function openGraph(QueryName)
  325. {
  326. window.open('/ws_roxieconfig/GVCAjaxGraph?Name=' + QueryName,'', 'menubar = no');
  327. return;
  328. }
  329. function markAllQueries() {
  330. var records = dt_Queries.getRecordSet().getRecords();
  331. var globalMark = document.getElementById('markallqueries').checked;
  332. var i_marked = 0;
  333. for (var i = 0; i < records.length; i++) {
  334. records[i].setData('Mark', globalMark);
  335. if (globalMark) {
  336. i_marked++;
  337. }
  338. }
  339. dt_Queries.render();
  340. setQueryActionState(i_marked > 0 ? false : true);
  341. }
  342. var formatGraphLink = function(elCell, oRecord, oColumn, oData) {
  343. elCell.innerHTML = '<a title="Graph" href="javascript:void(0);" onclick="openGraph(\'' + oRecord.getData('QueryId') + '\')" class="graphlink">&nbsp;</a>';
  344. };
  345. var formatInlineEditCheckbox = function(el, oRecord, oColumn, oData) {
  346. var bChecked = oData == '1' ? true : false;
  347. bChecked = (bChecked) ? " checked=\"checked\"" : "";
  348. el.innerHTML = "<input type=\"checkbox\"" + bChecked +
  349. " class=\"" + YAHOO.widget.DataTable.CLASS_CHECKBOX + "\" />";
  350. }
  351. YAHOO.widget.DataTable._bDynStylesFallback = true
  352. function loadQueries(QueryType, Resize) {
  353. /*
  354. if (Resize) {
  355. debugger;
  356. dt_Queries.setAttributeConfig("height", "200px", true);
  357. dt_Queries.render();
  358. //dt_Queries.setAttributeConfig("height", (YAHOO.util.Dom.getViewportHeight() - 200) + "px", true);
  359. //dt_Queries.cfg.setProperty("width", (YAHOO.util.Dom.getViewportWidth() - 25) + "px");
  360. return;
  361. }
  362. */
  363. if (ds_FullQueries && dt_Queries) {
  364. dt_Queries.destroy();
  365. dt_Queries = null;
  366. }
  367. if (Resize) {
  368. createQueryDataTable(QueryType);
  369. filterDeployedQueries();
  370. return;
  371. }
  372. var connectionCallback = {
  373. success: function(o) {
  374. var xmlDoc = o.responseXML;
  375. ds_FullQueries = new YAHOO.util.DataSource(xmlDoc);
  376. ds_FullQueries.responseType = YAHOO.util.DataSource.TYPE_XML;
  377. /*
  378. var test_arr = [
  379. { QueryId: "123", QueryPriority: "1", Suspended: "1", Aliased: "1", IsLibrary: "0", DeployedBy: "Jo", Wuid: "Test", Error: "", ErrorStatus: "", Comment: "", LibrariesUsed: "", Label: "Test", AssociatedName: "Test", PkgQueryVersion: "", SuspendedBy: "" },
  380. { QueryId: "456", QueryPriority: "1", Suspended: "1", Aliased: "1", IsLibrary: "0", DeployedBy: "Jo", Wuid: "Test", Error: "", ErrorStatus: "", Comment: "", LibrariesUsed: "", Label: "Test", AssociatedName: "Test", PkgQueryVersion: "", SuspendedBy: "" }
  381. ];
  382. ds_FullQueries = new YAHOO.util.DataSource(test_arr);
  383. ds_FullQueries.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  384. */
  385. ds_FullQueries.responseSchema = {
  386. resultNode: "QueryInfo",
  387. fields: ["QueryId", "QueryPriority", "Suspended", "Aliased", "IsLibrary", "DeployedBy", "Wuid", "Error", "ErrorStatus", "Comment", "LibrariesUsed", "Label", "AssociatedName", "PkgQueryVersion", "SuspendedBy"]
  388. };
  389. createQueryDataTable(QueryType);
  390. filterDeployedQueries();
  391. checkForException(xmlDoc);
  392. document.getElementById("markallqueries").disabled = false;
  393. },
  394. failure: function(o) {
  395. alert('Failure:' + o.statusText);
  396. }
  397. };
  398. function getCheckboxValue(ElementId) {
  399. if (document.getElementById(ElementId)) {
  400. return document.getElementById(ElementId).checked ? '1' : '';
  401. }
  402. return "";
  403. }
  404. function createQueryDataTable(QueryType) {
  405. var myColumnDefs = [
  406. { key: "Mark", label: "<input type=\"checkbox\" id=\"markallqueries\" onclick=\"markAllQueries();\" disabled=\"true\" />", formatter: formatInlineEditCheckbox, width: 40, resizable: false },
  407. { key: "QueryId", label: "Name", sortable: true, formatter: formatUrl, width: (isFF ? 320 : 380), resizeable: false },
  408. { key: "ErrorStatus", label: "Info", formatter: formatQueryError, width: 40, resizable: false },
  409. { key: "Graph", label: "<span title=\"Graph\">G</span>", formatter: formatGraphLink, width: (isFF ? 20 : 30), resizable: false },
  410. { key: "QueryPriority", label: "Priority", width: 60, resizable: false },
  411. { key: "Suspended", sortable: true, label: "<span title=\"Is Suspended\">S</span>", parser: "boolean", formatter: formatCheckboxDisabled, width: (isFF ? 20 : 30), resizable: false },
  412. { key: "Aliased", sortable: true, label: "<span title=\"Is Aliased\">A</span>", parser: "boolean", formatter: formatCheckboxDisabled, width: (isFF ? 20 : 30), resizable: false },
  413. { key: "IsLibrary", sortable: true, label: "<span title=\"Is a Library\">L</span>", parser: "boolean", formatter: formatCheckboxDisabled, width: (isFF ? 20 : 30), resizable: false },
  414. { key: "LibrariesUsed", label: "<span title=\"Uses Library\">UL</span>", formatter: formatUsesLibraries, width: (isFF ? 20 : 30), resizable: false },
  415. { key: "DeployedBy", sortable: true, label: "Deployed by", width: 120, resizable: false },
  416. { key: "Wuid", sortable: true, label: "Workunit", width: 200, resizable: false }
  417. ];
  418. //dt_Queries = new YAHOO.widget.DataView("dt_" + QueryType, myColumnDefs, ds_FullQueries, { height: (YAHOO.util.Dom.getViewportHeight() - 200) + "px", width: (YAHOO.util.Dom.getViewportWidth() - 25) + "px", paginator: new YAHOO.widget.Paginator({ rowsPerPage: 50 })});
  419. dt_Queries = new YAHOO.widget.DataView("dt_" + QueryType, myColumnDefs, ds_FullQueries, { width: "100%", paginator: new YAHOO.widget.Paginator({ rowsPerPage: 50 })});
  420. dt_Queries.set("selectionMode", "single");
  421. //dt_Queries.subscribe("rowMouseoverEvent", dt_Queries.onEventHighlightRow);
  422. //dt_Queries.subscribe("rowMouseoutEvent", dt_Queries.onEventUnhighlightRow);
  423. dt_Queries.subscribe("rowDblclickEvent", QueryRowHandler);
  424. dt_Queries.subscribe("rowClickEvent", QueryRowClickedHandler);
  425. dt_Queries.subscribe("cellClickEvent", QueryCellClickedHandler);
  426. }
  427. //document.getElementById('dt_' + QueryType).innerHTML = '<img src="/esp/files/img/loading.gif" style="height:18px;" />';
  428. if (dt_Queries) {
  429. dt_Queries.destroy();
  430. dt_Queries = null;
  431. }
  432. queryFilter.QueryName = document.getElementById(QueryType + 'Filter').value;
  433. queryFilter.Suspended = getCheckboxValue(QueryType + 'FilterSuspended');
  434. queryFilter.Aliased = getCheckboxValue(QueryType + 'FilterAliases');
  435. queryFilter.IsLibrary = getCheckboxValue(QueryType + 'FilterLibrary');
  436. queryFilter.LibrariesUsed = getCheckboxValue(QueryType + 'FilterUsesLibrary');
  437. ds_FullQueries = YAHOO.util.DataSource();
  438. ds_Queries = YAHOO.util.DataSource();
  439. createQueryDataTable(QueryType);
  440. dt_Queries.showTableMessage(dt_Queries.get("MSG_LOADING"), dt_Queries.CLASS_LOADING);
  441. var postBody = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body><' + QueryType + '><excludeAliasNames>0</excludeAliasNames><excludeQueryNames>0</excludeQueryNames><excludeLibraryNames>0</excludeLibraryNames><excludeDataOnlyNames>1</excludeDataOnlyNames></' + QueryType + '></soap:Body></soap:Envelope>';
  442. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/" + QueryType + "?ver_=" + WS_ROXIECONFIG_VER);
  443. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  444. YAHOO.util.Connect._use_default_post_header = false;
  445. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  446. "/ws_roxieconfig/" + QueryType + "?ver_=" + WS_ROXIECONFIG_VER,
  447. connectionCallback, postBody);
  448. return {
  449. oDS: ds_FullQueries,
  450. oDT: dt_Queries
  451. };
  452. }
  453. function checkForException(xmlDoc) {
  454. var exceptions = xmlDoc.getElementsByTagName('Exception');
  455. if (exceptions && exceptions.length > 0) {
  456. var message = exceptions[0].getElementsByTagName('Message')[0].childNodes[0].nodeValue;
  457. showInformation("Error Loading", message);
  458. }
  459. }
  460. // ListDeployedAliases
  461. var ds_Aliases, dt_Aliases;
  462. var AliasRowHandler = function(oArgs) {
  463. dt_Aliases.onEventSelectRow(oArgs);
  464. //var selectedRow = dt_Aliases.getSelectedRows();
  465. //if (selectedRow.length > 0)
  466. //{
  467. // var record = dt_Aliases.getRecord(selectedRow[0]);
  468. //}
  469. };
  470. var AliasCellClickedHandler = function(oArgs) {
  471. var record = dt_Aliases.getRecord(oArgs.target);
  472. var column = dt_Aliases.getColumn(oArgs.target);
  473. if (column && column.field == 'Mark') {
  474. record.setData(column.field, record.getData(column.field) == '1' ? '0' : '1');
  475. }
  476. var records = dt_Aliases.getRecordSet().getRecords();
  477. var i_marked = 0;
  478. for (var i = 0; i < records.length; i++) {
  479. if (records[i].getData('Mark') == '1') {
  480. i_marked++;
  481. }
  482. }
  483. if (i_marked == records.length) { // marked all
  484. document.getElementById("markallaliases").checked = true;
  485. }
  486. if (i_marked == 0) { // marked none
  487. document.getElementById("markallaliases").checked = false;
  488. }
  489. var disableActions = i_marked > 0 ? false : true;
  490. if (disableActions) {
  491. document.getElementById('buttonDeleteAliases').disabled = true;
  492. } else {
  493. document.getElementById('buttonDeleteAliases').disabled = false;
  494. }
  495. }
  496. function markAllAliases() {
  497. var globalMark = document.getElementById('markallaliases').checked;
  498. var records = dt_Aliases.getRecordSet().getRecords();
  499. for (var i = 0; i < records.length; i++) {
  500. records[i].setData('Mark', globalMark);
  501. }
  502. dt_Aliases.render();
  503. }
  504. function loadAliases(QueryName, ElementId, QueryPage, Resize) {
  505. if (!document.getElementById('checkNotifyRoxie4')) {
  506. var d = document.createElement("span");
  507. var notifyChecked = '';
  508. if (notifyRoxie) {
  509. notifyChecked = ' checked="true"';
  510. }
  511. d.innerHTML = '<input type="checkbox" name="checkNotifyRoxie5" id="checkNotifyRoxie4" ' + notifyChecked + ' onclick="setNotifyRoxie(this.checked);">Notify Roxie?</input>';
  512. document.getElementById('aliasactions').appendChild(d);
  513. }
  514. if (Resize) {
  515. createAliasDataTable(ElementId);
  516. filterAliases();
  517. return;
  518. }
  519. var connectionCallback = {
  520. success: function(o) {
  521. var xmlDoc = o.responseXML;
  522. ds_Aliases = new YAHOO.util.DataSource(xmlDoc);
  523. ds_Aliases.responseType = YAHOO.util.DataSource.TYPE_XML;
  524. ds_Aliases.responseSchema = {
  525. resultNode: "AliasInfo",
  526. fields: ["QueryAlias","QueryId"]
  527. };
  528. createAliasDataTable(ElementId);
  529. dt_Aliases.subscribe("rowMouseoverEvent", dt_Aliases.onEventHighlightRow);
  530. dt_Aliases.subscribe("rowMouseoutEvent", dt_Aliases.onEventUnhighlightRow);
  531. dt_Aliases.set("selectionMode","multiple");
  532. dt_Aliases.subscribe("rowClickEvent", AliasRowHandler);
  533. dt_Aliases.subscribe("cellClickEvent", AliasCellClickedHandler);
  534. checkForException(xmlDoc);
  535. },
  536. failure: function(o) {
  537. alert('Failure:' + o.statusText);
  538. }
  539. };
  540. function createAliasDataTable(ElementId) {
  541. var myColumnDefs = [
  542. { key: "Mark", label: "<input type=\"checkbox\" id=\"markallaliases\" onclick=\"markAllAliases();\" />", formatter: formatInlineEditCheckbox, width: 40, resizable: false },
  543. { key: "QueryAlias", label: "Alias", sortable: true, width: 350 },
  544. { key: "QueryId", label: "Query", width: 350 }
  545. ];
  546. if (QueryPage) {
  547. dt_Aliases = new YAHOO.widget.ScrollingDataTable(ElementId, myColumnDefs, ds_Aliases, { height: (YAHOO.util.Dom.getViewportHeight() - 155) + "px", width: (queryPanel.cfg.getProperty('width') - 65) + "px" });
  548. } else {
  549. dt_Aliases = new YAHOO.widget.DataView(ElementId, myColumnDefs, ds_Aliases, { height: (YAHOO.util.Dom.getViewportHeight() - 140) + "px", width: (YAHOO.util.Dom.getViewportWidth() - 25) + "px" });
  550. }
  551. }
  552. if (dt_Aliases) {
  553. dt_Aliases.destroy();
  554. dt_Aliases = null;
  555. ds_Aliases = null;
  556. }
  557. ds_Aliases = YAHOO.util.DataSource();
  558. createAliasDataTable(ElementId);
  559. dt_Aliases.showTableMessage(dt_Aliases.get("MSG_LOADING"), dt_Aliases.CLASS_LOADING);
  560. var postBody = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body><ListDeployedAliasesRequest><QueryId>' + QueryName + '</QueryId></ListDeployedAliasesRequest></soap:Body></soap:Envelope>';
  561. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/ListDeployedAliases?ver_=" + WS_ROXIECONFIG_VER);
  562. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  563. YAHOO.util.Connect._use_default_post_header = false;
  564. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  565. "/ws_roxieconfig/ListDeployedAliases",
  566. connectionCallback, postBody);
  567. return {
  568. oDS: ds_Aliases,
  569. oDT: dt_Aliases
  570. };
  571. }
  572. function filterAliases() {
  573. if (document.getElementById('AliasFilter').value.length > 0) {
  574. dt_Aliases.Filter([{ Value: document.getElementById('AliasFilter').value, ColumnKey: "Alias"}]);
  575. }
  576. else {
  577. dt_Aliases.ClearFilters();
  578. }
  579. }
  580. // ListDataFilesUsedByQuery
  581. function clearDataFiles()
  582. {
  583. document.getElementById('dtindexes').innerHTML = '';
  584. setQueryActionState(true);
  585. }
  586. var DataFilesRowHandler = function(oArgs) {
  587. dt_IndexFiles.onEventSelectRow(oArgs);
  588. //var selectedRow = dt_IndexFiles.getSelectedRows();
  589. //if (selectedRow.length > 0)
  590. //{
  591. // var record = dt_IndexFiles.getRecord(selectedRow[0]);
  592. //}
  593. };
  594. // Define a custom row formatter function
  595. var parseEspNumber = function(oArgs)
  596. {
  597. //return oArgs.replace(',', ''));
  598. return YAHOO.util.DataSourceBase.parseNumber(oArgs.replace(/,/g, ''));
  599. };
  600. var ds_IndexFiles, dt_IndexFiles;
  601. var ds_DataFiles, dt_DataFiles;
  602. function loadDataFiles(QueryName, ElementId, RowsPerPage, QueryPage, Resize)
  603. {
  604. if (Resize) {
  605. createDataFileDataTable(ElementId);
  606. filterDataFiles();
  607. filterIndexFiles();
  608. return;
  609. }
  610. var connectionCallback = {
  611. success: function(o) {
  612. var xmlDocMain = o.responseXML;
  613. var xmlIndexes = xmlDocMain.getElementsByTagName('IndexFiles')[0];
  614. var xmlDataFiles = xmlDocMain.getElementsByTagName('DataFiles')[0];
  615. var nodeTotals = xmlDocMain.getElementsByTagName('Totals');
  616. if (nodeTotals.length > 0) {
  617. var xmlTotalRecords = nodeTotals[0].getElementsByTagName('RecordCount')[0];
  618. if (xmlTotalRecords) {
  619. document.getElementById(ElementId + "Records").innerHTML = xmlTotalRecords.childNodes[0].nodeValue;
  620. }
  621. var xmlTotalSize = nodeTotals[0].getElementsByTagName('FileSize');
  622. if (xmlTotalSize.length > 0) {
  623. document.getElementById(ElementId + "Size").innerHTML = xmlTotalSize[0].childNodes[0].nodeValue;
  624. }
  625. }
  626. // Indexes
  627. if (xmlIndexes) {
  628. ds_IndexFiles = new YAHOO.util.DataSource(xmlIndexes);
  629. ds_IndexFiles.responseType = YAHOO.util.DataSource.TYPE_XML;
  630. ds_IndexFiles.responseSchema = {
  631. resultNode: "FileInfo",
  632. fields: [{ key: "Name" }, { key: "FileSize", parser: parseEspNumber }, { key: "RecordCount", parser: parseEspNumber }, { key: "CopiedBy"}]
  633. };
  634. }
  635. else {
  636. ds_Indexes = new YAHOO.util.DataSource();
  637. }
  638. // Data Files
  639. if (xmlDataFiles) {
  640. ds_DataFiles = new YAHOO.util.DataSource(xmlDataFiles);
  641. ds_DataFiles.responseType = YAHOO.util.DataSource.TYPE_XML;
  642. ds_DataFiles.responseSchema = {
  643. resultNode: "FileInfo",
  644. fields: [{ key: "Name" }, { key: "FileSize", parser: parseEspNumber }, { key: "RecordCount", parser: parseEspNumber }, { key: "CopiedBy"}]
  645. };
  646. }
  647. else {
  648. ds_DataFiles = new YAHOO.util.DataSource();
  649. }
  650. createDataFileDataTable(ElementId);
  651. dt_IndexFiles.set("selectionMode", "single");
  652. dt_IndexFiles.subscribe("rowClickEvent", DataFilesRowHandler);
  653. dt_DataFiles.subscribe("rowMouseoverEvent", dt_DataFiles.onEventHighlightRow);
  654. dt_DataFiles.subscribe("rowMouseoutEvent", dt_DataFiles.onEventUnhighlightRow);
  655. dt_DataFiles.set("selectionMode", "single");
  656. dt_DataFiles.subscribe("rowClickEvent", DataFilesRowHandler);
  657. checkForException(xmlDocMain);
  658. },
  659. failure: function(o) {
  660. alert('Failure:' + o.statusText);
  661. }
  662. };
  663. function createDataFileDataTable(ElementId) {
  664. var oConfigs = {
  665. height: (YAHOO.util.Dom.getViewportHeight() - 195) + "px", width: (YAHOO.util.Dom.getViewportWidth() - 35) + "px"
  666. //initialRequest: "results=504"
  667. };
  668. var indexColumnDefs = [
  669. //{ key: "Mark", label: "<input type=\"checkbox\" id=\"markallindexes\" onclick=\"markAllIndexes();\" />", formatter: formatInlineEditCheckbox, width: 20 },
  670. {key: "Name", label: "Name", sortable: true, width: 600 },
  671. { key: "FileSize", label: "Size", sortable: true, formatter: "number", width: 80 },
  672. { key: "RecordCount", label: "Count", sortable: true, formatter: "number", width: 80 }
  673. ];
  674. var dataFileColumnDefs = [
  675. //{ key: "Mark", label: "<input type=\"checkbox\" id=\"markalldatafiles\" onclick=\"markAllDataFiles();\" />", formatter: formatInlineEditCheckbox, width: 20 },
  676. {key: "Name", label: "Name", sortable: true, width: 600 },
  677. { key: "FileSize", label: "Size", sortable: true, formatter: "number", width: 80 },
  678. { key: "RecordCount", label: "Count", sortable: true, formatter: "number", width: 80 }
  679. ];
  680. if (QueryPage) {
  681. dt_IndexFiles = new YAHOO.widget.ScrollingDataTable(ElementId, indexColumnDefs, ds_IndexFiles, { height: (YAHOO.util.Dom.getViewportHeight() - 240) + "px", width: (queryPanel.cfg.getProperty('width') - 80) + "px" });
  682. dt_DataFiles = new YAHOO.widget.ScrollingDataTable(ElementId + "2", dataFileColumnDefs, ds_DataFiles, { height: (YAHOO.util.Dom.getViewportHeight() - 240) + "px", width: (queryPanel.cfg.getProperty('width') - 80) + "px" });
  683. } else {
  684. dt_IndexFiles = new YAHOO.widget.DataView(ElementId, indexColumnDefs, ds_IndexFiles, oConfigs);
  685. dt_DataFiles = new YAHOO.widget.DataView(ElementId + "2", dataFileColumnDefs, ds_DataFiles, oConfigs);
  686. }
  687. dt_IndexFiles.subscribe("rowMouseoverEvent", dt_IndexFiles.onEventHighlightRow);
  688. dt_IndexFiles.subscribe("rowMouseoutEvent", dt_IndexFiles.onEventUnhighlightRow);
  689. }
  690. if (dt_DataFiles) {
  691. dt_DataFiles.destroy();
  692. dt_DataFiles = null;
  693. ds_DataFiles = null;
  694. }
  695. if (dt_IndexFiles) {
  696. dt_IndexFiles.destroy();
  697. ds_IndexFiles = null;
  698. }
  699. ds_IndexFiles = YAHOO.util.DataSource();
  700. ds_DataFiles = YAHOO.util.DataSource();
  701. createDataFileDataTable(ElementId);
  702. dt_IndexFiles.showTableMessage(dt_IndexFiles.get("MSG_LOADING"), dt_IndexFiles.CLASS_LOADING);
  703. dt_DataFiles.showTableMessage(dt_DataFiles.get("MSG_LOADING"), dt_DataFiles.CLASS_LOADING);
  704. var postBody = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body><ListFilesUsedByQueryRequest><QueryId>' + QueryName + '</QueryId><excludeSuperFileNames>1</excludeSuperFileNames><excludeDataFileNames>0</excludeDataFileNames></ListFilesUsedByQueryRequest></soap:Body></soap:Envelope>';
  705. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/ListFilesUsedByQuery?ver_=" + WS_ROXIECONFIG_VER);
  706. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  707. YAHOO.util.Connect._use_default_post_header = false;
  708. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  709. "/ws_roxieconfig/ListFilesUsedByQuery?ver_=" + WS_ROXIECONFIG_VER,
  710. connectionCallback, postBody);
  711. return {
  712. oDS: ds_IndexFiles,
  713. oDT: dt_IndexFiles
  714. };
  715. }
  716. function filterIndexFiles() {
  717. if (document.getElementById('IndexFilesFilter').value.length > 0) {
  718. dt_IndexFiles.Filter([{ Value: document.getElementById('IndexFilesFilter').value, ColumnKey: "Name"}]);
  719. }
  720. else {
  721. dt_IndexFiles.ClearFilters();
  722. }
  723. }
  724. function filterDataFiles() {
  725. if (document.getElementById('DataFilesFilter').value.length > 0) {
  726. dt_DataFiles.Filter([{ Value: document.getElementById('DataFilesFilter').value, ColumnKey: "Name"}]);
  727. }
  728. else {
  729. dt_DataFiles.ClearFilters();
  730. }
  731. }
  732. function markAllIndexes() {
  733. var records = dt_IndexFiles.getRecordSet().getRecords();
  734. var globalMark = document.getElementById('markallindexes').checked;
  735. for (var i = 0; i < records.length; i++) {
  736. records[i].setData('Mark', globalMark);
  737. }
  738. dt_IndexFiles.render();
  739. }
  740. // Load Super Files
  741. var ds_SuperFiles, dt_SuperFiles;
  742. function loadSuperFiles(QueryName, ElementId, RowsPerPage, QueryPage, Resize)
  743. {
  744. if (Resize) {
  745. createSuperFilesDataTable();
  746. filterSuperFiles();
  747. return;
  748. }
  749. var connectionCallback = {
  750. success: function(o) {
  751. var xmlDocMain = o.responseXML;
  752. // SuperFiles
  753. ds_SuperFiles = new YAHOO.util.DataSource(xmlDocMain);
  754. ds_SuperFiles.responseType = YAHOO.util.DataSource.TYPE_XML;
  755. ds_SuperFiles.responseSchema = {
  756. resultNode: "SuperFileInfo",
  757. fields: [{ key: "Name" }, { key: "FileSize", parser: parseEspNumber }, { key: "RecordCount", parser: Number }, { key: "CopiedBy"}]
  758. };
  759. createSuperFilesDataTable();
  760. dt_SuperFiles.subscribe("rowMouseoverEvent", dt_SuperFiles.onEventHighlightRow);
  761. dt_SuperFiles.subscribe("rowMouseoutEvent", dt_SuperFiles.onEventUnhighlightRow);
  762. dt_SuperFiles.set("selectionMode", "single");
  763. dt_SuperFiles.subscribe("rowClickEvent", dt_SuperFiles.onEventSelectRow);
  764. checkForException(xmlDocMain);
  765. },
  766. failure: function(o) {
  767. alert('Failure:' + o.statusText);
  768. }
  769. };
  770. function createSuperFilesDataTable() {
  771. var oConfigs = {
  772. height: (YAHOO.util.Dom.getViewportHeight() - 140) + "px", width: (YAHOO.util.Dom.getViewportWidth() - 25) + "px"
  773. //initialRequest: "results=504"
  774. };
  775. var myColumnDefs = [
  776. //{ key: "Mark", label: "<input type=\"checkbox\" id=\"markallsuperfiles\" onclick=\"markAllSuperFiles();\" />", formatter: formatInlineEditCheckbox, width: 20 },
  777. {key: "Name", label: "Name", sortable: true, width: 600 },
  778. { key: "Version", label: "Version", sortable: true, formatter: "number", width: 100 }
  779. ];
  780. if (QueryPage) {
  781. dt_SuperFiles = new YAHOO.widget.ScrollingDataTable(ElementId, myColumnDefs, ds_SuperFiles, { height: (YAHOO.util.Dom.getViewportHeight() - 150) + "px", width: (queryPanel.cfg.getProperty('width') - 70) + "px" });
  782. } else {
  783. dt_SuperFiles = new YAHOO.widget.DataView(ElementId, myColumnDefs, ds_SuperFiles, oConfigs);
  784. }
  785. }
  786. if (dt_SuperFiles) {
  787. dt_SuperFiles.destroy();
  788. dt_SuperFiles = null;
  789. ds_SuperFiles = null;
  790. }
  791. ds_SuperFiles = YAHOO.util.DataSource();
  792. createSuperFilesDataTable();
  793. dt_SuperFiles.showTableMessage(dt_SuperFiles.get("MSG_LOADING"), dt_SuperFiles.CLASS_LOADING);
  794. var postBody = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body><ListFilesUsedByQueryRequest><QueryId>' + QueryName + '</QueryId><excludeSuperFileNames>0</excludeSuperFileNames><excludeDataFileNames>1</excludeDataFileNames></ListFilesUsedByQueryRequest></soap:Body></soap:Envelope>';
  795. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/ListFilesUsedByQuery?ver_=" + WS_ROXIECONFIG_VER);
  796. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  797. YAHOO.util.Connect._use_default_post_header = false;
  798. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  799. "/ws_roxieconfig/ListFilesUsedByQuery?ver_=" + WS_ROXIECONFIG_VER,
  800. connectionCallback, postBody);
  801. return {
  802. oDS: ds_IndexFiles,
  803. oDT: dt_IndexFiles
  804. };
  805. }
  806. function filterSuperFiles() {
  807. if (document.getElementById('SuperFilesFilter').value.length > 0) {
  808. dt_SuperFiles.Filter([{ Value: document.getElementById('SuperFilesFilter').value, ColumnKey: "Name"}]);
  809. }
  810. else {
  811. dt_SuperFiles.ClearFilters();
  812. }
  813. }
  814. function markAllSuperFiles() {
  815. var records = dt_SuperFiles.getRecordSet().getRecords();
  816. var globalMark = document.getElementById('markallsuperfiles').checked;
  817. for (var i = 0; i < records.length; i++) {
  818. records[i].setData('Mark', globalMark);
  819. }
  820. dt_SuperFiles.render();
  821. }
  822. //
  823. function hideConfirmationPanel()
  824. {
  825. confirmationPanel.hide();
  826. }
  827. function hideActionPanel()
  828. {
  829. actionPanel.hide();
  830. }
  831. function addAlias()
  832. {
  833. actionPanel.show();
  834. }
  835. // Query Actions
  836. function deleteQueries()
  837. {
  838. var queries = new Array();
  839. var formatAliasLabel = function(elCell, oRecord, oColumn, sData) {
  840. elCell.innerHTML = '<input type="text" value="' + sData + '" />';
  841. };
  842. var myColumnDefs = [
  843. { key: "QueryId", label: "Query Name", sortable: true, width: 400 },
  844. { key: "Response", label: "Response", width: 300 }
  845. ];
  846. var records = dt_Queries.getRecordSet().getRecords();
  847. var i_added = 0;
  848. for (var i = 0; i < records.length; i++) {
  849. if (records[i].getData('Mark') == '1') {
  850. queries[i_added] = { QueryId: records[i].getData('QueryId'), Response: '' };
  851. i_added++;
  852. }
  853. }
  854. ds_Action = new YAHOO.util.LocalDataSource(queries);
  855. ds_Action.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  856. ds_Action.responseSchema = {
  857. fields: ["QueryId", "Response"]
  858. };
  859. dt_Action = new YAHOO.widget.ScrollingDataTable('dt_Action', myColumnDefs, ds_Action, { height: "400px" });
  860. performAction("Delete Queries", doDeleteQueries, "750px");
  861. }
  862. function doDeleteQueries() {
  863. modifyQueries('delete', 'ListDeployedQueries');
  864. }
  865. function suspendQueries() {
  866. var recordSet = dt_Queries.getRecordSet();
  867. confirmMarked('ConfirmationPanel', 'QueryName', recordSet, 'Suspend these Queries?', doSuspendQueries);
  868. }
  869. function doSuspendQueries() {
  870. modifyQueries('suspend', 'ListDeployedQueries');
  871. }
  872. function checkForEnter(e) {
  873. if (!e) {
  874. alert('no e?');
  875. }
  876. if (e && e.keyCode == 13) {
  877. doFilter(e);
  878. }
  879. return !(window.event && window.event.keyCode == 13);
  880. }
  881. function doFilter(e) {
  882. var srcElement = e.srcElement;
  883. if (!srcElement) {
  884. srcElement = e.target;
  885. while (srcElement.nodeType != srcElement.ELEMENT_NODE) {
  886. srcElement = e.parentNode;
  887. }
  888. }
  889. switch (srcElement.id) {
  890. case "ListDeployedQueriesFilter":
  891. queryFilter.QueryName = srcElement.value;
  892. filterDeployedQueries();
  893. break;
  894. case "ListDeployedQueriesFilterSuspended":
  895. case "ListDeployedDataOnlyQueriesFilterSuspended":
  896. case "ListDeployedLibraryQueriesFilterSuspended":
  897. queryFilter.Suspended = srcElement.checked ? '1' : '';
  898. filterDeployedQueries();
  899. break;
  900. case "ListDeployedQueriesFilterAliases":
  901. case "ListDeployedDataOnlyQueriesFilterAliases":
  902. case "ListDeployedLibraryQueriesFilterAliases":
  903. queryFilter.Aliased = srcElement.checked ? '1' : '';
  904. filterDeployedQueries();
  905. break;
  906. case "ListDeployedQueriesFilterLibrary":
  907. queryFilter.IsLibrary = srcElement.checked ? '1' : '';
  908. filterDeployedQueries();
  909. break;
  910. case "ListDeployedQueriesFilterUsesLibrary":
  911. case "ListDeployedLibraryQueriesFilterUsesLibrary":
  912. queryFilter.LibrariesUsed = srcElement.checked ? '1' : '';
  913. filterDeployedQueries();
  914. break;
  915. case "ListDeployedDataOnlyQueriesFilter":
  916. queryFilter.QueryName = srcElement.value;
  917. filterDeployedQueries();
  918. break;
  919. case "ListDeployedLibraryQueriesFilter":
  920. queryFilter.QueryName = srcElement.value;
  921. filterDeployedQueries();
  922. break;
  923. case "AliasFilter":
  924. filterAliases();
  925. break;
  926. case "DataFilesFilter":
  927. filterDataFiles();
  928. break;
  929. case "IndexFilesFilter":
  930. filterIndexFiles();
  931. break;
  932. case "SuperFilesFilter":
  933. filterSuperFiles();
  934. break;
  935. }
  936. }
  937. var queryFilter = {
  938. QueryName: "",
  939. DeployedBy: "",
  940. Wuid: "",
  941. Suspended: "",
  942. Aliased: "",
  943. IsLibrary: "",
  944. LibrariesUsed: ""
  945. }
  946. function filterLibrariesUsed(RowValue, FilterValue) {
  947. // custom function to handle "Libraries used" like an exists check
  948. if (FilterValue == '1' && RowValue.length > 0) {
  949. return true;
  950. }
  951. return false;
  952. }
  953. function filterDeployedQueries() {
  954. var filterArray = new Array();
  955. if (queryFilter.QueryName.length > 0) {
  956. filterArray[filterArray.length] = { Value: queryFilter.QueryName, ColumnKey: ["QueryId", "DeployedBy", "Wuid"] };
  957. }
  958. if (queryFilter.Suspended.length > 0) {
  959. filterArray[filterArray.length] = { Value: queryFilter.Suspended, ColumnKey: "Suspended" };
  960. }
  961. if (queryFilter.Aliased.length > 0) {
  962. filterArray[filterArray.length] = { Value: queryFilter.Aliased, ColumnKey: "Aliased" };
  963. }
  964. if (queryFilter.IsLibrary.length > 0) {
  965. filterArray[filterArray.length] = { Value: queryFilter.IsLibrary, ColumnKey: "IsLibrary" };
  966. }
  967. if (queryFilter.LibrariesUsed.length > 0) {
  968. filterArray[filterArray.length] = { Value: queryFilter.LibrariesUsed, ColumnKey: "LibrariesUsed", FilterFunction: filterLibrariesUsed };
  969. }
  970. if (filterArray.length > 0) {
  971. dt_Queries.Filter(filterArray);
  972. }
  973. else {
  974. dt_Queries.ClearFilters();
  975. }
  976. }
  977. function filterDataTable(DataTableSource, FilterColumn, FilterString)
  978. {
  979. var records = DataTableSource.getRecordSet().getRecords();
  980. for (var i = 0; i < records.length; i++)
  981. {
  982. var elRow = records[i].getId();
  983. if (records[i].getData(FilterColumn).toLowerCase().indexOf(FilterString.toLowerCase()) > -1) {
  984. document.getElementById(elRow).style.display = "";
  985. } else {
  986. document.getElementById(elRow).style.display = "none";
  987. }
  988. }
  989. }
  990. function filterDataSource(OriginalDataSource, FilterColumn, FilterString)
  991. {
  992. var records = OriginalDataSource.getRecordSet().getRecords();
  993. for (var i = 0; i < records.length; i++)
  994. {
  995. var elRow = records[i].getId();
  996. if (records[i].getData(FilterColumn).toLowerCase().indexOf(FilterString.toLowerCase()) > -1) {
  997. document.getElementById(elRow).style.display = "";
  998. } else {
  999. document.getElementById(elRow).style.display = "none";
  1000. }
  1001. }
  1002. }
  1003. function confirmMarked(PanelId, DesciptionColumn, RecordSet, HeaderText, OkMethodToCall)
  1004. {
  1005. document.getElementById('ConfirmationHeader').innerHTML = HeaderText;
  1006. var records = RecordSet.getRecords();
  1007. var innerHTML = '<table style="text-align:left;">';
  1008. for (var i = 0; i < records.length; i++)
  1009. {
  1010. if (records[i].getData('Mark') == '1')
  1011. {
  1012. innerHTML += '<tr><td>' + records[i].getData(DesciptionColumn) + '</td></tr>';
  1013. }
  1014. }
  1015. innerHTML += '</table>';
  1016. document.getElementById('ConfirmationList').innerHTML = innerHTML;
  1017. document.getElementById('buttonConfirmationOk').onclick = OkMethodToCall;
  1018. confirmationPanel.show();
  1019. }
  1020. function showConfirmationMessage(PanelId, HeaderText, BodyText, OkMethodToCall) {
  1021. document.getElementById('ConfirmationHeader').innerHTML = HeaderText;
  1022. document.getElementById('ConfirmationList').innerHTML = BodyText;
  1023. document.getElementById('buttonConfirmationOk').onclick = OkMethodToCall;
  1024. confirmationPanel.show();
  1025. }
  1026. // Alias Actions
  1027. function deleteAliases() {
  1028. var queries = new Array();
  1029. var formatAliasLabel = function(elCell, oRecord, oColumn, sData) {
  1030. elCell.innerHTML = '<input type="text" value="' + sData + '" />';
  1031. };
  1032. var myColumnDefs = [
  1033. { key: "QueryAlias", label: "Alias", sortable: true, width: 300 },
  1034. { key: "QueryId", label: "Query", sortable: true, width: 300 },
  1035. { key: "Response", label: "Response", width: 100 }
  1036. ];
  1037. var records = dt_Aliases.getRecordSet().getRecords();
  1038. var i_added = 0;
  1039. for (var i = 0; i < records.length; i++) {
  1040. if (records[i].getData('Mark') == '1') {
  1041. queries[i_added] = { QueryAlias: records[i].getData('QueryAlias'), QueryId: records[i].getData('QueryId'), Response: '' };
  1042. i_added++;
  1043. }
  1044. }
  1045. ds_Action = new YAHOO.util.LocalDataSource(queries);
  1046. ds_Action.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  1047. ds_Action.responseSchema = {
  1048. fields: ["QueryAlias", "QueryId", "Response"]
  1049. };
  1050. dt_Action = new YAHOO.widget.ScrollingDataTable('dt_Action', myColumnDefs, ds_Action, { height: "300px" });
  1051. performAction("Delete Aliases", doDeleteAliases, "900px");
  1052. }
  1053. function doDeleteAliases() {
  1054. var connectionCallback = {
  1055. success: function(o) {
  1056. var xmlDoc = o.responseXML;
  1057. var rows = xmlDoc.getElementsByTagName('StatusRow');
  1058. // Update Response Column.
  1059. if (rows && rows.length > 0) {
  1060. for (var i = 0; i < rows.length; i++) {
  1061. var cols = rows[i].getElementsByTagName('Item');
  1062. if (cols && cols.length > 0) {
  1063. var aliasName = cols[0].childNodes[0].nodeValue;
  1064. var response = cols[1].childNodes[0].nodeValue;
  1065. var records = dt_Action.getRecordSet().getRecords();
  1066. for (var j = 0; j < records.length; j++) {
  1067. if (records[j].getData('QueryAlias') == aliasName) {
  1068. records[j].setData('Response', response);
  1069. }
  1070. }
  1071. }
  1072. }
  1073. }
  1074. dt_Action.render();
  1075. document.getElementById('buttonActionCancel').innerHTML = 'Close';
  1076. document.getElementById('buttonActionOk').style.display = 'none';
  1077. clearActionProgress();
  1078. setActionCloseButton(refreshCurrentTab);
  1079. },
  1080. failure: function(o) {
  1081. alert('Failure:' + o.statusText);
  1082. }
  1083. };
  1084. function clearActionProgress() {
  1085. document.getElementById('buttonActionOk').disabled = false;
  1086. document.getElementById('ActionProgress').innerHTML = '';
  1087. }
  1088. document.getElementById('ActionProgress').innerHTML = '<img src="/esp/files/img/loading.gif" style="height:18px;" />';
  1089. var postBody = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body>' + getSelectedAliases() + '</soap:Body></soap:Envelope>';
  1090. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/RemoveAliases?ver_=" + WS_ROXIECONFIG_VER);
  1091. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  1092. YAHOO.util.Connect._use_default_post_header = false;
  1093. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  1094. "/ws_roxieconfig/RemoveAliases" + "?ver_=" + WS_ROXIECONFIG_VER,
  1095. connectionCallback, postBody);
  1096. return {
  1097. };
  1098. }
  1099. function getSelectedAliases() {
  1100. var removeAliasesRequest = '<RemoveAliasesRequest><Aliases>';
  1101. var records = dt_Aliases.getRecordSet().getRecords();
  1102. for (var i = 0; i < records.length; i++) {
  1103. if (records[i].getData('Mark') == '1') {
  1104. removeAliasesRequest += '<AliasInfo>';
  1105. removeAliasesRequest += '<QueryAlias>' + records[i].getData('QueryAlias') + '</QueryAlias>';
  1106. removeAliasesRequest += '<QueryId>' + records[i].getData('QueryId') + '</QueryId>';
  1107. removeAliasesRequest += '</AliasInfo>';
  1108. }
  1109. }
  1110. removeAliasesRequest += '</Aliases></RemoveAliasesRequest>';
  1111. return removeAliasesRequest;
  1112. }
  1113. // Load Queries using Library
  1114. var ds_LibQueries, dt_LibQueries;
  1115. function loadQueriesUsingLibrary(LibraryName, ElementId)
  1116. {
  1117. var connectionCallback = {
  1118. success: function(o) {
  1119. var xmlDoc = o.responseXML;
  1120. var xmlQueries = xmlDoc.getElementsByTagName('Item');
  1121. var queries = new Array();
  1122. for(var i=0;i<xmlQueries.length;i++)
  1123. {
  1124. queries[i] = xmlQueries[i].childNodes[0].nodeValue;
  1125. }
  1126. var myColumnDefs = [
  1127. {key:"Query", label:"Query", sortable:true, width:800}
  1128. ];
  1129. ds_LibQueries = new YAHOO.util.LocalDataSource(queries);
  1130. ds_LibQueries.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  1131. ds_LibQueries.responseSchema = {
  1132. fields: ["Query"]
  1133. };
  1134. dt_LibQueries = new YAHOO.widget.ScrollingDataTable(ElementId, myColumnDefs, ds_LibQueries, { height: (YAHOO.util.Dom.getViewportHeight() - 155) + "px", width: (queryPanel.cfg.getProperty('width') - 65) + "px" });
  1135. },
  1136. failure: function(o) {
  1137. alert('Failure:' + o.statusText);
  1138. }
  1139. };
  1140. document.getElementById(ElementId).innerHTML = '<img src="/esp/files/img/loading.gif" style="height:18px;" />';
  1141. var postBody = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body><ListQueriesUsingLibraryRequest><LibraryName>' + LibraryName + '</LibraryName></ListQueriesUsingLibraryRequest></soap:Body></soap:Envelope>';
  1142. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/ListQueriesUsingLibrary?ver_=" + WS_ROXIECONFIG_VER);
  1143. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  1144. YAHOO.util.Connect._use_default_post_header = false;
  1145. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  1146. "/ws_roxieconfig/ListQueriesUsingLibrary" + "?ver_=" + WS_ROXIECONFIG_VER,
  1147. connectionCallback, postBody);
  1148. return {
  1149. };
  1150. }
  1151. function modifyQueries(Operation, ElementId)
  1152. {
  1153. var connectionCallback = {
  1154. success: function(o) {
  1155. var xmlDoc = o.responseXML;
  1156. var rows = xmlDoc.getElementsByTagName('StatusRow');
  1157. // Update Response Column.
  1158. if (rows && rows.length > 0) {
  1159. for (var i = 0; i < rows.length; i++) {
  1160. var cols = rows[i].getElementsByTagName('Item');
  1161. if (cols && cols.length > 0) {
  1162. var queryName = cols[0].childNodes[0].nodeValue;
  1163. var response = cols[1].childNodes[0].nodeValue;
  1164. if (response.indexOf('Error val') > -1) {
  1165. var ttmp = unescape(response);
  1166. ttmp = ttmp.replace(/\/+/gi, ' ');
  1167. ttmp = ttmp.replace(/</gi, ' ');
  1168. ttmp = ttmp.replace(/>/gi, ' ');
  1169. response = ttmp;
  1170. }
  1171. var records = dt_Action.getRecordSet().getRecords();
  1172. for (var j = 0; j < records.length; j++) {
  1173. if (records[j].getData('QueryId') == queryName) {
  1174. records[j].setData('Response', response);
  1175. }
  1176. }
  1177. }
  1178. }
  1179. }
  1180. dt_Action.render();
  1181. document.getElementById('buttonActionCancel').innerHTML = 'Close';
  1182. document.getElementById('buttonActionOk').style.display = 'none';
  1183. clearActionProgress();
  1184. setActionCloseButton(refreshCurrentTab);
  1185. },
  1186. failure: function(o) {
  1187. alert('Failure:' + o.statusText);
  1188. debugger;
  1189. }
  1190. };
  1191. function clearActionProgress() {
  1192. document.getElementById('buttonActionOk').disabled = false;
  1193. document.getElementById('ActionProgress').innerHTML = '';
  1194. }
  1195. document.getElementById('ActionProgress').innerHTML = '<img src="/esp/files/img/loading.gif" style="height:18px;" />';
  1196. var postBody = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body>' + getSelectedQueries(Operation) + '</soap:Body></soap:Envelope>';
  1197. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/ModifyQueries?ver_=" + WS_ROXIECONFIG_VER);
  1198. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  1199. YAHOO.util.Connect._use_default_post_header = false;
  1200. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  1201. "/ws_roxieconfig/ModifyQueries" + "?ver_=" + WS_ROXIECONFIG_VER,
  1202. connectionCallback, postBody);
  1203. return {
  1204. };
  1205. }
  1206. function getSelectedQueries(Operation) {
  1207. var modifyQueriesRequest = '<ModifyQueriesRequest><Operation>' + Operation + '</Operation><NotifyRoxie>' + notifyRoxie + '</NotifyRoxie><Queries>';
  1208. var records = dt_Queries.getRecordSet().getRecords();
  1209. for (var i = 0; i < records.length; i++) {
  1210. if (records[i].getData('Mark') == '1') {
  1211. modifyQueriesRequest += '<QueryInfo>';
  1212. modifyQueriesRequest += '<QueryId>' + records[i].getData('QueryId') + '</QueryId>';
  1213. if (Operation == 'suspend') {
  1214. modifyQueriesRequest += '<Suspended>' + (records[i].getData('Suspended') == '1' ? '0' : '1') + '</Suspended>';
  1215. }
  1216. modifyQueriesRequest += '</QueryInfo>';
  1217. }
  1218. }
  1219. modifyQueriesRequest += '</Queries></ModifyQueriesRequest>';
  1220. return modifyQueriesRequest;
  1221. }
  1222. var ds_Action, dt_Action;
  1223. function activateQueries(Activate) {
  1224. var queries = new Array();
  1225. var formatAliasLabel = function(elCell, oRecord, oColumn, sData) {
  1226. elCell.innerHTML = '<input type="text" value="' + sData + '" />';
  1227. };
  1228. var myColumnDefs = [
  1229. { key: "QueryId", label: "Query Name", sortable: true, width: 200 },
  1230. { key: "Alias", label: "Alias", formatter: formatActionInlineEntry, width: 200, sortable: true },
  1231. { key: "SuspendPrevious", label: "Suspend<br />Previous", parser: "boolean", formatter: "checkbox", width: 80 },
  1232. { key: "DeletePrevious", label: "Delete<br />Previous", parser: "boolean", formatter: "checkbox", width: 80 },
  1233. { key: "Response", label: "Response", width: 150 }
  1234. ];
  1235. var records = dt_Queries.getRecordSet().getRecords();
  1236. var i_added = 0;
  1237. for (var i = 0; i < records.length; i++) {
  1238. if (records[i].getData('Mark') == '1') {
  1239. var aliasName = records[i].getData('QueryId');
  1240. aliasName = aliasName.substring(0, aliasName.lastIndexOf('.'));
  1241. queries[i_added] = { QueryId: records[i].getData('QueryId'), Alias: aliasName, SuspendPrevious: false, DeletePrevious: false, Response: '' };
  1242. i_added++;
  1243. }
  1244. }
  1245. ds_Action = new YAHOO.util.LocalDataSource(queries);
  1246. ds_Action.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  1247. ds_Action.responseSchema = {
  1248. fields: ["QueryId", "Alias", "SuspendPrevious", "DeletePrevious", "Response"]
  1249. };
  1250. dt_Action = new YAHOO.widget.ScrollingDataTable('dt_Action', myColumnDefs, ds_Action, { height: "200px" });
  1251. var highlightEditableCell = function(oArgs) {
  1252. var elCell = oArgs.target;
  1253. if (YAHOO.util.Dom.hasClass(elCell, "yui-dt-editable")) {
  1254. this.highlightCell(elCell);
  1255. }
  1256. };
  1257. dt_Action.subscribe("cellMouseoverEvent", highlightEditableCell);
  1258. dt_Action.subscribe("cellMouseoutEvent", dt_Action.onEventUnhighlightCell);
  1259. dt_Action.subscribe("cellClickEvent", dt_Action.onEventShowCellEditor);
  1260. performAction((Activate ? "Activate Queries" : "Add Aliases"), (Activate ? doActivateQueries : doAddAliases), "800px");
  1261. }
  1262. function doActivateQueries() {
  1263. actionQueries(true);
  1264. }
  1265. function doAddAliases() {
  1266. actionQueries(false);
  1267. }
  1268. function performAction(HeaderText, OkMethodToCall, Width) {
  1269. document.getElementById('ahd').innerHTML = HeaderText;
  1270. // dt_Action
  1271. actionPanel.cfg.setProperty("width", Width);
  1272. YAHOO.util.Dom.addClass('ActionProgress', 'spanleft');
  1273. YAHOO.util.Dom.addClass('ActionButtons', 'spanright');
  1274. var test = dt_Action.get('width');
  1275. var t = document.getElementById('dt_Action');
  1276. document.getElementById('buttonActionOk').disabled = false;
  1277. document.getElementById('buttonActionOk').style.display = 'block';
  1278. document.getElementById('buttonActionCancel').innerHTML = 'Cancel';
  1279. document.getElementById('ActionProgress').innerHTML = '';
  1280. document.getElementById('buttonActionOk').onclick = function() { document.getElementById('buttonActionOk').disabled = true; OkMethodToCall(); }; // disable the Ok button
  1281. document.getElementById('buttonActionCancel').onclick = function() { hideActionPanel(); }; // disable the Ok button
  1282. actionPanel.show();
  1283. }
  1284. function setActionCloseButton(CloseMethodToCall) {
  1285. if (CloseMethodToCall) {
  1286. document.getElementById('buttonActionCancel').onclick = function() { CloseMethodToCall(); hideActionPanel(); }; // disable the Ok button
  1287. } else {
  1288. document.getElementById('buttonActionCancel').onclick = function() { hideActionPanel(); }; // disable the Ok button
  1289. }
  1290. }
  1291. function actionQueries(Activate) {
  1292. var connectionCallback = {
  1293. success: function(o) {
  1294. var xmlDoc = o.responseXML;
  1295. var rows = xmlDoc.getElementsByTagName('StatusRow');
  1296. // Update Response Column.
  1297. if (rows && rows.length > 0) {
  1298. for (var i = 0; i < rows.length; i++) {
  1299. var cols = rows[i].getElementsByTagName('Item');
  1300. if (cols && cols.length > 0) {
  1301. var queryName = cols[0].childNodes[0].nodeValue;
  1302. var response = cols[1].childNodes[0].nodeValue;
  1303. var records = dt_Action.getRecordSet().getRecords();
  1304. for (var j = 0; j < records.length; j++) {
  1305. if (records[j].getData('QueryId') == queryName) {
  1306. records[j].setData('Response', response);
  1307. }
  1308. }
  1309. }
  1310. }
  1311. }
  1312. dt_Action.render();
  1313. document.getElementById('buttonActionCancel').innerHTML = 'Close';
  1314. document.getElementById('buttonActionOk').style.display = 'none';
  1315. clearActionProgress();
  1316. setActionCloseButton(refreshCurrentTab);
  1317. },
  1318. failure: function(o) {
  1319. alert('Failure:' + o.statusText);
  1320. clearActionProgress();
  1321. hideActionPanel();
  1322. }
  1323. };
  1324. function clearActionProgress() {
  1325. document.getElementById('buttonActionOk').disabled = false;
  1326. document.getElementById('ActionProgress').innerHTML = '';
  1327. }
  1328. document.getElementById('ActionProgress').innerHTML = '<img src="/esp/files/img/loading.gif" style="height:18px;" />';
  1329. var postBody = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body>' + getActionQueries(Activate) + '</soap:Body></soap:Envelope>';
  1330. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/AddAliasesToQueries?ver_=" + WS_ROXIECONFIG_VER);
  1331. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  1332. YAHOO.util.Connect._use_default_post_header = false;
  1333. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  1334. "/ws_roxieconfig/AddAliasesToQueries" + "?ver_=" + WS_ROXIECONFIG_VER,
  1335. connectionCallback, postBody);
  1336. return {
  1337. };
  1338. }
  1339. function getActionQueries(Activate) {
  1340. var modifyQueriesRequest = '<AddAliasesRequest><Activate>' + (Activate ? '1' : '0') + '</Activate><Info>';
  1341. var records = dt_Action.getRecordSet().getRecords();
  1342. for (var i = 0; i < records.length; i++) {
  1343. modifyQueriesRequest += '<RoxieQueryModificationInfo>';
  1344. modifyQueriesRequest += '<QueryId>' + records[i].getData('QueryId') + '</QueryId>';
  1345. modifyQueriesRequest += '<QueryAlias>' + records[i].getData('Alias') + '</QueryAlias>';
  1346. modifyQueriesRequest += '<SuspendPrevious>' + records[i].getData('SuspendPrevious') + '</SuspendPrevious>';
  1347. modifyQueriesRequest += '<DeletePrevious>' + records[i].getData('DeletePrevious') + '</DeletePrevious>';
  1348. modifyQueriesRequest += '</RoxieQueryModificationInfo>';
  1349. }
  1350. modifyQueriesRequest += '</Info></AddAliasesRequest>';
  1351. return modifyQueriesRequest;
  1352. }
  1353. function toggleQueries() {
  1354. var queries = new Array();
  1355. var formatAliasLabel = function(elCell, oRecord, oColumn, sData) {
  1356. elCell.innerHTML = '<input type="text" value="' + sData + '" />';
  1357. };
  1358. var myColumnDefs = [
  1359. { key: "QueryId", label: "Query Name", sortable: true, width: 300 },
  1360. { key: "Suspended", label: "Suspended", formatter: formatCheckboxDisabled, width: 80, sortable: true },
  1361. { key: "Action", label: "Action", width: 80 },
  1362. { key: "Response", label: "Response", width: 200 }
  1363. ];
  1364. var records = dt_Queries.getRecordSet().getRecords();
  1365. var i_added = 0;
  1366. for (var i = 0; i < records.length; i++) {
  1367. if (records[i].getData('Mark') == '1') {
  1368. var aliasName = records[i].getData('QueryId');
  1369. var suspended = records[i].getData('Suspended');
  1370. var action = suspended == '1' ? 'Unsuspend' : 'Suspend';
  1371. queries[i_added] = { QueryId: records[i].getData('QueryId'), Suspended: suspended, Action: action, Response: '' };
  1372. i_added++;
  1373. }
  1374. }
  1375. ds_Action = new YAHOO.util.LocalDataSource(queries);
  1376. ds_Action.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  1377. ds_Action.responseSchema = {
  1378. fields: ["QueryId", "Suspended", "Action", "Response"]
  1379. };
  1380. dt_Action = new YAHOO.widget.ScrollingDataTable('dt_Action', myColumnDefs, ds_Action, { height: "500px" });
  1381. var highlightEditableCell = function(oArgs) {
  1382. var elCell = oArgs.target;
  1383. if (YAHOO.util.Dom.hasClass(elCell, "yui-dt-editable")) {
  1384. this.highlightCell(elCell);
  1385. }
  1386. };
  1387. dt_Action.subscribe("cellMouseoverEvent", highlightEditableCell);
  1388. dt_Action.subscribe("cellMouseoutEvent", dt_Action.onEventUnhighlightCell);
  1389. dt_Action.subscribe("cellClickEvent", dt_Action.onEventShowCellEditor);
  1390. performAction("Change Query Status", doSuspendQueries, "750px");
  1391. }
  1392. function listQueriesUsingFile(SourceDt) {
  1393. var connectionCallback = {
  1394. success: function(o) {
  1395. var xmlDoc = o.responseXML;
  1396. var xmlQueries = xmlDoc.getElementsByTagName('Item');
  1397. if (xmlQueries) {
  1398. var queries = new Array();
  1399. for (var i = 0; i < xmlQueries.length; i++) {
  1400. queries[i] = xmlQueries[i].childNodes[0].nodeValue;
  1401. }
  1402. var myColumnDefs = [{ key: "Query", label: "Query", sortable: true, width: 385}];
  1403. ds_Action = new YAHOO.util.LocalDataSource(queries);
  1404. ds_Action.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  1405. ds_Action.responseSchema = {
  1406. fields: ["Query"]
  1407. };
  1408. dt_Action = new YAHOO.widget.ScrollingDataTable('dt_Action', myColumnDefs, ds_Action, { height: "300px", width: "390px" });
  1409. dt_Action.render();
  1410. document.getElementById('buttonActionCancel').innerHTML = 'Close';
  1411. document.getElementById('buttonActionOk').style.display = 'none';
  1412. clearActionProgress();
  1413. setActionCloseButton();
  1414. document.getElementById('ahd').innerHTML = "Queries using index";
  1415. // dt_Action
  1416. actionPanel.cfg.setProperty("width", "420px");
  1417. YAHOO.util.Dom.addClass('ActionProgress', 'spanleft');
  1418. YAHOO.util.Dom.addClass('ActionButtons', 'spanright');
  1419. actionPanel.show();
  1420. }
  1421. },
  1422. failure: function(o) {
  1423. alert('Failure:' + o.statusText);
  1424. }
  1425. };
  1426. function clearActionProgress() {
  1427. document.getElementById('buttonActionOk').disabled = false;
  1428. document.getElementById('ActionProgress').innerHTML = '';
  1429. }
  1430. // Find selected rows...
  1431. var rows = SourceDt.getSelectedRows();
  1432. if (rows.length > 0) {
  1433. var rec = SourceDt.getRecord(rows[0]);
  1434. var FileName = rec.getData('Name');
  1435. document.getElementById('ActionProgress').innerHTML = '<img src="/esp/files/img/loading.gif" style="height:18px;" />';
  1436. var postBody = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://webservices.seisint.com/ws_roxieconfig"><soap:Body><ListQueriesUsingFileRequest><fileName>' + FileName + '</fileName></ListQueriesUsingFileRequest></soap:Body></soap:Envelope>';
  1437. YAHOO.util.Connect.initHeader("SOAPAction", "ws_roxieconfig/ListQueriesUsingFile?ver_=" + WS_ROXIECONFIG_VER);
  1438. YAHOO.util.Connect.initHeader("Content-Type", "text/xml");
  1439. YAHOO.util.Connect._use_default_post_header = false;
  1440. var getXML = YAHOO.util.Connect.asyncRequest("POST",
  1441. "/ws_roxieconfig/ListQueriesUsingFile" + "?ver_=" + WS_ROXIECONFIG_VER,
  1442. connectionCallback, postBody);
  1443. }
  1444. return {};
  1445. }