QuerySetLogicalFilesWidget.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. define([
  2. "dojo/_base/declare",
  3. "dojo/_base/lang",
  4. "src/nlsHPCC",
  5. "dojo/_base/array",
  6. "dgrid/selector",
  7. "hpcc/GridDetailsWidget",
  8. "hpcc/DelayLoadWidget",
  9. "src/ESPQuery",
  10. "src/ESPUtil"
  11. ], function (declare, lang, nlsHPCCMod, arrayUtil,
  12. selector,
  13. GridDetailsWidget, DelayLoadWidget, ESPQuery, ESPUtil) {
  14. var nlsHPCC = nlsHPCCMod.default;
  15. return declare("QuerySetLogicalFilesWidget", [GridDetailsWidget], {
  16. i18n: nlsHPCC,
  17. gridTitle: nlsHPCC.title_QuerySetLogicalFiles,
  18. idProperty: "File",
  19. queryId: null,
  20. querySet: null,
  21. init: function (params) {
  22. if (this.inherited(arguments))
  23. return;
  24. this.query = ESPQuery.Get(params.QuerySetId, params.Id);
  25. this.refreshGrid();
  26. },
  27. createGrid: function (domID) {
  28. var context = this;
  29. var retVal = new declare([ESPUtil.Grid(true, true)])({
  30. store: this.store,
  31. columns: {
  32. col1: selector({ width: 27, selectorType: 'checkbox' }),
  33. File: { label: this.i18n.LogicalFiles }
  34. }
  35. }, domID);
  36. return retVal;
  37. },
  38. createDetail: function (id, row, params) {
  39. return new DelayLoadWidget({
  40. id: id,
  41. title: row.File,
  42. closable: true,
  43. delayWidget: "LFDetailsWidget",
  44. hpcc: {
  45. type: "LFDetailsWidget",
  46. params: {
  47. Name: row.File
  48. }
  49. }
  50. });
  51. },
  52. refreshGrid: function (args) {
  53. var context = this;
  54. this.query.refresh().then(function (response) {
  55. var logicalFiles = [];
  56. if (lang.exists("LogicalFiles.Item", context.query)) {
  57. arrayUtil.forEach(context.query.LogicalFiles.Item, function (item, idx) {
  58. var file = {
  59. File: item
  60. }
  61. logicalFiles.push(file);
  62. });
  63. }
  64. context.store.setData(logicalFiles);
  65. context.grid.refresh();
  66. });
  67. }
  68. });
  69. });