Copyright 2010-2016 Horde LLC (http://www.horde.org/) See the enclosed file COPYING for license information (LGPL). If you did not receive this file, see http://www.horde.org/licenses/lgpl21.
Author: Michael Slusarz (slusarz@horde.org)
示例#1
0
 /**
  */
 public function update(Horde_Core_Prefs_Ui $ui)
 {
     $data = Horde_Core_Prefs_Ui_Widgets::alarmUpdate($ui, array('pref' => 'task_alarms'));
     if (is_null($data)) {
         return false;
     }
     $GLOBALS['prefs']->setValue('task_alarms', serialize($data));
     return true;
 }
示例#2
0
 /**
  */
 public function update(Horde_Core_Prefs_Ui $ui)
 {
     global $prefs;
     $data = Horde_Core_Prefs_Ui_Widgets::addressbooksUpdate($ui);
     $updated = false;
     if (isset($data['sources'])) {
         $prefs->setValue('search_sources', $data['sources']);
         $updated = true;
     }
     if (isset($data['fields'])) {
         $prefs->setValue('search_fields', $data['fields']);
         $updated = true;
     }
     return $updated;
 }
示例#3
0
 /**
  */
 public function display(Horde_Core_Prefs_Ui $ui)
 {
     $sources = array();
     foreach (Gollem_Auth::getBackend() as $source => $info) {
         $selected = $unselected = array();
         $selected_list = array_flip(Gollem::getColumns($source));
         foreach ($info['attributes'] as $column) {
             if (isset($selected_list[$column])) {
                 $selected[$column] = $column;
             } else {
                 $unselected[$column] = $column;
             }
         }
         $sources[$source] = array('label' => $info['name'], 'selected' => $selected, 'unselected' => $unselected);
     }
     return Horde_Core_Prefs_Ui_Widgets::source(array('mainlabel' => _("Choose which columns to display, and in what order:"), 'selectlabel' => _("These columns will display in this order:"), 'sourcelabel' => _("Select a backend:"), 'sources' => $sources, 'unselectlabel' => _("Columns that will not be displayed:")));
 }
示例#4
0
 /**
  */
 public function update(Horde_Core_Prefs_Ui $ui)
 {
     global $prefs;
     $data = Horde_Core_Prefs_Ui_Widgets::addressbooksUpdate($ui);
     $updated = false;
     if (isset($data['sources'])) {
         $prefs->setValue('search_sources', $data['sources']);
         $updated = true;
     }
     if (isset($data['fields'])) {
         $prefs->setValue('search_fields', $data['fields']);
         $updated = true;
     }
     if ($updated) {
         $GLOBALS['injector']->getInstance('IMP_Contacts')->clearCache();
     }
     return $updated;
 }
示例#5
0
 /**
  */
 public function update(Horde_Core_Prefs_Ui $ui)
 {
     global $injector, $prefs, $registry;
     $data = Horde_Core_Prefs_Ui_Widgets::alarmUpdate($ui, array('pref' => 'event_alarms'));
     if (is_null($data)) {
         return false;
     }
     $prefs->setValue('event_alarms', serialize($data));
     try {
         $alarms = $registry->callAppMethod('kronolith', 'listAlarms', array('args' => array($_SERVER['REQUEST_TIME'])));
         if (!empty($alarms)) {
             $horde_alarm = $injector->getInstance('Horde_Alarm');
             foreach ($alarms as $alarm) {
                 $alarm['start'] = new Horde_Date($alarm['start']);
                 $alarm['end'] = new Horde_Date($alarm['end']);
                 $horde_alarm->set($alarm);
             }
         }
     } catch (Exception $e) {
     }
     return true;
 }
示例#6
0
 /**
  * Create code needed for addressbook selection.
  *
  * @param array $data  Data items:
  * <pre>
  * 'fields' - (array) Hash containing addressbook sources as keys and an
  *            array of search fields as values.
  * 'sources' - (array) List of selected addressbooks.
  * </pre>
  *
  * @return string  HTML UI code.
  */
 public static function addressbooks($data)
 {
     global $registry;
     $selected = $unselected = array();
     $out = '';
     if (!$registry->hasMethod('contacts/sources')) {
         return;
     }
     $t = $GLOBALS['injector']->createInstance('Horde_Template');
     $t->setOption('gettext', true);
     try {
         $readable = $registry->call('contacts/sources');
     } catch (Horde_Exception $e) {
         $readable = array();
     }
     try {
         $writeable = $registry->call('contacts/sources', array(true));
     } catch (Horde_Exception $e) {
         $writeable = array();
     }
     if (count($readable) == 1) {
         // Only one source, no need to display the selection widget
         $data['sources'] = array_keys($readable);
     }
     foreach ($data['sources'] as $source) {
         if (!empty($readable[$source])) {
             $selected[$source] = $readable[$source];
         }
     }
     foreach (array_diff(array_keys($readable), $data['sources']) as $val) {
         $unselected[$val] = $readable[$val];
     }
     if (!empty($selected) || !empty($unselected)) {
         $out = Horde_Core_Prefs_Ui_Widgets::source(array('mainlabel' => Horde_Core_Translation::t("Choose the order of address books to search when expanding addresses."), 'selectlabel' => Horde_Core_Translation::t("Selected address books:"), 'sources' => array(array('selected' => $selected, 'unselected' => $unselected)), 'unselectlabel' => Horde_Core_Translation::t("Available address books:")));
         $t->set('selected', count($unselected) > 1);
         $js = array();
         foreach (array_keys($readable) as $source) {
             $tmp = $tmpsel = array();
             try {
                 foreach ($registry->call('contacts/fields', array($source)) as $field) {
                     if ($field['search']) {
                         $tmp[] = array('name' => $field['name'], 'label' => $field['label']);
                         if (isset($data['fields'][$source]) && in_array($field['name'], $data['fields'][$source])) {
                             $tmpsel[] = $field['name'];
                         }
                     }
                 }
             } catch (Horde_Exception $e) {
             }
             $js[$source] = array('entries' => $tmp, 'selected' => $tmpsel);
         }
         $GLOBALS['injector']->getInstance('Horde_PageOutput')->addInlineJsVars(array('HordeAddressbooksPrefs.fields' => $js, 'HordeAddressbooksPrefs.nonetext' => Horde_Core_Translation::t("No address book selected.")));
     }
     return $out . $t->fetch($GLOBALS['registry']->get('templates', 'horde') . '/prefs/addressbooks.html');
 }
示例#7
0
文件: Nag.php 项目: horde/horde
 protected function _renderVarInput_NagMethod($form, $var, $vars)
 {
     $varname = htmlspecialchars($var->getVarName());
     $varvalue = $var->getValue($vars);
     $on = !empty($varvalue) && (!isset($varvalue['on']) || !empty($varvalue['on']));
     $html = sprintf('<input id="%soff" type="radio" class="radio" name="%s[on]" value="0"%s %s/><label for="%soff">&nbsp;%s</label><br />', $varname, $varname, $on ? '' : ' checked="checked"', $this->_getActionScripts($form, $var), $varname, _("Use default notification method")) . sprintf('<input type="radio" class="radio" name="%s[on]" value="1"%s %s/><label for="%soff">&nbsp;%s</label>', $varname, $on ? ' checked="checked"' : '', $this->_getActionScripts($form, $var), $varname, _("Use custom notification method"));
     if ($on) {
         Horde_Core_Prefs_Ui_Widgets::alarmInit();
         $html .= '<br />';
         $params = array('pref' => 'task_alarms', 'label' => '');
         if (!empty($varvalue) && !isset($varvalue['on']) || $form->isSubmitted()) {
             $params['value'] = $varvalue;
         }
         $html .= Horde_Core_Prefs_Ui_Widgets::alarm($params);
     }
     return $html;
 }
示例#8
0
文件: prefs.php 项目: horde/horde
});
$_prefs['purge_sentmail_interval'] = array('value' => 0, 'type' => 'enum', 'enum' => array_merge(array(0 => _("Never")), Horde_LoginTasks::getLabels()), 'desc' => _("Purge sent mail how often:"), 'help' => 'prefs-purge_sentmail_interval', 'suppress' => function () {
    return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS);
});
$_prefs['purge_sentmail_keep'] = array('value' => 30, 'type' => 'number', 'desc' => _("Purge messages in sent mail mailbox(es) older than this amount of days."), 'help' => 'prefs-purge_sentmail_keep', 'requires' => array('purge_sentmail_interval'), 'suppress' => function () {
    return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS);
});
// *** Addressbook Preferences ***
$prefGroups['addressbooks'] = array('column' => _("Compose"), 'label' => _("Address Books"), 'desc' => _("Select address book sources for adding/searching."), 'members' => array('save_recipients', 'sourceselect', 'add_source'), 'suppress' => function () {
    $contacts_app = $GLOBALS['registry']->hasInterface('contacts');
    return !$contacts_app || !$GLOBALS['registry']->hasPermission($contacts_app);
});
$_prefs['save_recipients'] = array('value' => 0, 'type' => 'checkbox', 'desc' => _("Save recipients automatically to the default address book?"));
// address book selection widget
$_prefs['sourceselect'] = array('type' => 'special', 'handler' => 'IMP_Prefs_Special_Sourceselect', 'requires_nolock' => array('search_sources'), 'on_init' => function ($ui) {
    Horde_Core_Prefs_Ui_Widgets::addressbooksInit();
});
// Address book(s) to use when expanding addresses
// Refer to Turba's config/backends.php for possible source values
//
// You can provide default values this way:
//   'value' => json_encode(array('source_one', 'source_two'))
$_prefs['search_sources'] = array('value' => '', 'on_change' => function () {
    $GLOBALS['injector']->getInstance('IMP_Contacts')->clearCache();
});
// Field(s) to use when expanding addresses
// Refer to Turba's config/backends.php for possible source and field values
//
// If you want to provide a default value, this field depends on the
// search_sources preference. For example:
//   'value' => json_encode(array(