Created
October 17, 2016 21:21
-
-
Save evaldeslacasa/55f5ddf8658e83505aebf23a3f73f15b to your computer and use it in GitHub Desktop.
AUI Script in edit_calendar_booking.jsp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <aui:script> | |
| function <portlet:namespace />filterCalendarBookings(calendarBooking) { | |
| return <%= calendarBookingId %> !== calendarBooking.calendarBookingId; | |
| } | |
| function <portlet:namespace />getSuggestionsContent() { | |
| return document.<portlet:namespace />fm.<portlet:namespace />title.value + ' ' + window.<portlet:namespace />description.getHTML(); | |
| } | |
| function <portlet:namespace />resolver(data) { | |
| var A = AUI(); | |
| var answers = data.answers; | |
| if (!answers.cancel) { | |
| A.one('#<portlet:namespace />allFollowing').val(!!answers.allFollowing); | |
| A.one('#<portlet:namespace />updateCalendarBookingInstance').val(!!answers.updateInstance); | |
| submitForm(document.<portlet:namespace />fm); | |
| } | |
| } | |
| Liferay.provide( | |
| window, | |
| '<portlet:namespace />updateCalendarBooking', | |
| function() { | |
| var A = AUI(); | |
| <c:if test="<%= invitable %>"> | |
| var calendarId = A.one('#<portlet:namespace />calendarId').val(); | |
| var childCalendarIds = A.Object.keys(Liferay.CalendarUtil.availableCalendars); | |
| A.Array.remove(childCalendarIds, A.Array.indexOf(childCalendarIds, calendarId)); | |
| A.one('#<portlet:namespace />childCalendarIds').val(childCalendarIds.join(',')); | |
| </c:if> | |
| Liferay.CalendarMessageUtil.promptSchedulerEventUpdate( | |
| { | |
| calendarName: '<%= HtmlUtil.escapeJS(calendar.getName(locale)) %>', | |
| hasChild: <%= hasChildCalendarBookings %>, | |
| masterBooking: <%= masterBooking %>, | |
| recurring: <%= recurring %>, | |
| resolver: <portlet:namespace />resolver | |
| } | |
| ); | |
| }, | |
| ['liferay-calendar-message-util', 'json'] | |
| ); | |
| Liferay.Util.focusFormField(document.<portlet:namespace />fm.<portlet:namespace />title); | |
| <% | |
| String titleCurrentValue = ParamUtil.getString(request, "titleCurrentValue"); | |
| %> | |
| <c:if test="<%= Validator.isNotNull(titleCurrentValue) && (calendarBooking == null || !Validator.equals(titleCurrentValue, calendarBooking.getTitle(locale))) %>"> | |
| document.<portlet:namespace />fm.<portlet:namespace />title.value = '<%= HtmlUtil.escapeJS(titleCurrentValue) %>'; | |
| document.<portlet:namespace />fm.<portlet:namespace />title_<%= themeDisplay.getLanguageId() %>.value = '<%= HtmlUtil.escapeJS(titleCurrentValue) %>'; | |
| </c:if> | |
| </aui:script> | |
| <aui:script use="liferay-calendar-interval-selector"> | |
| new Liferay.IntervalSelector( | |
| { | |
| containerId: 'meetingEventDate', | |
| endDatePickerName: 'endTime', | |
| endTimePickerName: 'endTimeTime', | |
| namespace: '<portlet:namespace/>', | |
| startDatePickerName: 'startTime', | |
| startTimePickerName: 'startTimeTime', | |
| submitButtonId: 'submit' | |
| } | |
| ); | |
| </aui:script> | |
| <aui:script use="json,liferay-calendar-date-picker-util,liferay-calendar-list,liferay-calendar-recurrence-util,liferay-calendar-reminders,liferay-calendar-simple-menu"> | |
| var defaultCalendarId = <%= calendarId %>; | |
| var scheduler = window.<portlet:namespace />scheduler; | |
| var removeCalendarResource = function(calendarList, calendar, menu) { | |
| calendarList.remove(calendar); | |
| if (menu) { | |
| menu.hide(); | |
| } | |
| } | |
| var syncCalendarsMap = function() { | |
| Liferay.CalendarUtil.syncCalendarsMap( | |
| [ | |
| window.<portlet:namespace />calendarListAccepted, | |
| <c:if test="<%= calendarBooking != null %>"> | |
| window.<portlet:namespace />calendarListDeclined, | |
| window.<portlet:namespace />calendarListMaybe, | |
| </c:if> | |
| window.<portlet:namespace />calendarListPending | |
| ] | |
| ); | |
| A.each( | |
| Liferay.CalendarUtil.availableCalendars, | |
| function(item, index) { | |
| item.set('disabled', true); | |
| } | |
| ); | |
| } | |
| window.<portlet:namespace />toggler = new A.Toggler( | |
| { | |
| after: { | |
| expandedChange: function(event) { | |
| if (event.newVal) { | |
| var activeView = scheduler.get('activeView'); | |
| activeView._fillHeight(); | |
| } | |
| } | |
| }, | |
| animated: true, | |
| content: '#<portlet:namespace />schedulerContainer', | |
| expanded: false, | |
| header: '#<portlet:namespace />checkAvailability' | |
| } | |
| ); | |
| var calendarsMenu = { | |
| items: [ | |
| { | |
| caption: '<%= UnicodeLanguageUtil.get(pageContext, "check-availability") %>', | |
| fn: function(event) { | |
| var instance = this; | |
| A.each( | |
| Liferay.CalendarUtil.availableCalendars, | |
| function(item, index) { | |
| item.set('visible', false); | |
| } | |
| ); | |
| var calendarList = instance.get('host'); | |
| calendarList.activeItem.set('visible', true); | |
| <portlet:namespace />toggler.expand(); | |
| instance.hide(); | |
| return false; | |
| }, | |
| id: 'check-availability' | |
| } | |
| <c:if test="<%= invitable %>"> | |
| ,{ | |
| caption: '<%= UnicodeLanguageUtil.get(pageContext, "remove") %>', | |
| fn: function(event) { | |
| var instance = this; | |
| var calendarList = instance.get('host'); | |
| removeCalendarResource(calendarList, calendarList.activeItem, instance); | |
| }, | |
| id: 'remove' | |
| } | |
| </c:if> | |
| ], | |
| <c:if test="<%= invitable %>"> | |
| on: { | |
| visibleChange: function(event) { | |
| var instance = this; | |
| if (event.newVal) { | |
| var calendarList = instance.get('host'); | |
| var calendar = calendarList.activeItem; | |
| var hiddenItems = []; | |
| if (calendar.get('calendarId') === defaultCalendarId) { | |
| hiddenItems.push('remove'); | |
| } | |
| instance.set('hiddenItems', hiddenItems); | |
| } | |
| } | |
| } | |
| </c:if> | |
| } | |
| window.<portlet:namespace />calendarListPending = new Liferay.CalendarList( | |
| { | |
| after: { | |
| calendarsChange: function(event) { | |
| var instance = this; | |
| A.one('#<portlet:namespace />pendingCounter').html(event.newVal.length); | |
| syncCalendarsMap(); | |
| scheduler.load(); | |
| }, | |
| 'scheduler-calendar:visibleChange': syncCalendarsMap | |
| }, | |
| boundingBox: '#<portlet:namespace />calendarListPending', | |
| calendars: <%= pendingCalendarsJSONArray %>, | |
| scheduler: <portlet:namespace />scheduler, | |
| simpleMenu: calendarsMenu, | |
| strings: { | |
| emptyMessage: '<liferay-ui:message key="no-pending-invites" />' | |
| } | |
| } | |
| ).render(); | |
| window.<portlet:namespace />calendarListAccepted = new Liferay.CalendarList( | |
| { | |
| after: { | |
| calendarsChange: function(event) { | |
| var instance = this; | |
| A.one('#<portlet:namespace />acceptedCounter').html(event.newVal.length); | |
| syncCalendarsMap(); | |
| scheduler.load(); | |
| }, | |
| 'scheduler-calendar:visibleChange': syncCalendarsMap | |
| }, | |
| boundingBox: '#<portlet:namespace />calendarListAccepted', | |
| calendars: <%= acceptedCalendarsJSONArray %>, | |
| scheduler: <portlet:namespace />scheduler, | |
| simpleMenu: calendarsMenu, | |
| strings: { | |
| emptyMessage: '<liferay-ui:message key="no-accepted-invites" />' | |
| } | |
| } | |
| ).render(); | |
| <c:if test="<%= calendarBooking != null %>"> | |
| window.<portlet:namespace />calendarListDeclined = new Liferay.CalendarList( | |
| { | |
| after: { | |
| calendarsChange: function(event) { | |
| var instance = this; | |
| A.one('#<portlet:namespace />declinedCounter').html(event.newVal.length); | |
| syncCalendarsMap(); | |
| scheduler.load(); | |
| }, | |
| 'scheduler-calendar:visibleChange': syncCalendarsMap | |
| }, | |
| boundingBox: '#<portlet:namespace />calendarListDeclined', | |
| calendars: <%= declinedCalendarsJSONArray %>, | |
| scheduler: <portlet:namespace />scheduler, | |
| simpleMenu: calendarsMenu, | |
| strings: { | |
| emptyMessage: '<liferay-ui:message key="no-declined-invites" />' | |
| } | |
| } | |
| ).render(); | |
| window.<portlet:namespace />calendarListMaybe = new Liferay.CalendarList( | |
| { | |
| after: { | |
| calendarsChange: function(event) { | |
| var instance = this; | |
| A.one('#<portlet:namespace />maybeCounter').html(event.newVal.length); | |
| syncCalendarsMap(); | |
| scheduler.load(); | |
| }, | |
| 'scheduler-calendar:visibleChange': syncCalendarsMap | |
| }, | |
| boundingBox: '#<portlet:namespace />calendarListMaybe', | |
| calendars: <%= maybeCalendarsJSONArray %>, | |
| scheduler: <portlet:namespace />scheduler, | |
| simpleMenu: calendarsMenu, | |
| strings: { | |
| emptyMessage: '<liferay-ui:message key="no-outstanding-invites" />' | |
| } | |
| } | |
| ).render(); | |
| </c:if> | |
| syncCalendarsMap(); | |
| var formNode = A.one(document.<portlet:namespace />fm); | |
| window.<portlet:namespace />placeholderSchedulerEvent = new Liferay.SchedulerEvent( | |
| { | |
| after: { | |
| endDateChange: function(event) { | |
| Liferay.DatePickerUtil.syncUI(formNode, 'endTime', event.newVal); | |
| }, | |
| startDateChange: function(event) { | |
| Liferay.DatePickerUtil.syncUI(formNode, 'startTime', event.newVal); | |
| } | |
| }, | |
| borderColor: '#000', | |
| borderStyle: 'dashed', | |
| borderWidth: '2px', | |
| color: '#F8F8F8', | |
| content: ' ', | |
| editingEvent: true, | |
| endDate: Liferay.CalendarUtil.toLocalTime(new Date(<%= endTime %>)), | |
| on: { | |
| endDateChange: function(event) { | |
| event.stopPropagation(); | |
| }, | |
| startDateChange: function(event) { | |
| event.stopPropagation(); | |
| } | |
| }, | |
| preventDateChange: true, | |
| scheduler: scheduler, | |
| startDate: Liferay.CalendarUtil.toLocalTime(new Date(<%= startTime %>)) | |
| } | |
| ); | |
| Liferay.DatePickerUtil.linkToSchedulerEvent('#<portlet:namespace />endDateContainer', window.<portlet:namespace />placeholderSchedulerEvent, 'endTime'); | |
| Liferay.DatePickerUtil.linkToSchedulerEvent('#<portlet:namespace />startDateContainer', window.<portlet:namespace />placeholderSchedulerEvent, 'startTime'); | |
| scheduler.after( | |
| '*:load', | |
| function(event) { | |
| scheduler.addEvents(window.<portlet:namespace />placeholderSchedulerEvent); | |
| scheduler.syncEventsUI(); | |
| } | |
| ); | |
| <c:if test="<%= invitable %>"> | |
| var manageableCalendars = {}; | |
| A.Array.each( | |
| <%= CalendarUtil.toCalendarsJSONArray(themeDisplay, manageableCalendars) %>, | |
| function(item, index) { | |
| manageableCalendars[item.calendarId] = item; | |
| } | |
| ); | |
| A.one('#<portlet:namespace />calendarId').on( | |
| 'change', | |
| function(event) { | |
| var calendarId = parseInt(event.target.val(), 10); | |
| var calendar = manageableCalendars[calendarId]; | |
| A.Array.each( | |
| [ | |
| <portlet:namespace />calendarListAccepted, | |
| <c:if test="<%= calendarBooking != null %>"> | |
| <portlet:namespace />calendarListDeclined, <portlet:namespace />calendarListMaybe, | |
| </c:if> | |
| <portlet:namespace />calendarListPending | |
| ], | |
| function(calendarList) { | |
| calendarList.remove(calendarList.getCalendar(calendarId)); | |
| calendarList.remove(calendarList.getCalendar(defaultCalendarId)); | |
| } | |
| ); | |
| <portlet:namespace />calendarListPending.add(calendar); | |
| defaultCalendarId = calendarId; | |
| } | |
| ); | |
| var inviteResourcesInput = A.one('#<portlet:namespace />inviteResource'); | |
| <liferay-portlet:resourceURL copyCurrentRenderParameters="<%= false %>" id="calendarResources" var="calendarResourcesURL"></liferay-portlet:resourceURL> | |
| Liferay.CalendarUtil.createCalendarsAutoComplete( | |
| '<%= calendarResourcesURL %>', | |
| inviteResourcesInput, | |
| function(event) { | |
| var calendar = event.result.raw; | |
| calendar.disabled = true; | |
| <portlet:namespace />calendarListPending.add(calendar); | |
| inviteResourcesInput.val(''); | |
| } | |
| ); | |
| </c:if> | |
| window.<portlet:namespace />reminders = new Liferay.Reminders( | |
| { | |
| portletNamespace: '<portlet:namespace />', | |
| render: '#<portlet:namespace />reminders', | |
| values: [ | |
| { | |
| interval: <%= firstReminder %>, | |
| type: '<%= HtmlUtil.escapeJS(firstReminderType) %>' | |
| }, | |
| { | |
| interval: <%= secondReminder %>, | |
| type: '<%= HtmlUtil.escapeJS(secondReminderType) %>' | |
| } | |
| ] | |
| } | |
| ); | |
| var allDayCheckbox = A.one('#<portlet:namespace />allDayCheckbox'); | |
| allDayCheckbox.after( | |
| 'click', | |
| function() { | |
| var endDateContainer = A.one('#<portlet:namespace />endDateContainer'); | |
| var startDateContainer = A.one('#<portlet:namespace />startDateContainer'); | |
| var checked = allDayCheckbox.get('checked'); | |
| if (checked) { | |
| window.<portlet:namespace />placeholderSchedulerEvent.set('allDay', true); | |
| } | |
| else { | |
| window.<portlet:namespace />placeholderSchedulerEvent.set('allDay', false); | |
| endDateContainer.show(); | |
| } | |
| endDateContainer.toggleClass('allday-class-active', checked); | |
| startDateContainer.toggleClass('allday-class-active', checked); | |
| scheduler.syncEventsUI(); | |
| } | |
| ); | |
| scheduler.load(); | |
| </aui:script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment