ParameterValueHelper.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. "use strict";
  2. /**
  3. * Licensed Materials - Property of IBM
  4. * IBM Cognos Products: Cognos Analytics
  5. * Copyright IBM Corp. 2015, 2017
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. define(['underscore', 'moment-timezone'], function (_, moment) {
  9. return {
  10. buildSimpleParmValueItems: function buildSimpleParmValueItems(parameterName, items) {
  11. var parameter_values = {
  12. name: parameterName,
  13. values: []
  14. };
  15. _.each(items, function (item) {
  16. parameter_values.values.push({
  17. type: 'simpleParmValueItem',
  18. use: _.isString(item) ? item : item.value,
  19. display: _.isString(item) ? item : item.label,
  20. inclusive: true
  21. });
  22. }.bind(this));
  23. return parameter_values;
  24. },
  25. buildBoundRangeParmValueItem: function buildBoundRangeParmValueItem(parameterName, range) {
  26. return {
  27. name: parameterName,
  28. values: [{
  29. type: 'boundRangeParmValueItem',
  30. inclusive: true,
  31. start: {
  32. inclusive: true,
  33. use: _.isString(range.from) ? range.from : range.from.value,
  34. display: _.isString(range.from) ? range.from : range.from.label
  35. },
  36. end: {
  37. inclusive: true,
  38. use: _.isString(range.to) ? range.to : range.to.value,
  39. display: _.isString(range.to) ? range.to : range.to.label
  40. }
  41. }]
  42. };
  43. },
  44. parseDateTimeString: function parseDateTimeString(value, showSeconds) {
  45. var parsedDateTime = moment(value);
  46. return {
  47. date: parsedDateTime.format('YYYY-MM-DD'),
  48. time: showSeconds ? parsedDateTime.format('HH:mm:ss A') : parsedDateTime.format('HH:mm A')
  49. };
  50. },
  51. parseTimeString: function parseTimeString(value, showSeconds) {
  52. var parsedTime = moment(moment().format('YYYY-MM-DD') + ' ' + value);
  53. return {
  54. date: null,
  55. time: showSeconds ? parsedTime.format('HH:mm:ss A') : parsedTime.format('HH:mm A')
  56. };
  57. },
  58. createDefaultDateTime: function createDefaultDateTime(defaultDate, showSeconds) {
  59. var defaultTime = moment().set('hour', 0).set('minute', 0).set('second', 0).set('millisecond', 0);
  60. return this._createDateTimeJSON(defaultDate, defaultTime, showSeconds);
  61. },
  62. createDefaultEndTime: function createDefaultEndTime(defaultDate, showSeconds) {
  63. var defaultTime = moment().set('hour', 23).set('minute', 59).set('second', 0).set('millisecond', 0);
  64. return this._createDateTimeJSON(defaultDate, defaultTime, showSeconds);
  65. },
  66. _createDateTimeJSON: function _createDateTimeJSON(defaultDate, defaultTime, showSeconds) {
  67. return {
  68. date: defaultDate ? defaultDate : moment().format('YYYY-MM-DD'),
  69. time: showSeconds ? defaultTime.format('HH:mm:ss') : defaultTime.format('HH:mm')
  70. };
  71. },
  72. createUseDisplayTimeValue: function createUseDisplayTimeValue(time) {
  73. return {
  74. use: time ? moment(time, 'HH:mm:ss').format('HH:mm:ss.SSS') : '',
  75. display: time ? moment(time, 'HH:mm:ss').format('h:mm A') : ''
  76. };
  77. },
  78. buildUseDisplayValue: function buildUseDisplayValue(payload) {
  79. var timeValue = this.createUseDisplayTimeValue(payload.time);
  80. var hasDateAndTime = payload.date && payload.time;
  81. return {
  82. label: (payload.date ? payload.date : '') + (hasDateAndTime ? ' ' : '') + (payload.time ? timeValue.display : ''),
  83. value: (payload.date ? payload.date : '') + (hasDateAndTime ? ' ' : '') + (payload.time ? timeValue.use : '')
  84. };
  85. },
  86. getMultilingualDisplay: function getMultilingualDisplay(contentLocale, parameter) {
  87. var displayValue;
  88. if (contentLocale && parameter.multilingualDisplay) {
  89. displayValue = parameter.multilingualDisplay[contentLocale];
  90. if (!displayValue) {
  91. var sepIndex = contentLocale.indexOf('-');
  92. if (sepIndex !== -1) {
  93. var language = contentLocale.substr(0, sepIndex);
  94. displayValue = parameter.multilingualDisplay[language];
  95. }
  96. }
  97. }
  98. return displayValue ? displayValue : parameter.name;
  99. }
  100. };
  101. });