WsDfu.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /*##############################################################################
  2. # Copyright (C) 2011 HPCC Systems.
  3. #
  4. # All rights reserved. This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU Affero General Public License as
  6. # published by the Free Software Foundation, either version 3 of the
  7. # License, or (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU Affero General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU Affero General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. ############################################################################## */
  17. define([
  18. "dojo/_base/declare",
  19. "dojo/_base/lang",
  20. "dojo/_base/Deferred",
  21. "dojo/_base/array",
  22. "dojo/store/util/QueryResults",
  23. "hpcc/ESPRequest"
  24. ], function (declare, lang, Deferred, arrayUtil, QueryResults,
  25. ESPRequest) {
  26. var DFUQuery = declare(null, {
  27. idProperty: "Name",
  28. constructor: function (options) {
  29. declare.safeMixin(this, options);
  30. },
  31. getIdentity: function (object) {
  32. return object[this.idProperty];
  33. },
  34. query: function (query, options) {
  35. var request = {};
  36. lang.mixin(request, options.query);
  37. request['PageStartFrom'] = options.start;
  38. request['PageSize'] = options.count;
  39. if (options.sort) {
  40. request['Sortby'] = options.sort[0].attribute;
  41. request['Descending'] = options.sort[0].descending;
  42. }
  43. var results = ESPRequest.send("WsDfu", "DFUQuery", {
  44. request: request
  45. });
  46. var deferredResults = new Deferred();
  47. deferredResults.total = results.then(function (response) {
  48. if (lang.exists("DFUQueryResponse.NumFiles", response)) {
  49. return response.DFUQueryResponse.NumFiles;
  50. }
  51. return 0;
  52. });
  53. Deferred.when(results, function (response) {
  54. var workunits = [];
  55. if (lang.exists("DFUQueryResponse.DFULogicalFiles.DFULogicalFile", response)) {
  56. workunits = response.DFUQueryResponse.DFULogicalFiles.DFULogicalFile;
  57. }
  58. deferredResults.resolve(workunits);
  59. });
  60. return QueryResults(deferredResults);
  61. }
  62. });
  63. return {
  64. DFUArrayAction: function (logicalFiles, actionType, callback) {
  65. arrayUtil.forEach(logicalFiles, function (item, idx) {
  66. item.qualifiedName = item.Name + "@" + item.ClusterName;
  67. });
  68. var request = {
  69. LogicalFiles: logicalFiles,
  70. Type: actionType
  71. };
  72. ESPRequest.flattenArray(request, "LogicalFiles", "qualifiedName");
  73. return ESPRequest.send("WsDfu", "DFUArrayAction", {
  74. request: request,
  75. load: function (response) {
  76. if (lang.exists("DFUArrayActionResponse.DFUArrayActionResult", response)) {
  77. dojo.publish("hpcc/brToaster", {
  78. message: response.DFUArrayActionResponse.DFUArrayActionResult,
  79. type: "error",
  80. duration: -1
  81. });
  82. }
  83. if (callback && callback.load) {
  84. callback.load(response);
  85. }
  86. },
  87. error: function (err) {
  88. if (callback && callback.error) {
  89. callback.error(err);
  90. }
  91. }
  92. });
  93. },
  94. SuperfileAction: function (action, superfile, subfiles, removeSuperfile, callback) {
  95. var request = {
  96. action: action,
  97. superfile: superfile,
  98. subfiles: subfiles,
  99. removeSuperfile: removeSuperfile
  100. };
  101. ESPRequest.flattenArray(request, "subfiles", "Name");
  102. return ESPRequest.send("WsDfu", "SuperfileAction", {
  103. request: request,
  104. load: function (response) {
  105. if (lang.exists("SuperfileActionResponse", response)) {
  106. dojo.publish("hpcc/brToaster", {
  107. message: response.AddtoSuperfileResponse.Subfiles,
  108. type: "error",
  109. duration: -1
  110. });
  111. }
  112. if (callback && callback.load) {
  113. callback.load(response);
  114. }
  115. },
  116. error: function (err) {
  117. if (callback && callback.error) {
  118. callback.error(err);
  119. }
  120. }
  121. });
  122. },
  123. AddtoSuperfile: function (logicalFiles, superfile, existingFile, callback) {
  124. var request = {
  125. names: logicalFiles,
  126. Superfile: superfile,
  127. ExistingFile: existingFile ? 1 : 0
  128. };
  129. ESPRequest.flattenArray(request, "names", "Name");
  130. return ESPRequest.send("WsDfu", "AddtoSuperfile", {
  131. request: request,
  132. load: function (response) {
  133. if (lang.exists("AddtoSuperfileResponse.Subfiles", response)) {
  134. dojo.publish("hpcc/brToaster", {
  135. message: response.AddtoSuperfileResponse.Subfiles,
  136. type: "error",
  137. duration: -1
  138. });
  139. }
  140. if (callback && callback.load) {
  141. callback.load(response);
  142. }
  143. },
  144. error: function (err) {
  145. if (callback && callback.error) {
  146. callback.error(err);
  147. }
  148. }
  149. });
  150. },
  151. DFUQuery: function (params) {
  152. return ESPRequest.send("WsDfu", "DFUQuery", params);
  153. },
  154. DFUInfo: function (params) {
  155. return ESPRequest.send("WsDfu", "DFUInfo", params);
  156. },
  157. DFUDefFile: function (params) {
  158. lang.mixin(params, {
  159. handleAs: "text"
  160. });
  161. return ESPRequest.send("WsDfu", "DFUDefFile", params);
  162. }
  163. };
  164. });