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>
				&mdash;
				<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 
    }
Beispiel #2
0
 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;
 }