Name

sn_change_cab.CABMeetingAjax

Description

No description available

Script

var CABMeetingAjax = Class.create();
CABMeetingAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
  createSpan: function() {
  	var start = this.getParameter('sysparm_start');
  	var end = this.getParameter('sysparm_end');
  	var meetingId = this.getParameter('sysparm_meeting');

  	if (!meetingId || !start || !end)
  		return;

  	var startGdt = new GlideDateTime();
  	startGdt.setDisplayValue(start);
  	var endGdt = new GlideDateTime();
  	endGdt.setDisplayValue(end);

  	if (!startGdt.isValid() || !endGdt.isValid())
  		return;

  	var meetingGr = new GlideRecordSecure('cab_meeting');
  	if (meetingGr.get(meetingId)) {
  		var cabDefinition = new CABDefinition(meetingGr.cab_definition.getRefRecord());
  		if (!cabDefinition.getGlideRecord().canWrite())
  			return;

  		// Check if this meeting already has an exclude span and if there is one remove it
  		if (!meetingGr.cmn_schedule_span_exclude.nil()) {
  			var spanGr = meetingGr.cmn_schedule_span_exclude.getRefRecord();
  			if (!spanGr.canDelete())
  				return;

  			spanGr.deleteRecord();
  		}

  		var spanId = cabDefinition.createNewSpan(startGdt, endGdt, 'exclude', meetingGr.getValue('name'));
  		if (!spanId)
  			return;

  		meetingGr.setValue('cmn_schedule_span_exclude', spanId);
  		meetingGr.update();
  	}

  	return;
  },

  getPortalURL: function() {
  	var meetingId = this.getParameter('sysparm_meeting');
  	if (!meetingId)
  		return null;
  	
  	var cabMeetingGr = new GlideRecordSecure(CAB.MEETING);
  	if (!cabMeetingGr.get(meetingId))
  		return null;
  	
  	return new CABMeeting(cabMeetingGr).getPortalURL();
  },
  
  orderAgenda: function() {
  	var orderBy = this.getParameter('sysparm_orderby');	
  	var meetingId = this.getParameter('sysparm_meeting');
  	var orderIndex = 0;
  	
  	var agendaItemGr = new GlideRecordSecure(CAB.AGENDA_ITEM);
  	agendaItemGr.addQuery('cab_meeting', meetingId);
  	agendaItemGr.addEncodedQuery(orderBy);
  	
  	agendaItemGr.query();
  	while (agendaItemGr.next()) {
  		agendaItemGr.setValue('order', orderIndex+=10);
  		agendaItemGr.update();
  	}
  },
  
  type: 'CABMeetingAjax'
});

Sys ID

8aa7483ed7331200d105ef637e61030b

Offical Documentation

Official Docs: