public static function DialogSettings($Params) { $id = $Params['id']; $arTabs = array(array('name' => GetMessage('EC_SET_TAB_PERSONAL'), 'title' => GetMessage('EC_SET_TAB_PERSONAL_TITLE'), 'id' => $id . "set-tab-0"), array('name' => GetMessage('EC_SET_TAB_BASE'), 'title' => GetMessage('EC_SET_TAB_BASE_TITLE'), 'id' => $id . "set-tab-1", 'show' => CCalendarType::CanDo('calendar_type_access', $Params['type'])), array('name' => GetMessage('EC_SECT_ACCESS_TAB'), 'title' => GetMessage('EC_SECT_ACCESS_TAB'), 'id' => $id . "set-tab-2", 'show' => CCalendarType::CanDo('calendar_type_access', $Params['type']))); $arDays = self::GetWeekDays(); $arWorTimeList = array(); for ($i = 0; $i < 24; $i++) { $arWorTimeList[strval($i)] = CCalendar::FormatTime($i, 0); $arWorTimeList[strval($i) . '.30'] = CCalendar::FormatTime($i, 30); } $timezoneList = CCalendar::GetTimezoneList(); $bInPersonal = $Params['inPersonalCalendar']; ?> <div id="bxec_uset_<?php echo $id; ?> " class="bxec-popup"> <div style="width: 500px; height: 1px;"></div> <div class="bxec-d-tabs" id="<?php echo $id; ?> _set_tabs"> <?php foreach ($arTabs as $tab) { ?> <div class="bxec-d-tab <?php if ($tab['active']) { echo 'bxec-d-tab-act'; } ?> " title="<?php echo isset($tab['title']) ? $tab['title'] : $tab['name']; ?> " id="<?php echo $tab['id']; ?> " <?php if ($tab['show'] === false) { echo 'style="display:none;"'; } ?> > <b></b><div><span><?php echo $tab['name']; ?> </span></div><i></i> </div> <?php } ?> </div> <div class="bxec-d-cont" id="<?php echo $id; ?> _set_tabcont"> <?php /* ####### TAB 0 : PERSONAL ####### */ ?> <div id="<?php echo $id; ?> set-tab-0-cont" class="bxec-d-cont-div" style="display: block;"> <!-- default meeting calendar --> <?php if ($bInPersonal) { ?> <div class="bxec-popup-row"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> _set_tz_sel"><?php echo GetMessage('EC_TIMEZONE'); ?> :</label></span> <span class="bxec-field-val-2"> <select id="<?php echo $id; ?> _set_tz_sel" style="max-width: 235px;"> <option value=""> - </option> <?php foreach ($timezoneList as $tz) { ?> <option value="<?php echo $tz['timezone_id']; ?> "><?php echo htmlspecialcharsEx($tz['title']); ?> </option> <?php } ?> </select> </span> </div> <div class="bxec-popup-row"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> _uset_calend_sel"><?php echo GetMessage('EC_ADV_MEETING_CAL'); ?> :</label></span> <span class="bxec-field-val-2"> <select id="<?php echo $id; ?> _set_sect_sel"></select> </span> </div> <!-- blinking option --> <div class="bxec-popup-row"> <span class="bxec-field-label-1"><input id="<?php echo $id; ?> _uset_blink" type="checkbox" /></span> <span class="bxec-field-val-2"> <label for="<?php echo $id; ?> _uset_blink"><?php echo GetMessage('EC_BLINK_SET'); ?> </label> </span> </div> <!-- show banner --> <div class="bxec-popup-row"> <span class="bxec-field-label-1"><input id="<?php echo $id; ?> _show_banner" type="checkbox" /></span> <span class="bxec-field-val-2"> <label for="<?php echo $id; ?> _show_banner"><?php echo GetMessage('EC_SHOW_BANNER', array('#DAV_EXAMPLE#' => CCalendar::IsBitrix24() ? 'CalDAV, MS Outlook' : 'Exchange, CalDAV, MS Outlook')); ?> </label> </span> </div> <!-- show declined --> <div class="bxec-popup-row"> <span class="bxec-field-label-1"><input id="<?php echo $id; ?> _show_declined" type="checkbox" /></span> <span class="bxec-field-val-2"> <label for="<?php echo $id; ?> _show_declined"><?php echo GetMessage('EC_OPTION_SHOW_DECLINED'); ?> </label> </span> </div> <?php } /*if($bInPersonal)*/ ?> <!-- show declined --> <div class="bxec-popup-row"> <span class="bxec-field-label-1"><input id="<?php echo $id; ?> _show_muted" type="checkbox" /></span> <span class="bxec-field-val-2"> <label for="<?php echo $id; ?> _show_muted"><?php echo GetMessage('EC_OPTION_SHOW_MUTED'); ?> </label> </span> </div> <?php if ($Params['bShowSuperpose']) { ?> <div class="bxec-popup-row"> <a id="<?php echo $id; ?> -set-manage-sp" href="javascript:void(0);" title="<?php echo GetMessage('EC_MANAGE_SP_CALENDARS_TITLE'); ?> "><?php echo GetMessage('EC_MANAGE_SP_CALENDARS'); ?> </a> </div> <?php } ?> <?php if ($Params['bCalDAV'] && $bInPersonal) { ?> <div class="bxec-popup-row"> <a id="<?php echo $id; ?> _manage_caldav" href="javascript:void(0);" title="<?php echo GetMessage('EC_MANAGE_CALDAV_TITLE'); ?> "><?php echo GetMessage('EC_MANAGE_CALDAV'); ?> </a> </div> <?php } ?> <div class="bxec-popup-row"> <a id="<?php echo $id; ?> _uset_clear" href="javascript:void(0);"><?php echo GetMessage('EC_CLEAR_PERS_SETTINGS'); ?> </a> </div> </div> <?php /* ####### END TAB 0 ####### */ ?> <?php /* ####### TAB 1 : CALENDAR SETTINGS ####### */ ?> <div id="<?php echo $id; ?> set-tab-1-cont" class="bxec-d-cont-div"> <!-- Work time --> <div class="bxec-popup-row"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> work_time_start"><?php echo GetMessage("EC_WORK_TIME"); ?> :</label></span> <span class="bxec-field-val-2"> <select id="<?php echo $id; ?> work_time_start"> <?php foreach ($arWorTimeList as $key => $val) { ?> <option value="<?php echo $key; ?> "><?php echo $val; ?> </option> <?php } ?> </select> — <select id="<?php echo $id; ?> work_time_end"> <?php foreach ($arWorTimeList as $key => $val) { ?> <option value="<?php echo $key; ?> "><?php echo $val; ?> </option> <?php } ?> </select> </span> </div> <!-- Week holidays --> <div class="bxec-popup-row"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> week_holidays"><?php echo GetMessage('EC_WEEK_HOLIDAYS'); ?> :</label></span> <span class="bxec-field-val-2"> <select size="7" multiple=true id="<?php echo $id; ?> week_holidays"> <?php foreach ($arDays as $day) { ?> <option value="<?php echo $day[2]; ?> " ><?php echo $day[0]; ?> </option> <?php } ?> </select> </span> </div> <!-- year holidays --> <div class="bxec-popup-row"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> year_holidays"><?php echo GetMessage('EC_YEAR_HOLIDAYS'); ?> :</label></span> <span class="bxec-field-val-2"><input type="text" id="<?php echo $id; ?> year_holidays" value=""/></span> </div> <!-- year workdays --> <div class="bxec-popup-row"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> year_workdays"><?php echo GetMessage('EC_YEAR_WORKDAYS'); ?> :</label></span> <span class="bxec-field-val-2"><input type="text" id="<?php echo $id; ?> year_workdays" value=""/></span> </div> <!-- week start --> <div class="bxec-popup-row" style="display: none;"> <span class="bxec-field-label-3"><label for="<?php echo $id; ?> week_start"><?php echo GetMessage('EC_WEEK_START'); ?> :</label></span> <span class="bxec-field-val-2"> <select id="<?php echo $id; ?> week_start"> <?php foreach ($arDays as $day) { ?> <option value="<?php echo $day[2]; ?> " ><?php echo $day[0]; ?> </option> <?php } ?> </select> </span> </div> <?php if (!CCalendar::IsBitrix24()) { ?> <div class="bxec-popup-row"> <a href="/bitrix/admin/settings.php?mid=calendar&tabControl_active_tab=edit2" title="<?php echo GetMessage('EC_MANAGE_CALENDAR_TYPES_TITLE'); ?> " target="_blank"><?php echo GetMessage('EC_MANAGE_CALENDAR_TYPES'); ?> </a> </div> <div class="bxec-popup-row"> <a href="/bitrix/admin/settings.php?mid=calendar&tabControl_active_tab=edit1" title="<?php echo GetMessage('EC_MANAGE_SETTING_TITLE'); ?> " target="_blank"><?php echo GetMessage('EC_MANAGE_SETTING'); ?> </a> </div> <?php } ?> </div> <?php /* ####### END TAB 1 ####### */ ?> <?php /* ####### TAB 2 : PERMISSIONS ####### */ ?> <div id="<?php echo $id; ?> set-tab-2-cont" class="bxec-d-cont-div"> <div class="bxec-popup-row"> <div class="bxec-popup-row-title"><?php echo GetMessage('EC_SECT_ACCESS_TAB'); ?> </div> <div class="bxec-access-cont-row"> <div id="<?php echo $id; ?> type-access-values-cont" class="bxec-access-cont"></div> <?php self::GetAccessHTML('calendar_type'); ?> <div class="bxec-access-link-cont"><a href="javascript:void(0);" id="<?php echo $id; ?> type-access-link" class="bxec-access-link"><?php echo GetMessage('EC_T_ADD'); ?> </a></div> </div> </div> </div> <?php /* ####### END TAB 2 ####### */ ?> </div> </div> <?php }
public static function GetUserPermissionsForCalendar($calendarId, $userId) { list($sectionId, $entityType, $entityId) = $calendarId; $entityType = strtolower($entityType); if ($sectionId == 0) { $res = array('bAccess' => CCalendarType::CanDo('calendar_type_view', $entityType, $userId), 'bReadOnly' => !CCalendarType::CanDo('calendar_type_edit', $entityType, $userId)); } $bOwner = $entityType == 'user' && $entityId == $userId; $res = array('bAccess' => $bOwner || CCalendarSect::CanDo('calendar_view_time', $sectionId, $userId), 'bReadOnly' => !$bOwner && !CCalendarSect::CanDo('calendar_edit', $sectionId, $userId)); if ($res['bReadOnly'] && !$bOwner) { if (CCalendarSect::CanDo('calendar_view_time', $sectionId, $userId)) { $res['privateStatus'] = 'time'; } if (CCalendarSect::CanDo('calendar_view_title', $sectionId, $userId)) { $res['privateStatus'] = 'title'; } } return $res; }
public static function SectionAdd($arParams = array(), $nav = null, $server = null) { $userId = CCalendar::GetCurUserId(); $methodName = "calendar.section.add"; $DEFAULT_COLOR = '#E6A469'; $DEFAULT_TEXT_COLOR = '#000000'; if (isset($arParams['type'])) { $type = $arParams['type']; } else { throw new Exception(GetMessage('CAL_REST_PARAM_EXCEPTION', array('#REST_METHOD#' => $methodName, '#PARAM_NAME#' => 'type'))); } if (isset($arParams['ownerId'])) { $ownerId = intval($arParams['ownerId']); } elseif ($type == 'user') { $ownerId = $userId; } else { throw new Exception(GetMessage('CAL_REST_PARAM_EXCEPTION', array('#REST_METHOD#' => $methodName, '#PARAM_NAME#' => 'ownerId'))); } $perm = CCalendar::GetPermissions(array('type' => $type, 'ownerId' => $ownerId, 'userId' => $userId, 'setProperties' => false)); if ($type == 'group' || $type == 'user') { if (!$perm['section_edit']) { throw new Exception(GetMessage('CAL_REST_ACCESS_DENIED')); } } else { if (!CCalendarType::CanDo('calendar_type_edit_section')) { throw new Exception(GetMessage('CAL_REST_ACCESS_DENIED')); } } $arFields = array('CAL_TYPE' => $type, 'OWNER_ID' => $ownerId, 'NAME' => isset($arParams['name']) && trim($arParams['name']) != '' ? trim($arParams['name']) : '', 'DESCRIPTION' => isset($arParams['description']) && trim($arParams['description']) != '' ? trim($arParams['description']) : ''); if (isset($arParams['export']) && isset($arParams['export']['ALLOW']) && isset($arParams['export']['SET'])) { $arFields['EXPORT'] = array('ALLOW' => !!$arParams['export']['ALLOW'], 'SET' => $arParams['export']['SET']); } if (isset($arParams['color'])) { $arFields['COLOR'] = CCalendar::Color($arParams['color'], $DEFAULT_COLOR); } else { $arFields['COLOR'] = $DEFAULT_COLOR; } if (isset($arParams['text_color'])) { $arFields['TEXT_COLOR'] = CCalendar::Color($arParams['text_color'], $DEFAULT_TEXT_COLOR); } else { $arFields['TEXT_COLOR'] = $DEFAULT_TEXT_COLOR; } if (isset($arParams['access']) && is_array($arParams['access'])) { $arFields['ACCESS'] = $arParams['access']; } $id = CCalendar::SaveSection(array('bAffectToDav' => false, 'arFields' => $arFields)); if (!$id) { throw new Exception(GetMessage('CAL_REST_SECTION_NEW_ERROR')); } CCalendarSect::SetClearOperationCache(true); return $id; }