From: Michael M Slusarz Date: Tue, 6 Apr 2010 23:26:40 +0000 (-0600) Subject: Convert Ansel to new preferences UI code X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=09a9b451bd97f63bea5b24e27adf3ab3fe0b9723;p=horde.git Convert Ansel to new preferences UI code --- diff --git a/ansel/config/prefs.php.dist b/ansel/config/prefs.php.dist index ee2891cc1..28f89da7a 100644 --- a/ansel/config/prefs.php.dist +++ b/ansel/config/prefs.php.dist @@ -6,10 +6,11 @@ $prefGroups['display'] = array( 'column' => _("General Options"), 'label' => _("Display Options"), 'desc' => _("Change display options such as which view to display by default, how many photos to display on a page, and the default gallery style to use."), - 'members' => array('grouptitle', 'defaultview', 'tilesperrow', - 'tilesperpage', 'facesperpage', 'groupby', - 'groupsperpage', - 'default_gallerystyle_select', 'default_category_select') + 'members' => array( + 'grouptitle', 'defaultview', 'tilesperrow', 'tilesperpage', + 'facesperpage', 'groupby', 'groupsperpage', + 'default_gallerystyle_select', 'default_category_select' + ) ); $prefGroups['metadata'] = array( @@ -23,62 +24,61 @@ $prefGroups['perms'] = array( 'column' => _("General Options"), 'label' => _("Permission Options"), 'desc' => _("Change your user permission options such as who can download original photos, and what permissions newly created galleries should have by default."), - 'members' => array('default_download', 'default_permissions', 'group_permissions', 'guest_permissions') + 'members' => array( + 'default_download', 'default_permissions', 'group_permissions', + 'guest_permissions' + ) ); $prefGroups['watermark'] = array( 'column' => _("General Options"), 'label' => _("Watermark Options"), 'desc' => _("Change your watermark options."), - 'members' => array('watermark_text', 'watermark_vertical', 'watermark_horizontal', - 'watermark_font', 'watermark_auto') + 'members' => array( + 'watermark_text', 'watermark_vertical', 'watermark_horizontal', + 'watermark_font', 'watermark_auto' + ) ); /* Note that for the following to work, your pref backend must support retrieving prefs for other users (such as the SQL backend) */ $_prefs['grouptitle'] = array( 'value' => '', - 'locked' => false, - 'shared' => false, 'type' => 'text', - 'desc' => _("Custom text to display describing your galleries. This will be displayed in place of your username when grouping galleries by username.")); + 'desc' => _("Custom text to display describing your galleries. This will be displayed in place of your username when grouping galleries by username.") +); $_prefs['defaultview'] = array( 'value' => 'galleries', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'enum' => array('browse' => _("Browse"), - 'galleries' => _("Galleries"), - 'mygalleries' => _("My Galleries") - ), + 'enum' => array( + 'browse' => _("Browse"), + 'galleries' => _("Galleries"), + 'mygalleries' => _("My Galleries") + ), 'desc' => _("View to display by default") ); $_prefs['groupby'] = array( 'value' => 'none', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'enum' => array('owner' => _("Owner"), - 'category' => _("Category"), - 'none' => _("None")), + 'enum' => array( + 'owner' => _("Owner"), + 'category' => _("Category"), + 'none' => _("None") + ), 'desc' => _("Group galleries by") ); // number of photos on each row in the gallery view $_prefs['tilesperrow'] = array( 'value' => 3, - 'locked' => false, - 'shared' => false, 'type' => 'number', 'desc' => _("Number of tiles per row") ); $_prefs['tilesperpage'] = array( 'value' => 9, - 'locked' => false, - 'shared' => false, 'type' => 'number', 'desc' => _("Number of tiles per page") ); @@ -86,47 +86,34 @@ $_prefs['tilesperpage'] = array( $_prefs['facesperpage'] = array( 'value' => '20', 'locked' => !$GLOBALS['conf']['faces']['driver'], - 'shared' => false, 'type' => 'number', 'desc' => _("Number of faces per page") ); $_prefs['groupsperpage'] = array( 'value' => 9, - 'locked' => false, - 'shared' => false, 'type' => 'number', 'desc' => _("Number of groups per page") ); $_prefs['showexif'] = array( 'value' => false, - 'locked' => false, - 'shared' => false, 'type' => 'checkbox', 'desc' => _("Show EXIF data") ); $_prefs['watermark'] = array( 'value' => '', - 'locked' => false, - 'shared' => false, 'type' => 'text', 'desc' => _("Custom watermark to use for photos") ); $_prefs['myansel_layout'] = array( - 'value' => 'a:1:{i:0;a:3:{i:0;a:4:{s:3:"app";s:5:"ansel";s:6:"height";i:1;s:5:"width";i:1;s:6:"params";a:2:{s:4:"type";s:5:"cloud";s:6:"params";a:1:{s:5:"count";s:2:"20";}}}i:1;a:4:{s:3:"app";s:5:"ansel";s:6:"height";i:1;s:5:"width";i:1;s:6:"params";a:2:{s:4:"type";s:12:"my_galleries";s:6:"params";a:0:{}}}i:2;a:4:{s:3:"app";s:5:"ansel";s:6:"height";i:1;s:5:"width";i:1;s:6:"params";a:2:{s:4:"type";s:14:"recently_added";s:6:"params";a:2:{s:7:"gallery";s:3:"all";s:5:"limit";s:2:"10";}}}}}', - 'locked' => false, - 'shared' => false, - 'type' => 'implicit' + 'value' => 'a:1:{i:0;a:3:{i:0;a:4:{s:3:"app";s:5:"ansel";s:6:"height";i:1;s:5:"width";i:1;s:6:"params";a:2:{s:4:"type";s:5:"cloud";s:6:"params";a:1:{s:5:"count";s:2:"20";}}}i:1;a:4:{s:3:"app";s:5:"ansel";s:6:"height";i:1;s:5:"width";i:1;s:6:"params";a:2:{s:4:"type";s:12:"my_galleries";s:6:"params";a:0:{}}}i:2;a:4:{s:3:"app";s:5:"ansel";s:6:"height";i:1;s:5:"width";i:1;s:6:"params";a:2:{s:4:"type";s:14:"recently_added";s:6:"params";a:2:{s:7:"gallery";s:3:"all";s:5:"limit";s:2:"10";}}}}}' ); $_prefs['default_gallerystyle'] = array( - 'value' => 'ansel_default', - 'locked' => false, - 'shared' => false, - 'type' => 'implicit' + 'value' => 'ansel_default' ); $_prefs['default_gallerystyle_select'] = array( 'type' => 'special' @@ -134,10 +121,7 @@ $_prefs['default_gallerystyle_select'] = array( // Default category $_prefs['default_category'] = array( - 'value' => '', - 'locked' => false, - 'shared' => false, - 'type' => 'implicit' + 'value' => '' ); // Default category @@ -146,135 +130,112 @@ $_prefs['default_category_select'] = array( ); $_prefs['show_actions'] = array( - 'value' => 0, - 'locked' => false, - 'shared' => false, - 'type' => 'implicit', + 'value' => 0 ); $_prefs['show_othergalleries'] = array( - 'value' => 0, - 'locked' => false, - 'shared' => false, - 'type' => 'implicit' + 'value' => 0 ); - $_prefs['watermark_text'] = array( 'value' => '', - 'locked' => false, - 'shared' => false, 'type' => 'text', 'desc' => _("Custom watermark to use for photos") ); $_prefs['watermark_horizontal'] = array( 'value' => 'left', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'enum' => array('left' => _("Left"), - 'center' => _("Center"), - 'right' => _("Right")), + 'enum' => array( + 'left' => _("Left"), + 'center' => _("Center"), + 'right' => _("Right") + ), 'desc' => _("Horizontal Alignment") ); $_prefs['watermark_vertical'] = array( 'value' => 'bottom', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'enum' => array('top' => _("Top"), - 'center' => _("Center"), - 'bottom' => _("Bottom")), + 'enum' => array( + 'top' => _("Top"), + 'center' => _("Center"), + 'bottom' => _("Bottom") + ), 'desc' => _("Vertical Alignment") ); $_prefs['watermark_font'] = array( 'value' => 'bottom', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'enum' => array('tiny' => _("Tiny"), - 'small' => _("Small"), - 'medium' => _("Medium"), - 'large' => _("Large"), - 'giant' => _("Giant")), + 'enum' => array( + 'tiny' => _("Tiny"), + 'small' => _("Small"), + 'medium' => _("Medium"), + 'large' => _("Large"), + 'giant' => _("Giant") + ), 'desc' => _("Vertical Alignment") ); $_prefs['watermark_auto'] = array( 'value' => 0, - 'locked' => false, - 'shared' => false, - 'type' => 'enum', - 'enum' => array(_("No"), _("Yes")), + 'type' => 'checkbox', 'desc' => _("Automatically watermark photos?") ); $_prefs['default_download'] = array( 'value' => 'edit', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'enum' => array('all' => _("Anyone"), - 'edit' => _("Authenticated users"), - 'authenticated' => _("Users with edit permissions")), + 'enum' => array( + 'all' => _("Anyone"), + 'edit' => _("Authenticated users"), + 'authenticated' => _("Users with edit permissions") + ), 'desc' => _("Who should be allowed to download original photos") ); $_prefs['default_permissions'] = array( 'value' => 'read', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'desc' => _("When a new gallery is created, what permissions should be given to authenticated users by default?"), - 'enum' => array('none' => _("None"), - 'read' => _("Read-only"), - 'edit' => _("Read and write")) + 'enum' => array( + 'none' => _("None"), + 'read' => _("Read-only"), + 'edit' => _("Read and write") + ), + 'desc' => _("When a new gallery is created, what permissions should be given to authenticated users by default?") ); $_prefs['guest_permissions'] = array( 'value' => 'read', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'desc' => _("When a new gallery is created, what permissions should be given to guests by default?"), - 'enum' => array('none' => _("None (Owner only)"), - 'read' => _("Read-only")) + 'enum' => array( + 'none' => _("None (Owner only)"), + 'read' => _("Read-only") + ), + 'desc' => _("When a new gallery is created, what permissions should be given to guests by default?") ); $_prefs['group_permissions'] = array( 'value' => 'none', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'desc' => _("When a new gallery is created, what default permissions should be given to groups that the user is a member of?"), - 'enum' => array('none' => _("None"), - 'read' => _("Read-only"), - 'edit' => _("Read and write"), - 'delete' => _("Read, write, and delete")) + 'enum' => array( + 'none' => _("None"), + 'read' => _("Read-only"), + 'edit' => _("Read and write"), + 'delete' => _("Read, write, and delete") + ), + 'desc' => _("When a new gallery is created, what default permissions should be given to groups that the user is a member of?") ); $_prefs['exif_tags'] = array( 'value' => 'a:0:{}', - 'locked' => false, - 'shared' => false, 'type' => 'multienum', 'desc' => _("Which metadata fields should we automatically add as image tags during upload?"), - 'enum' => Horde_Image_Exif::getFields(array($GLOBALS['conf']['exif']['driver'], - !empty($GLOBALS['conf']['exif']['params']) ? $GLOBALS['conf']['exif']['params'] : array()), - true) ); $_prefs['exif_title'] = array( 'value' => '', - 'locked' => false, - 'shared' => false, 'type' => 'enum', - 'desc' => _("Should we automatically set the image title on upload if able? If so, choose the field to obtain the title from."), - 'enum' => array_merge(array('none' => _("None")), - Horde_Image_Exif::getFields(array($GLOBALS['conf']['exif']['driver'], - !empty($GLOBALS['conf']['exif']['params']) ? $GLOBALS['conf']['exif']['params'] : array()), - true)) -); \ No newline at end of file + 'desc' => _("Should we automatically set the image title on upload if able? If so, choose the field to obtain the title from.") +); diff --git a/ansel/lib/Application.php b/ansel/lib/Application.php index 5a50395ec..cbf48d09f 100644 --- a/ansel/lib/Application.php +++ b/ansel/lib/Application.php @@ -95,6 +95,52 @@ class Ansel_Application extends Horde_Registry_Application } /** + * Code to run on init when viewing prefs for this application. + * + * @param Horde_Core_Prefs_Ui $ui The UI object. + */ + public function prefsInit($ui) + { + global $conf, $prefs; + + switch ($ui->group) { + case 'metadata': + if (!$prefs->isLocked('exif_tags')) { + $fields = Horde_Image_Exif::getFields(array($conf['exif']['driver'], !empty($conf['exif']['params']) ? $conf['exif']['params'] : array()), true); + $ui->override['exif_tags'] = $fields; + $ui->override['exif_title'] = array_merge(array( + 'none' => _("None") + ), $fields); + } + break; + } + } + + /** + * Generate code used to display a special preference. + * + * @param Horde_Core_Prefs_Ui $ui The UI object. + * @param string $item The preference name. + * + * @return string The HTML code to display on the options page. + */ + public function prefsSpecial($ui, $item) + { + switch ($item) { + case 'default_category_select': + $cManager = new Horde_Prefs_CategoryManager(); + return _("Default category for galleries") . $cManager->getSelect('default_category_select', $GLOBALS['prefs']->getValue('default_category')); + + case 'default_gallerystyle_select': + return _("Default style for galleries") . + Ansel::getStyleSelect('default_gallerystyle_select', $GLOBALS['prefs']->getValue('default_gallerystyle')) . + '
'; + } + + return ''; + } + + /** * Special preferences handling on update. * * @param Horde_Core_Prefs_Ui $ui The UI object. @@ -119,6 +165,8 @@ class Ansel_Application extends Horde_Registry_Application } break; } + + return false; } /** diff --git a/ansel/templates/prefs/default_category_select.inc b/ansel/templates/prefs/default_category_select.inc deleted file mode 100644 index ca804a9cb..000000000 --- a/ansel/templates/prefs/default_category_select.inc +++ /dev/null @@ -1,7 +0,0 @@ -getSelect('default_category_select', $GLOBALS['prefs']->getValue('default_category')); - -echo _("Default category for galleries"); -echo $categories; diff --git a/ansel/templates/prefs/default_gallerystyle_select.inc b/ansel/templates/prefs/default_gallerystyle_select.inc deleted file mode 100644 index 1305d2e7e..000000000 --- a/ansel/templates/prefs/default_gallerystyle_select.inc +++ /dev/null @@ -1,4 +0,0 @@ -getValue('default_gallerystyle')); -echo _("Default style for galleries"); -echo $style_select . '
'; \ No newline at end of file