123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- /**
- * Licensed Materials - Property of IBM
- *
- * IBM Cognos Products: SHARE
- *
- * Copyright IBM Corp. 2015, 2017
- *
- * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- define([ 'jquery',
- 'moment-timezone',
- 'bi/sharecommon/utils/translator'],
- function($, moment, t) {
- var cadenceLabelGenerator = {};
-
- var __12H_TIME_FORMAT = "LT"; //(Local Time) h:mm |en-us -> 8:30 PM| |fr-fr -> 20:30|
- var _getSelectedDays = function(scheduleInfo, timezone) {
-
- var scheduleTZ = scheduleInfo.timezone;
- if(!scheduleTZ) {
- console.error("Schedule was created with no timezone. Defaulting to 'America/New_York'.");
- scheduleTZ = "America/New_York";
- }
-
- var parameters = {};
- var days = [];
-
- var localizedNames = [
- t.translate("schedule_weekday_sunday_t"),
- t.translate("schedule_weekday_monday_t"),
- t.translate("schedule_weekday_tuesday_t"),
- t.translate("schedule_weekday_wednesday_t"),
- t.translate("schedule_weekday_thursday_t"),
- t.translate("schedule_weekday_friday_t"),
- t.translate("schedule_weekday_saturday_t")
- ];
- var dayNumberMap = {
- 'weeklySunday': 0,
- 'weeklyMonday': 1,
- 'weeklyTuesday': 2,
- 'weeklyWednesday': 3,
- 'weeklyThursday': 4,
- 'weeklyFriday': 5,
- 'weeklySaturday': 6
- };
- /*
- * re order the weeklyObj because the order weeklyObj is un-determined
- */
- var weeklyObj = scheduleInfo.weekly;
- for (var key in weeklyObj) {
- if(weeklyObj[key]) {
- days.push(dayNumberMap[key]);
- }
- }
- days.sort(); // 1 3 5
-
- // calculate the difference in days between source and target timezones
- var sourceDay = moment(scheduleInfo.startDate).tz(scheduleTZ).day();
- var targetDay = moment(scheduleInfo.startDate).tz(timezone).day();
- var diffDays = targetDay - sourceDay;
-
-
- /*
- * Give new key names according to the order
- * eg. input: days = [1, 3, 5]
- * output: parameters = {param1: "Mon", param2: "Wed", param3: "Fri"}
- */
- for (var i = 0; i < days.length; i++) {
- var newDay = days[i] + diffDays;
- if(newDay < 0) {
- newDay = newDay+7;
- }
- else if(newDay > 6) {
- newDay = newDay -7;
- }
-
- parameters['param' + (i+1)] = localizedNames[newDay];
- }
- return parameters;
- };
-
- /** Retrieve localized string representing the cadence of scheduleDetails's schedule
- * Times are local to the timezone passed in. */
- cadenceLabelGenerator.getLabelFor = function(scheduleInfo, timezone, locale) {
- if (!scheduleInfo) {
- return "";
- }
-
- var label_key = "";
- var parameters = {};
- var hasIntraday = (typeof scheduleInfo.intradayRecurrence !== 'undefined')?true:false;
- if (scheduleInfo.type === "daily" || scheduleInfo.type === "dailyWithIntradayRecurrence") {
- // Daily intradayRecurrence only applies to 'day' dailyPeriod
- if (typeof scheduleInfo.daily !== 'undefined') {
- var repeat = parseInt(scheduleInfo.everyNPeriods, 10);
- if (repeat == 1) {
- if ( hasIntraday && scheduleInfo.daily.dailyPeriod == 'day' ) {
- label_key = "cadence_daily_day_repeat_label";
- }else {
- label_key = "cadence_daily_" + scheduleInfo.daily.dailyPeriod + "_label";
- if ( scheduleInfo.daily.dailyPeriod == 'day' ) {
- parameters["param"] = moment(scheduleInfo.startDate).locale(locale).tz(timezone).format(__12H_TIME_FORMAT);
- }
- }
-
- }else {
- if ( hasIntraday && scheduleInfo.daily.dailyPeriod == 'day' ) {
- label_key = "cadence_daily_every_day_repeat_label";
- parameters["param"] = repeat;
- }else {
- label_key = "cadence_daily_every_" + scheduleInfo.daily.dailyPeriod + "_label";
- parameters["param"] = repeat;
- }
- }
- } else {
- label_key = "cadence_daily_label";
- parameters["param"] = moment(scheduleInfo.startDate).locale(locale).tz(timezone).format(__12H_TIME_FORMAT);
- }
- } else if (scheduleInfo.type === "weekly" || scheduleInfo.type === "weeklyWithIntradayRecurrence") {
- if (typeof scheduleInfo.weekly !== 'undefined') {
- parameters = _getSelectedDays(scheduleInfo, timezone);
- var repeat = parseInt(scheduleInfo.everyNPeriods, 10);
- if (repeat == 1) {
- if ( hasIntraday ) {
- label_key = "cadence_weekly_" + Object.keys(parameters).length + "_repeat_label";
- }else {
- label_key = "cadence_weekly_" + Object.keys(parameters).length + "_label";
- }
- // reset parameter
- parameters["param"] = moment(scheduleInfo.startDate).locale(locale).tz(timezone).format(__12H_TIME_FORMAT);
- } else {
- if ( hasIntraday ) {
- label_key = "cadence_week_" + Object.keys(parameters).length + "_repeat_label";
- // reset parameter
- parameters["param"] = repeat;
- }else {
- label_key = "cadence_week_" + Object.keys(parameters).length + "_label";
- parameters["param"] = repeat;
- }
- }
-
- } else {
- label_key = "cadence_weekly_label";
- parameters["param"] = moment(scheduleInfo.startDate).locale(locale).tz(timezone).format(__12H_TIME_FORMAT);
-
- }
-
- } else if (scheduleInfo.type === "monthlyRelative" || scheduleInfo.type === "monthlyRelativeWithIntradayRecurrence") {
- if (typeof scheduleInfo.monthlyRelative !== 'undefined') {
- parameters['param1'] = t.translate("schedule_weekday_" + scheduleInfo.monthlyRelative.monthlyRelativeDay +"_t");
- var repeat = parseInt(scheduleInfo.everyNPeriods, 10);
- if (repeat == 1) {
- if ( hasIntraday ) {
- label_key = "cadence_monthly_relative_" + scheduleInfo.monthlyRelative.monthlyRelativeWeek + "_repeat";
- }else {
- label_key = "cadence_monthly_relative_" + scheduleInfo.monthlyRelative.monthlyRelativeWeek;
- }
- } else {
- if ( hasIntraday ) {
- label_key = "cadence_monthly_relative_repeat_" + scheduleInfo.monthlyRelative.monthlyRelativeWeek + "_repeat";
- parameters["param"] = repeat;
- }else {
- label_key = "cadence_monthly_relative_repeat_" + scheduleInfo.monthlyRelative.monthlyRelativeWeek;
- parameters["param"] = repeat;
- }
- }
- } else {
- label_key = "cadence_monthly_label";
- }
- } else if (scheduleInfo.type === "monthlyAbsolute" || scheduleInfo.type === "monthlyAbsoluteWithIntradayRecurrence") {
- if (typeof scheduleInfo.monthlyAbsolute !== 'undefined') {
- parameters['param1'] = scheduleInfo.monthlyAbsolute.monthlyAbsoluteDay;
- var repeat = parseInt(scheduleInfo.everyNPeriods, 10);
- if (repeat == 1) {
- if ( hasIntraday ) {
- label_key = "cadence_monthly_absolute_daily_repeat";
- }else {
- label_key = "cadence_monthly_absolute";
- }
- } else {
- if ( hasIntraday ) {
- label_key = "cadence_monthly_absolute_repeat_daily_repeat";
- parameters["param"] = repeat;
- }else {
- label_key = "cadence_monthly_absolute_repeat";
- parameters["param"] = repeat;
- }
- }
- } else {
- label_key = "cadence_monthly_label";
- }
- } else if (scheduleInfo.type === "yearlyRelative" || scheduleInfo.type === "yearlyRelativeWithIntradayRecurrence") {
- if (typeof scheduleInfo.yearlyRelative !== 'undefined') {
- parameters['weekDay'] = t.translate("schedule_weekday_" + scheduleInfo.yearlyRelative.yearlyRelativeDay +"_t");
- parameters['month'] = t.translate("schedule_month_short_" + scheduleInfo.yearlyRelative.yearlyRelativeMonth +"_label");
- var repeat = parseInt(scheduleInfo.everyNPeriods, 10);
- if (repeat == 1) {
- if ( hasIntraday ) {
- label_key = "cadence_yearly_relative_" + scheduleInfo.yearlyRelative.yearlyRelativeWeek + "_repeat";
- }else {
- label_key = "cadence_yearly_relative_" + scheduleInfo.yearlyRelative.yearlyRelativeWeek;
- }
- } else {
- if ( hasIntraday ) {
- label_key = "cadence_yearly_relative_repeat_" + scheduleInfo.yearlyRelative.yearlyRelativeWeek + "_repeat";
- parameters["param"] = repeat;
- }else {
- label_key = "cadence_yearly_relative_repeat_" + scheduleInfo.yearlyRelative.yearlyRelativeWeek;
- parameters["param"] = repeat;
- }
- }
- } else {
- label_key = "cadence_yearly_label";
- }
- } else if (scheduleInfo.type === "yearlyAbsolute" || scheduleInfo.type === "yearlyAbsoluteWithIntradayRecurrence") {
- if (typeof scheduleInfo.yearlyAbsolute !== 'undefined') {
- parameters['day'] = scheduleInfo.yearlyAbsolute.yearlyAbsoluteDay;
- parameters['month'] = t.translate("schedule_month_short_" + scheduleInfo.yearlyAbsolute.yearlyAbsoluteMonth +"_label");
-
- var repeat = parseInt(scheduleInfo.everyNPeriods, 10);
- if (repeat == 1) {
- if ( hasIntraday ) {
- label_key = "cadence_yearly_absolute_daily_repeat";
- }else {
- label_key = "cadence_yearly_absolute";
- }
- } else {
- if ( hasIntraday ) {
- label_key = "cadence_yearly_absolute_repeat_daily_repeat";
- parameters["param"] = repeat;
- }else {
- label_key = "cadence_yearly_absolute_repeat";
- parameters["param"] = repeat;
- }
- }
- } else {
- label_key = "cadence_yearly_label";
- }
-
-
- } else if (scheduleInfo.type === "trigger") {
- if (typeof scheduleInfo.trigger !== 'undefined') {
- parameters['triggerName'] = scheduleInfo.trigger.triggerName;
-
- label_key = "cadence_trigger_name_label";
-
- } else {
- label_key = "";
- }
-
-
- }
- var cadence = "";
- if(label_key != "") {
- cadence = t.translate(label_key, parameters);
- }
- return cadence;
- };
-
-
- return cadenceLabelGenerator;
- });
|