// ----------------------------------------------------------- // hdfCalendarArea: // ----------------------------------------------------------- function hdfCalendarArea(registry) { hdfCalBannerMenu(registry); return; } // ----------------------------------------------------------- // hdfCalBannerMenu: // ----------------------------------------------------------- function hdfCalBannerMenu(registry) { var urlString = hugmarSettings.host.wrkfolder + '/OUT/HWEBV2AMF_Calendar.json'; if (registry.byId("hdmBannerDebug").checked) { console.log("...hdfCalBannerMenu urlString: ", urlString); } require(["dojo/ready", "dojo/_base/xhr", "dojo/dom","dojo/domReady!"], function(ready, xhr, dom){ dojo.xhrGet({ url: urlString, load: function(response, ioArgs) { hdfCalBannerMenuRsp(registry, response); return response; }, error: function(response, ioArgs) { console.log("hdfCalBannerMenu faild xhrGet", response, ioArgs); /* handle the error */ return response; } }); }); return; } // ----------------------------------------------------------- // hdfCalBannerMenuRsp: // ----------------------------------------------------------- function hdfCalBannerMenuRsp(registry, response) { require(["dojo/ready", "dojo/_base/json", "dijit/Menu", "dijit/MenuItem", "dijit/form/DropDownButton", "dijit/form/DateTextBox", "dojo/date/stamp", "dojo/date/locale", "dojo/dom"], function(ready, dojo, Menu, MenuItem, DropDownButton, DateTextBox, stamp, locale, dom){ var calMenuData = dojo.fromJson(response); if (registry.byId("hdmBannerDebug").checked) { console.log("...hdfCalBannerMenuRsp calMenuData: ", calMenuData); } var bannerCalMenu = new Menu({style: "display: none;"}); var count = calMenuData.period.length; for (var i = 0; i < count; i++) { bannerCalMenu.addChild(new MenuItem({ jsId: calMenuData.period[i].name, label: calMenuData.period[i].title, onClick: function(evt) { var menuNode = registry.getEnclosingWidget(evt.target); hdfCalBannerMenuGo(registry, menuNode.jsId); return; } })); } var div = document.createElement("div"); div.appendChild(document.createTextNode("Periods")); var periodButton = new DropDownButton({ label: "Periods", iconClass: "gif44", dropDown: bannerCalMenu, title: "Calendar Periods"}, div); periodButton.domNode.id = "hdmBannerPeriods"; registry.byId("hdmBannerToolbar").addChild(periodButton); hdfCalBannerPerTypes(registry, dom, Menu, MenuItem, DropDownButton); hdfCalBannerDates(registry, dom); //hdfCalBannerFromDate(registry, dom, DateTextBox, stamp, locale); //hdfCalBannerToDate (registry, dom, DateTextBox, stamp, locale); }); return; } // ----------------------------------------------------------- // hdfCalBannerMenuGo: // ----------------------------------------------------------- function hdfCalBannerMenuGo(registry, period) { // registry.byId("hdmAccStandby").show(); var jsCaller = "hdfCalBannerMenuGo"; var jsonObj = hdfTopToolSetJsonObj(jsCaller,"v2Calendar", "Banner_Calendar"); jsonObj.procparm = period; require(["dojo/ready", "dojo/_base/json"], function(ready, dojo){ var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + dojo.toJson(jsonObj); hdfiServerGet(jsCaller, jsonUrl); }); return; } // ----------------------------------------------------------- // // ----------------------------------------------------------- function hdfCalBannerMenuGoRsp(registry, response) { hugmarSettings.host.datefrom = response.datefrom; hugmarSettings.host.dateto = response.dateto; hugmarSettings.host.pertype = response.pertype; require(["dojo/ready", "dojo/date/stamp"], function(ready, stamp){ var dateFrom = stamp.fromISOString(hugmarSettings.host.datefrom); registry.byId("hdmBannerFromDate").set('value', dateFrom); var dateTo = stamp.fromISOString(hugmarSettings.host.dateto); registry.byId("hdmBannerToDate").set('value', dateTo); }); return; } // ----------------------------------------------------------- // hdfCalBannerPerTypes: // ----------------------------------------------------------- function hdfCalBannerPerTypes(registry, dom, Menu, MenuItem, DropDownButton) { // Refresh DropDownButton var buttonExists = dijit.byId("hdmCalendarTypeButton"); if (registry.byId("hdmCalendarTypeButton")) { buttonExists.destroyRecursive(true); } var calTypeMenu = new Menu({style: "display: none;"}); //console.log("hdfCalBannerPerTypes calTypeMenu: ", calTypeMenu); calTypeMenu.addChild(new MenuItem({ jsId: "Week", label: "Week", onClick: function(evt) { var menuNode = registry.getEnclosingWidget(evt.target); console.log("hdfCalBannerPerTypes onClick: ", menuNode.jsId); hdfCalBannerPerTypeGo(registry, menuNode.jsId); return; } })); calTypeMenu.addChild(new MenuItem({ jsId: "Month", label: "Month", onClick: function(evt) { var menuNode = registry.getEnclosingWidget(evt.target); //console.log("hdfCalBannerPerTypes onClick: ", menuNode.jsId); hdfCalBannerPerTypeGo(registry, menuNode.jsId); return; } })); var div = document.createElement("div"); div.appendChild(document.createTextNode("PeriodTypes")); if (hugmarSettings.host.pertype == "Week") { var periodTypeButton = new DropDownButton({ id: "hdmCalPerTypeButton", label: "Week", iconClass: "gif44", dropDown: calTypeMenu, title: "Select Calendar Type"}, div); } else { var periodTypeButton = new DropDownButton({ id: "hdmCalPerTypeButton", label: "Month", iconClass: "gif44", dropDown: calTypeMenu, title: "Select Calendar Type"}, div); } periodTypeButton.domNode.id = "hdmBannerPeriodTypes"; registry.byId("hdmBannerToolbar").addChild(periodTypeButton); return; } // ----------------------------------------------------------- // hdfCalBannerPerTypeGo: // ----------------------------------------------------------- function hdfCalBannerPerTypeGo(registry, typeSelected) { registry.byId("hdmMainStandby").show(); var jsCaller = "hdfCalBannerPerTypeGo"; var jsonObj = hdfTopToolSetJsonObj(jsCaller,"v2Calendar",typeSelected); require(["dojo/ready", "dojo/_base/json"], function(ready, dojo){ var jsonUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json=" + dojo.toJson(jsonObj); hdfiServerGet(jsCaller, jsonUrl); }); return; } // ----------------------------------------------------------- // // ----------------------------------------------------------- function hdfCalBannerPerTypeGoRsp(response) { registry.byId("hdmMainStandby").hide(); console.log("...hdfCalBannerPerTypeGoRsp response: ", response); dijit.byId("hdwCalPerTypeButton").set('label', response.pertype); return; } // ----------------------------------------------------------- // hdfCalBannerDates: // ----------------------------------------------------------- function hdfCalBannerDates(registry, dom) { if (registry.byId("hdmBannerFromDate")) { registry.byId("hdmBannerFromDate").destroyRecursive(true); } if (registry.byId("hdmBannerToDate")) { registry.byId("hdmBannerToDate").destroyRecursive(true); } if (registry.byId("hdmBannerCalendarDialog")) { registry.byId("hdmBannerCalendarDialog").destroyRecursive(true); } require(["dojo/ready", "dijit/TooltipDialog", "dijit/form/DropDownButton", "dijit/form/DateTextBox", "dojo/date/stamp", "dojo/date/locale", "dojo/dom-construct"], function(ready, TooltipDialog, DropDownButton, DateTextBox, stamp, locale, domConstruct){ var calendarDialog = new TooltipDialog({ id: "hdmBannerCalendarDialog", }); calendarDialog.domNode.id = "hdmBannerCalendarDialog"; // Date From var divFrom = domConstruct.create("div", {id: "hdmBannerFromDate"}); //var divFrom = document.createElement("div"); //divFrom.appendChild(document.createTextNode("hdmBannerFromDate")); var dateFrom = stamp.fromISOString(hugmarSettings.host.datefrom); var bannerDateFrom = new DateTextBox({ value: dateFrom, label: "From Date:", id: "hdmBannerFromDate" }, divFrom); bannerDateFrom.startup(); calendarDialog.addChild(bannerDateFrom); var divFromLabel = domConstruct.create("label", {for: "hdmBannerFromDate", innerHTML: "Date From:"}); domConstruct.place(divFromLabel, bannerDateFrom.domNode, "first"); dojo.connect(bannerDateFrom, "onChange", function(date) { var isoString = stamp.toISOString(date); var fmtString = locale.format(date, {datePattern: "EEEwwyyyyMMdd"}); hdfCalBannerChangeDate(registry, "datefrom", isoString, fmtString); }); // Date To var divTo = domConstruct.create("div", {id: "hdmBannerToDate"}); //var divTo = document.createElement("div"); //divTo.appendChild(document.createTextNode("hdmBannerToDate")); var dateTo = stamp.fromISOString(hugmarSettings.host.dateto); var bannerDateTo = new DateTextBox({ value: dateTo, label: "To Date:", id: "hdmBannerToDate" }, divTo); bannerDateTo.startup(); calendarDialog.addChild(bannerDateTo); var divToLabel = domConstruct.create("label", {for: "hdmBannerToDate", innerHTML: "Date To:"}); domConstruct.place(divToLabel, bannerDateTo.domNode, "first"); dojo.connect(bannerDateTo, "onChange", function(date) { var isoString = stamp.toISOString(date); var fmtString = locale.format(date, {datePattern: "EEEwwyyyyMMdd"}); hdfCalBannerChangeDate(registry, "dateto", isoString, fmtString); }); // Calendar Button on Toolbar var div = document.createElement("div"); div.appendChild(document.createTextNode("Calendar")); var calendarButton = new DropDownButton({ label: "Calendar", iconClass: "gif44", dropDown: calendarDialog, title: "Calendar"}, div); calendarButton.domNode.id = "hdmBannerCalendar"; registry.byId("hdmBannerToolbar").addChild(calendarButton); }); return; } // ----------------------------------------------------------- // hdfCalBannerFromDate: // ----------------------------------------------------------- function x_hdfCalBannerFromDate(registry, dom, DateTextBox, stamp, locale) { console.log("...hdfCalBannerFromDate(1) registry: ", registry); // Refresh From Date var dateExists = registry.byId("hdmBannerFromDate"); if (registry.byId("hdmBannerFromDate")) { dateExists.destroyRecursive(true); } var div = document.createElement("div"); div.appendChild(document.createTextNode("hdmBannerFromDate")); var dateFrom = stamp.fromISOString(hugmarSettings.host.datefrom); var bannerDateFrom = new DateTextBox({ value: dateFrom, label: "From Date", id: "hdmBannerFromDate" }, div); bannerDateFrom.domNode.id = "hdmBannerFromDate"; console.log("...hdfCalBannerFromDate(2) registry: ", registry); bannerDateFrom.startup(); console.log("...hdfCalBannerFromDate(3) bannerDateFrom: ", bannerDateFrom); registry.byId("hdmBannerToolbar").addChild(bannerDateFrom); /* require(["dojo/on"], function(on){ var handle = on(dom.byId("hdmBannerFromDate"), "change", function(date) { alert ("x"); console.log("FromDate: ", date); var isoString = stamp.toISOString(date); var fmtString = locale.format(date, {datePattern: "EEEwwyyyyMMdd"}); hdfCalBannerChangeDate("datefrom", isoString, fmtString); }); }); */ dojo.connect(bannerDateFrom, "onChange", function(date) { var isoString = stamp.toISOString(date); var fmtString = locale.format(date, {datePattern: "EEEwwyyyyMMdd"}); hdfCalBannerChangeDate("datefrom", isoString, fmtString); }); return; } // ----------------------------------------------------------- // hdfCalBannerToDate: // ----------------------------------------------------------- function x_hdfCalBannerToDate(registry, dom, DateTextBox, stamp, locale) { // Refresh To Date var dateExists = registry.byId("hdwBannerToDate"); if (registry.byId("hdwBannerToDate")) { dateExists.destroyRecursive(true); } var div = document.createElement("div"); div.appendChild(document.createTextNode("hdmBannerToDate")); var dateTo = stamp.fromISOString(hugmarSettings.host.dateto); var bannerDateTo = new DateTextBox({ value: dateTo, label: "To", id: "hdmBannerToDate" }, div); bannerDateTo.domNode.id = "hdmBannerToDate"; //hdwBannerDateFrom.startup(); registry.byId("hdmBannerToolbar").addChild(bannerDateTo); dojo.connect(bannerDateTo, "onChange", function(date) { var isoString = stamp.toISOString(date); var fmtString = locale.format(date, {datePattern: "EEEwwyyyyMMdd"}); hdfCalBannerChangeDate(registry, "dateto", isoString, fmtString); }); return; } // ----------------------------------------------------------- // hdfCalBannerChangeDate: // ----------------------------------------------------------- function hdfCalBannerChangeDate(registry, dateType, isoString, fmtString) { isoString = isoString.substring(0, 10); if (registry.byId("hdmBannerDebug").checked) { alertString = "hdfCalBannerChangeDate" + "\n\n" + "datetype: " + dateType + "\n" + "isoString: " + isoString + "\n" + "fmtString: " + fmtString + "\n" + "hugmarSettings.host.datefrom: " + hugmarSettings.host.datefrom + "\n" + "hugmarSettings.host.dateto: " + hugmarSettings.host.dateto + "\n"; alert(alertString); } if (dateType == "datefrom") { if (fmtString.substring(0, 3) != "Sun") { var content = "
Date selected is: " + fmtString.substring(0, 3) + "
" + "
Date must be: Sunday, which is the beginning of a week" + "
"; var dateDialog = new dijit.Dialog({ title: "From Date is Invalid", style: "width: 400px", content: content}); dateDialog.show(); return; } if (isoString > hugmarSettings.host.dateto) { var content = "
Date selected is: " + isoString + "
" + "Which is greater than Date To... " + hugmarSettings.host.dateto + ""; var dateDialog = new dijit.Dialog({ title: "From Date is Invalid", style: "width: 400px", content: content}); dateDialog.show(); return; } } if (dateType == "dateto") { if (fmtString.substring(0, 3) != "Sat") { var content = "
Date selected is: " + fmtString.substring(0, 3) + "
" + "
Date must be: Saturday, which is the end of a week" + "
"; var dateDialog = new dijit.Dialog({ title: "To Date is Invalid", style: "width: 400px", content: content}); dateDialog.show(); return; } if (isoString < hugmarSettings.host.datefrom) { var content = "
Date selected is: " + isoString + "
" + "Which is less than Date From... " + hugmarSettings.host.datefrom + ""; var dateDialog = new dijit.Dialog({ title: "From Date is Invalid", style: "width: 400px", content: content}); dateDialog.show(); return; } } var dateFrom = " "; var dateTo = " "; if (dateType == "datefrom") { dateFrom = isoString; } else { dateTo = isoString; } var jsCaller = "hdfCalBannerChangeDate"; var jsonObj = hdjTopToolSetJsonObj(jsCaller,"v2Calendar", " "); jsonObj.calendar.dayname = fmtString.substring(0, 3); jsonObj.calendar.weekno = fmtString.substring(3, 2); jsonObj.calendar.datefrom = dateFrom; jsonObj.calendar.dateto = dateTo; var jsonUrl = hdjTopToolSetJsonUrl(jsonObj); var stdUrl = hugmarSettings.host.pgmdir + "/hwebhtp120.pgm?json="; hdsiServerGet(jsCaller, stdUrl+jsonUrl); return; } // ----------------------------------------------------------- // hdfCalBannerChangeDateRsp: Update Calendar Control // ----------------------------------------------------------- function hdfCalBannerChangeDateRsp(registry, response) { if (registry.byId("hdmBannerDebug").checked) { alertString = "hdfCalBannerChangeDateRsp" + "\n\n" + "response: " + response + "\n"; alert(alertString); } return; }