workflow.node-fields.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. // Licensed to Cloudera, Inc. under one
  2. // or more contributor license agreements. See the NOTICE file
  3. // distributed with this work for additional information
  4. // regarding copyright ownership. Cloudera, Inc. licenses this file
  5. // to you under the Apache License, Version 2.0 (the
  6. // "License"); you may not use this file except in compliance
  7. // with the License. You may obtain a copy of the License at
  8. //
  9. // http://www.apache.org/licenses/LICENSE-2.0
  10. //
  11. // Unless required by applicable law or agreed to in writing, software
  12. // distributed under the License is distributed on an "AS IS" BASIS,
  13. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. // See the License for the specific language governing permissions and
  15. // limitations under the License.
  16. /**
  17. * Provides file, archive, property, param
  18. * arg, argument, EnvVar, prepares, delete,
  19. * mkdir, touch, chmod, move, and touchz
  20. * field operations.
  21. */
  22. var NodeFields = {
  23. removeFile: function(data, event) {
  24. var self = this;
  25. self.files.remove(data);
  26. $(document).trigger('remove.file.workflow', [data]);
  27. },
  28. addFile: function(data, event) {
  29. var self = this;
  30. var prop = { name: ko.observable(""), dummy: ko.observable("") };
  31. prop.name.subscribe(function(value) {
  32. self.files.valueHasMutated();
  33. });
  34. self.files.push(prop);
  35. $(document).trigger('add.file.workflow', [data]);
  36. },
  37. removeArchive: function(data, event) {
  38. var self = this;
  39. self.archives.remove(data);
  40. $(document).trigger('remove.archive.workflow', [data]);
  41. },
  42. addArchive: function(data, event) {
  43. var self = this;
  44. var prop = { name: ko.observable(""), dummy: ko.observable("") };
  45. prop.name.subscribe(function(value) {
  46. self.archives.valueHasMutated();
  47. });
  48. self.archives.push(prop);
  49. $(document).trigger('add.archive.workflow', [data]);
  50. },
  51. removeProperty: function(data, event) {
  52. var self = this;
  53. self.job_properties.remove(data);
  54. $(document).trigger('remove.property.workflow', [data]);
  55. },
  56. addProperty: function(data, event) {
  57. var self = this;
  58. var prop = { name: ko.observable(""), value: ko.observable("") };
  59. prop.name.subscribe(function(value) {
  60. self.job_properties.valueHasMutated();
  61. });
  62. prop.value.subscribe(function(value) {
  63. self.job_properties.valueHasMutated();
  64. });
  65. self.job_properties.push(prop);
  66. $(document).trigger('add.property.workflow', [data]);
  67. },
  68. addParam: function(data, event) {
  69. var self = this;
  70. var prop = { value: ko.observable(""), type: ko.observable("param") };
  71. prop.value.subscribe(function(value) {
  72. self.params.valueHasMutated();
  73. });
  74. prop.type.subscribe(function(value) {
  75. self.params.valueHasMutated();
  76. });
  77. self.params.push(prop);
  78. $(document).trigger('add.param.workflow', [data]);
  79. },
  80. addArgument: function(data, event) {
  81. var self = this;
  82. var prop = { value: ko.observable(""), type: ko.observable("argument") };
  83. prop.value.subscribe(function(value) {
  84. self.params.valueHasMutated();
  85. });
  86. prop.type.subscribe(function(value) {
  87. self.params.valueHasMutated();
  88. });
  89. self.params.push(prop);
  90. $(document).trigger('add.argument.workflow', [data]);
  91. },
  92. addArg: function(data, event) {
  93. var self = this;
  94. var prop = { value: ko.observable(""), type: ko.observable("arg") };
  95. prop.value.subscribe(function(value) {
  96. self.params.valueHasMutated();
  97. });
  98. prop.type.subscribe(function(value) {
  99. self.params.valueHasMutated();
  100. });
  101. self.params.push(prop);
  102. $(document).trigger('add.arg.workflow', [data]);
  103. },
  104. addEnvVar: function(data, event) {
  105. var self = this;
  106. var prop = { value: ko.observable(""), type: ko.observable("env-var") };
  107. prop.value.subscribe(function(value) {
  108. self.params.valueHasMutated();
  109. });
  110. prop.type.subscribe(function(value) {
  111. self.params.valueHasMutated();
  112. });
  113. self.params.push(prop);
  114. $(document).trigger('add.envvar.workflow', [data]);
  115. },
  116. removeParam: function(data, event) {
  117. var self = this;
  118. self.params.remove(data);
  119. $(document).trigger('remove.param.workflow', [data]);
  120. },
  121. addPrepareDelete: function(data, event) {
  122. var self = this;
  123. var prop = { value: ko.observable(""), type: ko.observable("delete") };
  124. prop.value.subscribe(function(value) {
  125. self.prepares.valueHasMutated();
  126. });
  127. prop.type.subscribe(function(value) {
  128. self.prepares.valueHasMutated();
  129. });
  130. self.prepares.push(prop);
  131. $(document).trigger('add.prepare_delete.workflow', [data]);
  132. },
  133. addPrepareMkdir: function(data, event) {
  134. var self = this;
  135. var prop = { value: ko.observable(""), type: ko.observable("mkdir") };
  136. prop.value.subscribe(function(value) {
  137. self.prepares.valueHasMutated();
  138. });
  139. prop.type.subscribe(function(value) {
  140. self.prepares.valueHasMutated();
  141. });
  142. self.prepares.push(prop);
  143. $(document).trigger('add.prepare_mkdir.workflow', [data]);
  144. },
  145. removePrepare: function(data, event) {
  146. var self = this;
  147. self.prepares.remove(data);
  148. $(document).trigger('remove.prepare.workflow', [data]);
  149. },
  150. addDelete: function(data, event) {
  151. var self = this;
  152. var prop = { name: ko.observable("") };
  153. prop.name.subscribe(function(value) {
  154. self.deletes.valueHasMutated();
  155. });
  156. self.deletes.push(prop);
  157. $(document).trigger('add.delete.workflow', [data]);
  158. },
  159. removeDelete: function(data, event) {
  160. var self = this;
  161. self.deletes.remove(data);
  162. $(document).trigger('remove.delete.workflow', [data]);
  163. },
  164. addMkdir: function(data, event) {
  165. var self = this;
  166. var prop = { name: ko.observable("") };
  167. prop.name.subscribe(function(value) {
  168. self.mkdirs.valueHasMutated();
  169. });
  170. self.mkdirs.push(prop);
  171. $(document).trigger('add.mkdir.workflow', [data]);
  172. },
  173. removeMkdir: function(data, event) {
  174. var self = this;
  175. self.mkdirs.remove(data);
  176. $(document).trigger('remove.mkdir.workflow', [data]);
  177. },
  178. addMove: function(data, event) {
  179. var self = this;
  180. var prop = { source: ko.observable(""), destination: ko.observable("") };
  181. prop.source.subscribe(function(value) {
  182. self.moves.valueHasMutated();
  183. });
  184. prop.destination.subscribe(function(value) {
  185. self.moves.valueHasMutated();
  186. });
  187. self.moves.push(prop);
  188. $(document).trigger('add.move.workflow', [data]);
  189. },
  190. removeMove: function(data, event) {
  191. var self = this;
  192. self.moves.remove(data);
  193. $(document).trigger('remove.move.workflow', [data]);
  194. },
  195. addChmod: function(data, event) {
  196. var self = this;
  197. var prop = { path: ko.observable(""), permissions: ko.observable(""), recursive: ko.observable("") };
  198. prop.path.subscribe(function(value) {
  199. self.chmods.valueHasMutated();
  200. });
  201. prop.permissions.subscribe(function(value) {
  202. self.chmods.valueHasMutated();
  203. });
  204. prop.recursive.subscribe(function(value) {
  205. self.chmods.valueHasMutated();
  206. });
  207. self.chmods.push(prop);
  208. $(document).trigger('add.chmod.workflow', [data]);
  209. },
  210. removeChmod: function(data, event) {
  211. var self = this;
  212. self.chmods.remove(data);
  213. $(document).trigger('remove.chmod.workflow', [data]);
  214. },
  215. addTouchz: function(data, event) {
  216. var self = this;
  217. var prop = { name: ko.observable("") };
  218. prop.name.subscribe(function(value) {
  219. self.touchzs.valueHasMutated();
  220. });
  221. self.touchzs.push(prop);
  222. $(document).trigger('add.touchz.workflow', [data]);
  223. },
  224. removeTouchz: function(data, event) {
  225. var self = this;
  226. self.touchzs.remove(data);
  227. $(document).trigger('remove.touchz.workflow', [data]);
  228. }
  229. };