Merge pull request #18564 from OPEN-DSI/new-agenda-ext-enable-default
NEW can enable/disable external calendar by default
This commit is contained in:
commit
239599d1b1
@ -41,8 +41,7 @@ if (!$user->admin) {
|
||||
$langs->loadLangs(array('agenda', 'admin', 'other'));
|
||||
|
||||
$def = array();
|
||||
$actiontest = GETPOST('test', 'alpha');
|
||||
$actionsave = GETPOST('save', 'alpha');
|
||||
$action = GETPOST('action', 'alpha');
|
||||
|
||||
if (empty($conf->global->AGENDA_EXT_NB)) {
|
||||
$conf->global->AGENDA_EXT_NB = 5;
|
||||
@ -57,14 +56,57 @@ $colorlist = array('BECEDD', 'DDBECE', 'BFDDBE', 'F598B4', 'F68654', 'CBF654', '
|
||||
* Actions
|
||||
*/
|
||||
|
||||
if ($actionsave) {
|
||||
$error = 0;
|
||||
$errors = array();
|
||||
|
||||
if (preg_match('/set_(.*)/', $action, $reg)) {
|
||||
$db->begin();
|
||||
|
||||
$code = $reg[1];
|
||||
$value = (GETPOST($code) ? GETPOST($code) : 1);
|
||||
|
||||
$res = dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
$errors[] = $db->lasterror();
|
||||
}
|
||||
|
||||
if ($error) {
|
||||
$db->rollback();
|
||||
setEventMessages('', $errors, 'errors');
|
||||
} else {
|
||||
$db->commit();
|
||||
setEventMessage($langs->trans('SetupSaved'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"]);
|
||||
exit();
|
||||
}
|
||||
} elseif (preg_match('/del_(.*)/', $action, $reg)) {
|
||||
$db->begin();
|
||||
|
||||
$code = $reg[1];
|
||||
|
||||
$res = dolibarr_del_const($db, $code, $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
$errors[] = $db->lasterror();
|
||||
}
|
||||
|
||||
if ($error) {
|
||||
$db->rollback();
|
||||
setEventMessages('', $errors, 'errors');
|
||||
} else {
|
||||
$db->commit();
|
||||
setEventMessage($langs->trans('SetupSaved'));
|
||||
header('Location: ' . $_SERVER["PHP_SELF"]);
|
||||
exit();
|
||||
}
|
||||
} elseif ($action == 'save') {
|
||||
$db->begin();
|
||||
|
||||
$disableext = GETPOST('AGENDA_DISABLE_EXT', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'AGENDA_DISABLE_EXT', $disableext, 'chaine', 0, '', $conf->entity);
|
||||
|
||||
$i = 1; $errorsaved = 0;
|
||||
$error = 0;
|
||||
|
||||
// Save agendas
|
||||
while ($i <= $MAXAGENDA) {
|
||||
@ -159,6 +201,10 @@ print dol_get_fiche_head($head, 'extsites', $langs->trans("Agenda"), -1, 'action
|
||||
print '<span class="opacitymedium">'.$langs->trans("AgendaExtSitesDesc")."</span><br>\n";
|
||||
print "<br>\n";
|
||||
|
||||
|
||||
$selectedvalue=$conf->global->AGENDA_DISABLE_EXT;
|
||||
if ($selectedvalue==1) $selectedvalue=0; else $selectedvalue=1;
|
||||
|
||||
print "<table class=\"noborder\" width=\"100%\">";
|
||||
|
||||
print "<tr class=\"liste_titre\">";
|
||||
@ -203,31 +249,44 @@ print "<td>".$langs->trans("Name")."</td>";
|
||||
print "<td>".$langs->trans("ExtSiteUrlAgenda")." (".$langs->trans("Example").': http://yoursite/agenda/agenda.ics)</td>';
|
||||
print "<td>".$form->textwithpicto($langs->trans("FixTZ"), $langs->trans("FillFixTZOnlyIfRequired"), 1).'</td>';
|
||||
print '<td class="right">'.$langs->trans("Color").'</td>';
|
||||
print '<td class="right">'.$langs->trans("ActiveByDefault").'</td>';
|
||||
print "</tr>";
|
||||
|
||||
$i = 1;
|
||||
while ($i <= $MAXAGENDA) {
|
||||
$key = $i;
|
||||
$name = 'AGENDA_EXT_NAME'.$key;
|
||||
$src = 'AGENDA_EXT_SRC'.$key;
|
||||
$offsettz = 'AGENDA_EXT_OFFSETTZ'.$key;
|
||||
$color = 'AGENDA_EXT_COLOR'.$key;
|
||||
$enabled = 'AGENDA_EXT_ENABLED'.$key;
|
||||
|
||||
$name = 'AGENDA_EXT_NAME' . $key;
|
||||
$src = 'AGENDA_EXT_SRC' . $key;
|
||||
$offsettz = 'AGENDA_EXT_OFFSETTZ' . $key;
|
||||
$color = 'AGENDA_EXT_COLOR' . $key;
|
||||
$enabled = 'AGENDA_EXT_ENABLED' . $key;
|
||||
$default = 'AGENDA_EXT_ACTIVEBYDEFAULT' . $key;
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
// Nb
|
||||
print '<td width="180" class="nowrap">'.$langs->trans("AgendaExtNb", $key)."</td>";
|
||||
print '<td width="180" class="nowrap">' . $langs->trans("AgendaExtNb", $key) . "</td>";
|
||||
// Name
|
||||
print '<td><input type="text" class="flat hideifnotset" name="AGENDA_EXT_NAME'.$key.'" value="'.(GETPOST('AGENDA_EXT_NAME'.$key) ?GETPOST('AGENDA_EXT_NAME'.$key, 'alpha') : getDolGlobalString($name)).'" size="28"></td>';
|
||||
print '<td><input type="text" class="flat hideifnotset" name="AGENDA_EXT_NAME' . $key . '" value="' . (GETPOST('AGENDA_EXT_NAME' . $key) ? GETPOST('AGENDA_EXT_NAME' . $key, 'alpha') : getDolGlobalString($name)) . '" size="28"></td>';
|
||||
// URL
|
||||
print '<td><input type="url" class="flat hideifnotset" name="AGENDA_EXT_SRC'.$key.'" value="'.(GETPOST('AGENDA_EXT_SRC'.$key) ?GETPOST('AGENDA_EXT_SRC'.$key, 'alpha') : getDolGlobalString($src)).'" size="60"></td>';
|
||||
print '<td><input type="url" class="flat hideifnotset" name="AGENDA_EXT_SRC' . $key . '" value="' . (GETPOST('AGENDA_EXT_SRC' . $key) ? GETPOST('AGENDA_EXT_SRC' . $key, 'alpha') : getDolGlobalString($src)) . '" size="60"></td>';
|
||||
// Offset TZ
|
||||
print '<td><input type="text" class="flat hideifnotset" name="AGENDA_EXT_OFFSETTZ'.$key.'" value="'.(GETPOST('AGENDA_EXT_OFFSETTZ'.$key) ? GETPOST('AGENDA_EXT_OFFSETTZ'.$key) : getDolGlobalString($offsettz)).'" size="2"></td>';
|
||||
print '<td><input type="text" class="flat hideifnotset" name="AGENDA_EXT_OFFSETTZ' . $key . '" value="' . (GETPOST('AGENDA_EXT_OFFSETTZ' . $key) ? GETPOST('AGENDA_EXT_OFFSETTZ' . $key) : getDolGlobalString($offsettz)) . '" size="2"></td>';
|
||||
// Color (Possible colors are limited by Google)
|
||||
print '<td class="nowrap right">';
|
||||
//print $formadmin->selectColor($conf->global->$color, "google_agenda_color".$key, $colorlist);
|
||||
print $formother->selectColor((GETPOST("AGENDA_EXT_COLOR".$key) ?GETPOST("AGENDA_EXT_COLOR".$key) : getDolGlobalString($color)), "AGENDA_EXT_COLOR".$key, 'extsitesconfig', 1, '', 'hideifnotset');
|
||||
print $formother->selectColor((GETPOST("AGENDA_EXT_COLOR" . $key) ? GETPOST("AGENDA_EXT_COLOR" . $key) : getDolGlobalString($color)), "AGENDA_EXT_COLOR" . $key, 'extsitesconfig', 1, '', 'hideifnotset');
|
||||
print '</td>';
|
||||
// Calendar active by default
|
||||
print '<td class="nowrap right">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('AGENDA_EXT_ACTIVEBYDEFAULT' . $key);
|
||||
} else {
|
||||
if (empty($conf->global->{$default})) {
|
||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=set_AGENDA_EXT_ACTIVEBYDEFAULT' . $key . '">' . img_picto($langs->trans("Enabled"), 'on') . '</a>';
|
||||
} else {
|
||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=del_AGENDA_EXT_ACTIVEBYDEFAULT' . $key . '">' . img_picto($langs->trans("Disabled"), 'off') . '</a>';
|
||||
}
|
||||
}
|
||||
print '</td>';
|
||||
print "</tr>";
|
||||
$i++;
|
||||
|
||||
@ -265,6 +265,7 @@ if (empty($conf->global->AGENDA_DISABLE_EXT)) {
|
||||
$name = 'AGENDA_EXT_NAME'.$i;
|
||||
$offsettz = 'AGENDA_EXT_OFFSETTZ'.$i;
|
||||
$color = 'AGENDA_EXT_COLOR'.$i;
|
||||
$default = 'AGENDA_EXT_ACTIVEBYDEFAULT'.$i;
|
||||
$buggedfile = 'AGENDA_EXT_BUGGEDFILE'.$i;
|
||||
if (!empty($conf->global->$source) && !empty($conf->global->$name)) {
|
||||
// Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight'
|
||||
@ -273,6 +274,7 @@ if (empty($conf->global->AGENDA_DISABLE_EXT)) {
|
||||
'name'=>$conf->global->$name,
|
||||
'offsettz' => (!empty($conf->global->$offsettz) ? $conf->global->$offsettz : 0),
|
||||
'color'=>$conf->global->$color,
|
||||
'default'=>$conf->global->$default,
|
||||
'buggedfile'=>(isset($conf->global->buggedfile) ? $conf->global->buggedfile : 0)
|
||||
);
|
||||
}
|
||||
@ -288,6 +290,7 @@ if (empty($user->conf->AGENDA_DISABLE_EXT)) {
|
||||
$offsettz = 'AGENDA_EXT_OFFSETTZ_'.$user->id.'_'.$i;
|
||||
$color = 'AGENDA_EXT_COLOR_'.$user->id.'_'.$i;
|
||||
$enabled = 'AGENDA_EXT_ENABLED_'.$user->id.'_'.$i;
|
||||
$default = 'AGENDA_EXT_ACTIVEBYDEFAULT_'.$user->id.'_'.$i;
|
||||
$buggedfile = 'AGENDA_EXT_BUGGEDFILE_'.$user->id.'_'.$i;
|
||||
if (!empty($user->conf->$source) && !empty($user->conf->$name)) {
|
||||
// Note: $conf->global->buggedfile can be empty or 'uselocalandtznodaylight' or 'uselocalandtzdaylight'
|
||||
@ -296,6 +299,7 @@ if (empty($user->conf->AGENDA_DISABLE_EXT)) {
|
||||
'name'=>$user->conf->$name,
|
||||
'offsettz' => (!empty($user->conf->$offsettz) ? $user->conf->$offsettz : 0),
|
||||
'color'=>$user->conf->$color,
|
||||
'default'=>$user->conf->$default,
|
||||
'buggedfile'=>(isset($user->conf->buggedfile) ? $user->conf->buggedfile : 0)
|
||||
);
|
||||
}
|
||||
@ -576,6 +580,15 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on
|
||||
if (is_array($showextcals) && count($showextcals) > 0) {
|
||||
$s .= '<script type="text/javascript">'."\n";
|
||||
$s .= 'jQuery(document).ready(function () {
|
||||
jQuery("div input[name^=\"check_ext\"]").each(function(index, elem) {
|
||||
var name = jQuery(elem).attr("name");
|
||||
if (jQuery(elem).is(":checked")) {
|
||||
jQuery(".family_ext" + name.replace("check_ext", "")).show();
|
||||
} else {
|
||||
jQuery(".family_ext" + name.replace("check_ext", "")).hide();
|
||||
}
|
||||
});
|
||||
|
||||
jQuery("div input[name^=\"check_ext\"]").click(function() {
|
||||
var name = $(this).attr("name");
|
||||
jQuery(".family_ext" + name.replace("check_ext", "")).toggle();
|
||||
@ -585,7 +598,14 @@ if (!empty($conf->use_javascript_ajax)) { // If javascript on
|
||||
|
||||
foreach ($showextcals as $val) {
|
||||
$htmlname = md5($val['name']);
|
||||
$s .= '<div class="nowrap inline-block"><input type="checkbox" id="check_ext'.$htmlname.'" name="check_ext'.$htmlname.'" checked> <label for="check_ext'.$htmlname.'">'.$val['name'].'</label> </div>';
|
||||
|
||||
if (!empty($val['default'])) {
|
||||
$default = "checked";
|
||||
} else {
|
||||
$default = '';
|
||||
}
|
||||
|
||||
$s .= '<div class="nowrap inline-block"><input type="checkbox" id="check_ext'.$htmlname.'" name="check_ext'.$htmlname.'" '.$default.'> <label for="check_ext'.$htmlname.'">'.$val['name'].'</label> </div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -169,4 +169,5 @@ TimeType=Duration type
|
||||
ReminderType=Callback type
|
||||
AddReminder=Create an automatic reminder notification for this event
|
||||
ErrorReminderActionCommCreation=Error creating the reminder notification for this event
|
||||
BrowserPush=Browser Popup Notification
|
||||
BrowserPush=Browser Popup Notification
|
||||
ActiveByDefault=Enabled by default
|
||||
|
||||
@ -170,3 +170,4 @@ ReminderType=Type de rappel
|
||||
AddReminder=Créer une notification de rappel automatique pour cet événement
|
||||
ErrorReminderActionCommCreation=Erreur lors de la création de la notification de rappel pour cet événement
|
||||
BrowserPush=Notification par Popup navigateur
|
||||
ActiveByDefault=Activation par défaut
|
||||
|
||||
Loading…
Reference in New Issue
Block a user