appControler.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. /*
  2. * Licensed Materials - Property of IBM
  3. *
  4. * IBM Cognos Products: SHARE
  5. *
  6. * (C) Copyright IBM Corp. 2015, 2016
  7. *
  8. * US Government Users Restricted Rights - Use, duplication or disclosure
  9. * restricted by GSA ADP Schedule Contract with IBM Corp.
  10. */
  11. define([
  12. "jquery",
  13. "q",
  14. 'bi/sharecommon/utils/translator'
  15. ], function($, Q, t) {
  16. var controler = {};
  17. controler.SUBSCRIPTION_SLIDEOUT_PANE_WIDTH = '400px';
  18. /* Controller functions for User Credentials/UPS */
  19. /**
  20. * @param glassContext required; the glass context the view has
  21. * @param data optional; parameters from the user to create credentials from
  22. */
  23. controler.createUserCredential = function(glassContext, data) {
  24. var deferred = Q.defer();
  25. require(["bi/schedule/service/service"], function(service) {
  26. service.createUserCredential(glassContext, data).then(function() {
  27. deferred.resolve();
  28. }, function(errorObj) {
  29. deferred.reject(errorObj);
  30. });
  31. });
  32. return deferred.promise;
  33. };
  34. /**
  35. * @param glassContext required; the glass context the view has
  36. */
  37. controler.getUserCredential = function(glassContext) {
  38. var deferred = Q.defer();
  39. require(["bi/schedule/service/service"], function(service) {
  40. service.getUserCredential(glassContext).then(function() {
  41. deferred.resolve();
  42. }, function() {
  43. deferred.reject();
  44. });
  45. });
  46. return deferred.promise;
  47. };
  48. /* Controller functions for SCHEDULES */
  49. /**
  50. * @param scheduleDesc The details needed to construct a schedule
  51. */
  52. controler.createSchedule = function(scheduleDesc, glassContext) {
  53. var deferred = Q.defer();
  54. require(["bi/schedule/service/service"], function(service) {
  55. service.createOrUpdateSchedule(scheduleDesc, glassContext).then(function(result) {
  56. deferred.resolve(result);
  57. }).fail(function(err) {
  58. deferred.reject(err);
  59. });
  60. });
  61. return deferred.promise;
  62. };
  63. controler.updateSchedule = function(descriptor, glassContext) {
  64. var deferred = Q.defer();
  65. require(["bi/schedule/service/service"], function(service) {
  66. service.createOrUpdateSchedule(descriptor, glassContext).then(function(result) {
  67. deferred.resolve(result);
  68. }).fail(function(err) {
  69. deferred.reject();
  70. });
  71. });
  72. return deferred.promise;
  73. };
  74. controler.deleteSchedule = function(descriptor, glassContext) {
  75. var deferred = Q.defer();
  76. require(["bi/schedule/service/service"], function(service) {
  77. service.deleteSchedule(descriptor, glassContext).then(function(result) {
  78. deferred.resolve();
  79. }).fail(function(err) {
  80. deferred.reject();
  81. });
  82. });
  83. return deferred.promise;
  84. };
  85. controler.getSchedule = function(reportId, glassContext) {
  86. var deferred = Q.defer();
  87. require(["bi/schedule/service/service"], function(service) {
  88. service.getSchedule(reportId, glassContext).then(function(result) {
  89. deferred.resolve(result);
  90. }).fail(function(err) {
  91. deferred.reject(err);
  92. });
  93. });
  94. return deferred.promise;
  95. };
  96. controler.getRawSchedule = function(scheduleId, glassContext) {
  97. var deferred = Q.defer();
  98. require(['bi/schedule/service/service'], function(service) {
  99. service.readRawSchedule(scheduleId, glassContext).then(function(result) {
  100. return deferred.resolve(result);
  101. }.bind(this)).fail(function(err) {
  102. return deferred.reject(err);
  103. });
  104. });
  105. return deferred.promise;
  106. };
  107. controler.updateSaveToCloudOptions = function(scheduleId, saveToCloudOptions, glassContext) {
  108. if (scheduleId && saveToCloudOptions) {
  109. var deferred = Q.defer();
  110. require(['bi/schedule/service/service'], function(service) {
  111. controler.getRawSchedule(scheduleId, glassContext).then(function(result) {
  112. return service.updateScheduleCloudOptions(result.data[0], saveToCloudOptions, glassContext);
  113. }).then(function(result) {
  114. return deferred.resolve(result);
  115. }.bind(this)).fail(function(err) {
  116. return deferred.reject(err);
  117. });
  118. });
  119. return deferred.promise;
  120. } else {
  121. return Promise.resolve();
  122. }
  123. };
  124. controler.getSingleSchedule = function(scheduleDesc, glassContext) {
  125. var deferred = Q.defer();
  126. require(["bi/schedule/service/service"], function(service) {
  127. service.getSingleSchedule(scheduleDesc, glassContext).then(function(result) {
  128. deferred.resolve(result);
  129. }).fail(function(err) {});
  130. });
  131. return deferred.promise;
  132. };
  133. /* Controller functions for SUBSCRIPTIONS */
  134. /**
  135. * Construct and show the subscription pane (slides out from the right)
  136. */
  137. controler.showSubscriptionPane = function(glassContext, descriptor, launchPoint, callback) {
  138. var deferred = Q.defer();
  139. var content = {
  140. 'module': 'bi/schedule/views/SubscriptionView',
  141. 'glassContext': glassContext,
  142. 'descriptor': descriptor
  143. };
  144. if(callback !== undefined) {
  145. content.callback = callback;
  146. }
  147. glassContext.appController.showSlideOut({
  148. 'position':'right',
  149. 'content': content,
  150. 'width': controler.SUBSCRIPTION_SLIDEOUT_PANE_WIDTH,
  151. 'enableTabLooping': true,
  152. 'label': t.translate('subscription_header_region'),
  153. 'launchPoint': launchPoint
  154. });
  155. return deferred.promise;
  156. };
  157. /**
  158. * Construct and show the subscription management view
  159. */
  160. controler.showSubscriptionManagementPane = function(glassContext) {
  161. var deferred = Q.defer();
  162. var context = {
  163. id: "subscribe_mgmt",
  164. content: {}
  165. };
  166. glassContext.appController.openAppView('subscribe_mgmt', context);
  167. deferred.resolve();
  168. return deferred.promise;
  169. };
  170. /**
  171. * Create a subscription with the passed in data
  172. *
  173. * @param subscriptionDesc The details of the subscription
  174. */
  175. controler.createSubscription = function(subscriptionDesc, glassContext) {
  176. var deferred = Q.defer();
  177. require(["bi/schedule/service/service"], function(service) {
  178. service.createSubscription(subscriptionDesc, glassContext).then(function(result) {
  179. deferred.resolve();
  180. }).fail(function(err) {
  181. deferred.reject();
  182. });
  183. });
  184. return deferred.promise;
  185. };
  186. /**
  187. * Update a subscription
  188. *
  189. * @param descriptor The updated subscription information to use
  190. */
  191. controler.updateSubscription = function(descriptor, glassContext) {
  192. var deferred = Q.defer();
  193. require(["bi/schedule/service/service"], function(service) {
  194. service.updateSubscription(descriptor, glassContext).then(function(result) {
  195. deferred.resolve(result);
  196. }).fail(function(err) {
  197. deferred.reject();
  198. });
  199. });
  200. return deferred.promise;
  201. };
  202. /**
  203. * Fetch a list of subscriptions from the server
  204. */
  205. controler.getSubscriptions = function(glassContext) {
  206. var deferred = Q.defer();
  207. require(["bi/schedule/service/service"], function(service) {
  208. service.getSubscriptions(glassContext).then(function(result) {
  209. deferred.resolve(result);
  210. }).fail(function(err) {
  211. deferred.reject(err);
  212. });
  213. });
  214. return deferred.promise;
  215. };
  216. controler.deleteSubscription = function(subscriptionId, glassContext) {
  217. var deferred = Q.defer();
  218. require(["bi/schedule/service/service"], function(service) {
  219. service.deleteSubscription(subscriptionId, glassContext).then(function(result) {
  220. deferred.resolve(result);
  221. }).fail(function(err) {
  222. deferred.reject(err);
  223. });
  224. });
  225. return deferred.promise;
  226. };
  227. /**
  228. * Get information about a single subscription via its subscription Id
  229. * @param subscriptionId The subscription Id to use to get subscription information
  230. */
  231. controler.getSubscriptionDetails = function(subscriptionId, glassContext) {
  232. var deferred = Q.defer();
  233. require(["bi/schedule/service/service"], function(service) {
  234. service.getSubscriptionDetails(subscriptionId, glassContext).then(function(result) {
  235. deferred.resolve(result);
  236. }).fail(function(err) {
  237. deferred.reject(err);
  238. });
  239. });
  240. return deferred.promise;
  241. };
  242. /**
  243. * Get view run history about a single subscription via its subscription Id
  244. * @param {String} subscriptionId - The subscription Id to use to get run history information
  245. * @param {Object} glassContext - The glass context object
  246. */
  247. controler.getSubscriptionRunHistory = function(subscriptionId, glassContext) {
  248. var deferred = Q.defer();
  249. require(["bi/schedule/service/service"], function(service) {
  250. service.getObjectProperties(subscriptionId, glassContext).then(function(result) {
  251. deferred.resolve(result);
  252. }).fail(function(err) {
  253. deferred.reject(err);
  254. });
  255. });
  256. return deferred.promise;
  257. };
  258. /**
  259. * Construct and show the versions pane (slides out from the right)
  260. */
  261. controler.showVersionsPane = function(glassContext, properties, launchPoint) {
  262. var content = {
  263. 'module': 'bi/content_apps/VersionsView',
  264. 'glassContext': glassContext,
  265. 'objectInformation': properties.data[0]
  266. };
  267. glassContext.appController.showSlideOut({
  268. 'position':'right',
  269. 'content': content,
  270. 'width': '350px',
  271. 'enableTabLooping': true,
  272. 'label': t.translate('schedule_subscription_version_aria_label'),
  273. 'launchPoint': launchPoint
  274. });
  275. };
  276. /**
  277. * Get printers for the logged in user
  278. */
  279. controler.getPrinters = function(glassContext) {
  280. var deferred = Q.defer();
  281. require(["bi/schedule/service/service"], function(service) {
  282. service.getPrinters(glassContext).then(function(result) {
  283. deferred.resolve(result);
  284. }).fail(function(err) {
  285. deferred.reject(err);
  286. });
  287. });
  288. return deferred.promise;
  289. };
  290. /**
  291. * Get archive locations for output to file systems
  292. */
  293. controler.getArchiveLocations = function(glassContext) {
  294. var deferred = Q.defer();
  295. require(["bi/schedule/service/service"], function(service) {
  296. service.getArchiveLocations(glassContext).then(function(result) {
  297. deferred.resolve(result);
  298. }).fail(function(err) {
  299. deferred.reject(err);
  300. });
  301. });
  302. return deferred.promise;
  303. };
  304. controler.getS3ConnectionDetails = function(glassContext) {
  305. var deferred = Q.defer();
  306. require(["bi/schedule/service/service"], function(service) {
  307. service.getS3ConnectionDetails(glassContext).then(function(result) {
  308. deferred.resolve(result);
  309. }).fail(function(err) {
  310. deferred.reject(err);
  311. });
  312. });
  313. return deferred.promise;
  314. };
  315. controler.getS3LocationsDetails = function(glassContext, id) {
  316. var deferred = Q.defer();
  317. require(["bi/schedule/service/service"], function(service) {
  318. service.getS3LocationsDetails(glassContext, id).then(function(result) {
  319. deferred.resolve(result);
  320. }).fail(function(err) {
  321. deferred.reject(err);
  322. });
  323. });
  324. return deferred.promise;
  325. };
  326. controler.getS3LocationParentConnectionID = function(glassContext, id) {
  327. var deferred = Q.defer();
  328. require(["bi/schedule/service/service"], function(service) {
  329. service.getS3LocationParentConnectionID(glassContext, id).then(function(result) {
  330. deferred.resolve(result);
  331. }).fail(function(err) {
  332. deferred.reject(err);
  333. });
  334. });
  335. return deferred.promise;
  336. };
  337. return controler;
  338. });