public function ScheduleNowForm() { $db =& $this->db; $user =& $this->user; $response = new ResponseManager(); $date = time(); // We might have a layout id, or a display id $campaignId = Kit::GetParam('CampaignID', _GET, _INT, 0); $displayGroupIds = Kit::GetParam('displayGroupId', _GET, _ARRAY); Theme::Set('form_id', 'ScheduleNowForm'); Theme::Set('form_action', 'index.php?p=schedule&q=ScheduleNow'); $formFields = array(); // Generate a list of layouts. $layouts = $user->CampaignList(NULL, false, false); $optionGroups = array(array('id' => 'campaign', 'label' => __('Campaigns')), array('id' => 'layout', 'label' => __('Layouts'))); $layoutOptions = array(); $campaignOptions = array(); foreach ($layouts as $layout) { if ($layout['islayoutspecific'] == 1) { $layoutOptions[] = array('id' => $layout['campaignid'], 'value' => $layout['campaign']); } else { $campaignOptions[] = array('id' => $layout['campaignid'], 'value' => $layout['campaign']); } } $formFields[] = FormManager::AddCombo('CampaignID', __('Layout'), $campaignId, array('campaign' => $campaignOptions, 'layout' => $layoutOptions), 'id', 'value', __('Please select a Layout or Campaign for this Event to show'), 'l', '', true, '', '', '', $optionGroups); $formFields[] = FormManager::AddText('hours', __('Hours'), NULL, __('Hours this event should be scheduled for'), 'h', ''); $formFields[] = FormManager::AddText('minutes', __('Minutes'), NULL, __('Minutes this event should be scheduled for'), 'h', ''); $formFields[] = FormManager::AddText('seconds', __('Seconds'), NULL, __('Seconds this event should be scheduled for'), 'h', ''); // List of Display Groups $optionGroups = array(array('id' => 'group', 'label' => __('Groups')), array('id' => 'display', 'label' => __('Displays'))); $groups = array(); $displays = array(); $scheduleWithView = Config::GetSetting('SCHEDULE_WITH_VIEW_PERMISSION') == 'Yes'; foreach ($this->user->DisplayGroupList(-1) as $display) { // Can schedule with view, but no view permissions if ($scheduleWithView && $display['view'] != 1) { continue; } // Can't schedule with view, but no edit permissions if (!$scheduleWithView && $display['edit'] != 1) { continue; } $display['checked_text'] = in_array($display['displaygroupid'], $displayGroupIds) ? ' selected' : ''; if ($display['isdisplayspecific'] == 1) { $displays[] = $display; } else { $groups[] = $display; } } $formFields[] = FormManager::AddMultiCombo('DisplayGroupIDs[]', __('Display'), $displayGroupIds, array('group' => $groups, 'display' => $displays), 'displaygroupid', 'displaygroup', __('Please select one or more displays / groups for this event to be shown on.'), 'd', '', true, '', '', '', $optionGroups, array(array('name' => 'data-live-search', 'value' => "true"), array('name' => 'data-selected-text-format', 'value' => "count > 4"))); $formFields[] = FormManager::AddNumber('DisplayOrder', __('Display Order'), 0, __('Should this event have an order?'), 'o', ''); $formFields[] = FormManager::AddCheckbox('is_priority', __('Priority?'), NULL, __('Sets whether or not this event has priority. If set the event will be show in preference to other events.'), 'p'); Theme::Set('form_fields', $formFields); $response->SetFormRequestResponse(NULL, __('Schedule Now'), '700px', '400px'); $response->callBack = 'setupScheduleNowForm'; $response->AddButton(__('Help'), "XiboHelpRender('index.php?p=help&q=Display&Topic=Schedule&Category=ScheduleNow')"); $response->AddButton(__('Cancel'), 'XiboDialogClose()'); $response->AddButton(__('Save'), '$("#ScheduleNowForm").submit()'); $response->Respond(); }