From ae6a63bee0d834888c3b30b5bcc4df2216173c75 Mon Sep 17 00:00:00 2001 From: plegall Date: Wed, 1 Feb 2012 23:03:35 +0000 Subject: feature 2561: redesign on album administration screen. * only one form on the screen and several tabs * simpler URL pattern : page=album-123-properties / page=album-123-sort_order / page=album-123-permissions * action to associate all photos of an album to another (new) virtual album was removed. This can be easily done with the new Batch Manager * notification by email on an album still has to be moved on a new dedicated tab * action icons (jump to album, manage photos, manage sub-albums, delete album...) replaced by plain text links git-svn-id: http://piwigo.org/svn/trunk@13013 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin.php | 12 + admin/album.php | 92 +++++++ admin/cat_list.php | 2 +- admin/cat_modify.php | 266 ++++----------------- admin/cat_perm.php | 4 +- admin/element_set_ranks.php | 2 +- admin/include/functions.php | 1 + admin/include/photos_add_direct_process.inc.php | 2 +- admin/picture_modify.php | 2 +- admin/themes/default/template/cat_modify.tpl | 239 ++++++------------ admin/themes/default/template/cat_perm.tpl | 4 +- .../themes/default/template/element_set_ranks.tpl | 6 +- admin/themes/default/theme.css | 8 +- language/en_UK/admin.lang.php | 3 + language/fr_FR/admin.lang.php | 3 + 15 files changed, 241 insertions(+), 405 deletions(-) create mode 100644 admin/album.php diff --git a/admin.php b/admin.php index b99f72b40..edb2827ba 100644 --- a/admin.php +++ b/admin.php @@ -120,6 +120,18 @@ if (isset($_GET['page']) and preg_match('/^plugin-([^-]*)(?:-(.*))?$/', $_GET['p } } +// ?page=album-134-properties is an clean alias of +// ?page=album&cat_id=134&tab=properties +if (isset($_GET['page']) and preg_match('/^album-(\d+)(?:-(.*))?$/', $_GET['page'], $matches)) +{ + $_GET['page'] = 'album'; + $_GET['cat_id'] = $matches[1]; + if (isset($matches[2])) + { + $_GET['tab'] = $matches[2]; + } +} + if (isset($_GET['page']) and preg_match('/^[a-z_]*$/', $_GET['page']) and is_file(PHPWG_ROOT_PATH.'admin/'.$_GET['page'].'.php')) diff --git a/admin/album.php b/admin/album.php new file mode 100644 index 000000000..1097f04f5 --- /dev/null +++ b/admin/album.php @@ -0,0 +1,92 @@ +add('properties', l10n('Properties'), $admin_album_base_url.'-properties'); +$tabsheet->add('sort_order', l10n('Manage photo ranks'), $admin_album_base_url.'-sort_order'); + +if ('private' == $category['status']) +{ + $tabsheet->add('permissions', l10n('Permissions'), $admin_album_base_url.'-permissions'); +} + +$tabsheet->select($page['tab']); +$tabsheet->assign(); + +// +-----------------------------------------------------------------------+ +// | Load the tab | +// +-----------------------------------------------------------------------+ + +if ('properties' == $page['tab']) +{ + include(PHPWG_ROOT_PATH.'admin/cat_modify.php'); +} +elseif ('sort_order' == $page['tab']) +{ + include(PHPWG_ROOT_PATH.'admin/element_set_ranks.php'); +} +elseif ('permissions' == $page['tab']) +{ + $_GET['cat'] = $_GET['cat_id']; + include(PHPWG_ROOT_PATH.'admin/cat_perm.php'); +} +else +{ + include(PHPWG_ROOT_PATH.'admin/album_'.$page['tab'].'.php'); +} +?> \ No newline at end of file diff --git a/admin/cat_list.php b/admin/cat_list.php index f6c42a946..eed147607 100644 --- a/admin/cat_list.php +++ b/admin/cat_list.php @@ -297,7 +297,7 @@ foreach ($categories as $category) ), 'U_CHILDREN' => $cat_list_url.'&parent_id='.$category['id'], - 'U_EDIT' => $base_url.'cat_modify&cat_id='.$category['id'], + 'U_EDIT' => $base_url.'album-'.$category['id'], 'IS_VIRTUAL' => empty($category['dir']) ); diff --git a/admin/cat_modify.php b/admin/cat_modify.php index 762834af8..a6399b4ee 100644 --- a/admin/cat_modify.php +++ b/admin/cat_modify.php @@ -163,7 +163,10 @@ if (isset($_POST['submit'])) move_categories( array($_GET['cat_id']), $_POST['parent'] ); } - array_push($page['infos'], l10n('Album updated successfully')); + // we redirect to hide/show the "permissions" tab if the category status + // has changed + $_SESSION['page_infos'] = array(l10n('Album updated successfully')); + redirect($admin_album_base_url); } elseif (isset($_POST['set_random_representant'])) { @@ -178,75 +181,7 @@ UPDATE '.CATEGORIES_TABLE.' ;'; pwg_query($query); } -elseif (isset($_POST['submitAdd'])) -{ - $output_create = create_virtual_category( - $_POST['virtual_name'], - (0 == $_POST['parent'] ? null : $_POST['parent']) - ); - - if (isset($output_create['error'])) - { - array_push($page['errors'], $output_create['error']); - } - else - { - // Virtual album creation succeeded - // - // Add the information in the information list - array_push($page['infos'], $output_create['info']); - - // Link the new category to the current category - associate_categories_to_categories( - array($_GET['cat_id']), - array($output_create['id']) - ); - - // information - array_push( - $page['infos'], - sprintf( - l10n('Album photos associated to the following albums: %s'), - '' - ) - ); - } -} -elseif (isset($_POST['submitDestinations']) - and isset($_POST['destinations']) - and count($_POST['destinations']) > 0) -{ - associate_categories_to_categories( - array($_GET['cat_id']), - $_POST['destinations'] - ); - $category_names = array(); - foreach ($_POST['destinations'] as $category_id) - { - array_push( - $category_names, - get_cat_display_name_from_id($category_id) - ); - } - - array_push( - $page['infos'], - sprintf( - l10n('Album photos associated to the following albums: %s'), - '' - ) - ); -} - -$query = ' -SELECT * - FROM '.CATEGORIES_TABLE.' - WHERE id = '.$_GET['cat_id'].' -;'; -$category = pwg_db_fetch_assoc( pwg_query( $query ) ); // nullable fields foreach (array('comment','dir','site_id', 'id_uppercat') as $nullable) { @@ -268,13 +203,13 @@ $category['has_images'] = pwg_db_num_rows($result)>0 ? true : false; // Navigation path $navigation = get_cat_display_name_cache( $category['uppercats'], - get_root_url().'admin.php?page=cat_modify&cat_id=' + get_root_url().'admin.php?page=album-' ); -$form_action = get_root_url().'admin.php?page=cat_modify&cat_id='.$_GET['cat_id']; +$form_action = $admin_album_base_url.'-properties'; //----------------------------------------------------- template initialization -$template->set_filename( 'categories', 'cat_modify.tpl'); +$template->set_filename( 'album_properties', 'cat_modify.tpl'); $base_url = get_root_url().'admin.php?page='; $cat_list_url = $base_url.'cat_list'; @@ -303,8 +238,6 @@ $template->assign( ) ), - 'MAIL_CONTENT' => empty($_POST['mail_content']) - ? '' : stripslashes($_POST['mail_content']), 'U_CHILDREN' => $cat_list_url.'&parent_id='.$category['id'], 'U_HELP' => get_root_url().'admin/popuphelp.php?page=cat_modify', @@ -317,14 +250,6 @@ if ($conf['activate_comments']) $template->assign('CAT_COMMENTABLE', boolean_to_string($category['commentable'])); } - -if ('private' == $category['status']) -{ - $template->assign( 'U_MANAGE_PERMISSIONS', - $base_url.'cat_perm&cat='.$category['id'] - ); -} - // manage album elements link if ($category['has_images']) { @@ -332,8 +257,43 @@ if ($category['has_images']) 'U_MANAGE_ELEMENTS', $base_url.'batch_manager&cat='.$category['id'] ); + + $query = ' +SELECT + COUNT(image_id), + MIN(DATE(date_available)), + MAX(DATE(date_available)) + FROM '.IMAGES_TABLE.' + JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id + WHERE category_id = '.$category['id'].' +;'; + list($image_count, $min_date, $max_date) = pwg_db_fetch_row(pwg_query($query)); + + if ($min_date == $max_date) + { + $intro = sprintf( + l10n('This album contains %d photos, added on %s.'), + $image_count, + format_date($min_date) + ); + } + else + { + $intro = sprintf( + l10n('This album contains %d photos, added between %s and %s.'), + $image_count, + format_date($min_date), + format_date($max_date) + ); + } +} +else +{ + $intro = l10n('This album contains no photo.'); } +$template->assign('INTRO', $intro); + $template->assign( 'U_MANAGE_RANKS', $base_url.'element_set_ranks&cat_id='.$category['id'] @@ -352,9 +312,7 @@ else $category['cat_full_dir'] = get_complete_dir($_GET['cat_id']); $template->assign( array( - 'CAT_FULL_DIR' => preg_replace('/\/$/', - '', - $category['cat_full_dir'] ) + 'CAT_FULL_DIR' => preg_replace('/\/$/', '', $category['cat_full_dir']) ) ); @@ -430,144 +388,8 @@ SELECT id,name,uppercats,global_rank ); } - -// create virtual in parent and link -$query = ' -SELECT id,name,uppercats,global_rank - FROM '.CATEGORIES_TABLE.' -;'; -display_select_cat_wrapper( - $query, - array(), - 'create_new_parent_options' - ); - - -// destination categories -$query = ' -SELECT id,name,uppercats,global_rank - FROM '.CATEGORIES_TABLE.' - WHERE id != '.$category['id'].' -;'; -display_select_cat_wrapper( - $query, - array(), - 'category_destination_options' - ); - -// info by email to an access granted group of category informations -if (isset($_POST['submitEmail']) and !empty($_POST['group'])) -{ - set_make_full_url(); - - /* TODO: if $category['representative_picture_id'] - is empty find child representative_picture_id */ - if (!empty($category['representative_picture_id'])) - { - $query = ' -SELECT id, file, path, representative_ext - FROM '.IMAGES_TABLE.' - WHERE id = '.$category['representative_picture_id'].' -;'; - - $result = pwg_query($query); - if (pwg_db_num_rows($result) > 0) - { - $element = pwg_db_fetch_assoc($result); - - $img_url = ''; - } - } - - if (!isset($img_url)) - { - $img_url = ''; - } - - // TODO Mettre un array pour traduction subjet - pwg_mail_group( - $_POST['group'], - get_str_email_format(true), /* TODO add a checkbox in order to choose format*/ - get_l10n_args('[%s] Visit album %s', - array($conf['gallery_title'], $category['name'])), - 'cat_group_info', - array - ( - 'IMG_URL' => $img_url, - 'CAT_NAME' => $category['name'], - 'LINK' => make_index_url( - array( - 'category' => array( - 'id' => $category['id'], - 'name' => $category['name'], - 'permalink' => $category['permalink'] - ))), - 'CPL_CONTENT' => empty($_POST['mail_content']) - ? '' : stripslashes($_POST['mail_content']) - ), - '' /* TODO Add listbox in order to choose Language selected */); - - unset_make_full_url(); - - $query = ' -SELECT - name - FROM '.GROUPS_TABLE.' - WHERE id = '.$_POST['group'].' -;'; - list($group_name) = pwg_db_fetch_row(pwg_query($query)); - - array_push( - $page['infos'], - sprintf( - l10n('An information email was sent to group "%s"'), - $group_name - ) - ); -} - -if ('private' == $category['status']) -{ - $query = ' -SELECT - group_id - FROM '.GROUP_ACCESS_TABLE.' - WHERE cat_id = '.$category['id'].' -;'; -} -else -{ - $query = ' -SELECT - id AS group_id - FROM '.GROUPS_TABLE.' -;'; -} -$group_ids = array_from_query($query, 'group_id'); - -if (count($group_ids) > 0) -{ - $query = ' -SELECT - id, - name - FROM '.GROUPS_TABLE.' - WHERE id IN ('.implode(',', $group_ids).') - ORDER BY name ASC -;'; - $template->assign('group_mail_options', - simple_hash_from_query($query, 'id', 'name') - ); -} - trigger_action('loc_end_cat_modify'); //----------------------------------------------------------- sending html code -$template->assign_var_from_handle('ADMIN_CONTENT', 'categories'); +$template->assign_var_from_handle('ADMIN_CONTENT', 'album_properties'); ?> diff --git a/admin/cat_perm.php b/admin/cat_perm.php index 6440e7e99..3dc9c1e21 100644 --- a/admin/cat_perm.php +++ b/admin/cat_perm.php @@ -166,10 +166,10 @@ $template->assign( 'CATEGORIES_NAV' => get_cat_display_name_from_id( $page['cat'], - 'admin.php?page=cat_modify&cat_id=' + 'admin.php?page=album-' ), 'U_HELP' => get_root_url().'admin/popuphelp.php?page=cat_perm', - 'F_ACTION' => get_root_url().'admin.php?page=cat_perm&cat='.$page['cat'] + 'F_ACTION' => $admin_album_base_url.'-permissions', ) ); diff --git a/admin/element_set_ranks.php b/admin/element_set_ranks.php index a2b8149bc..cfdceaacd 100644 --- a/admin/element_set_ranks.php +++ b/admin/element_set_ranks.php @@ -180,7 +180,7 @@ elseif ($category['image_order']!='') // Navigation path $navigation = get_cat_display_name_cache( $category['uppercats'], - get_root_url().'admin.php?page=cat_modify&cat_id=' + get_root_url().'admin.php?page=album-' ); $template->assign( diff --git a/admin/include/functions.php b/admin/include/functions.php index 2696292ab..8b455f077 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -1991,6 +1991,7 @@ function get_active_menu($menu_page) case 'batch_manager': return 0; + case 'album': case 'cat_list': case 'cat_modify': case 'cat_move': diff --git a/admin/include/photos_add_direct_process.inc.php b/admin/include/photos_add_direct_process.inc.php index b30619587..1f2dc1634 100644 --- a/admin/include/photos_add_direct_process.inc.php +++ b/admin/include/photos_add_direct_process.inc.php @@ -252,7 +252,7 @@ SELECT WHERE category_id = '.$category_id.' ;'; list($count) = pwg_db_fetch_row(pwg_query($query)); - $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); + $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=album-'); // information array_push( diff --git a/admin/picture_modify.php b/admin/picture_modify.php index f62e3458b..66a3240d3 100644 --- a/admin/picture_modify.php +++ b/admin/picture_modify.php @@ -360,7 +360,7 @@ while ($row = pwg_db_fetch_assoc($result)) $name = get_cat_display_name_cache( $row['uppercats'], - get_root_url().'admin.php?page=cat_modify&cat_id=', + get_root_url().'admin.php?page=album-', false ); diff --git a/admin/themes/default/template/cat_modify.tpl b/admin/themes/default/template/cat_modify.tpl index 91b580998..2b5f15fdc 100644 --- a/admin/themes/default/template/cat_modify.tpl +++ b/admin/themes/default/template/cat_modify.tpl @@ -1,209 +1,108 @@ - -{include file='include/autosize.inc.tpl'} -{include file='include/resize.inc.tpl'} -
-

{'Edit album'|@translate}

+

{$CATEGORIES_NAV} › {'Edit album'|@translate} {$TABSHEET_TITLE}

-

{$CATEGORIES_NAV}

- - -
{'Informations'|@translate} - - {if isset($CAT_FULL_DIR) } - - - - - {/if} - +
{'Directory'|@translate}{$CAT_FULL_DIR}
- - - - - - - -
{'Name'|@translate} - -
{'Description'|@translate} - -
-
- -{if isset($move_cat_options) } -
- {'Move'|@translate} - {'Parent album'|@translate} - -
-{/if} - -
- {'Options'|@translate} - - - - - - - - {if isset($CAT_COMMENTABLE)} - - - - {/if} -
{'Access type'|@translate} - - {html_radios name='status' values=$status_values output=$status_values|translate selected=$CAT_STATUS} -
{'Lock'|@translate} - - {html_radios name='visible' values='true,false'|@explode output='No,Yes'|@explode|translate selected=$CAT_VISIBLE} -
{'Comments'|@translate} - - {html_radios name='commentable' values='false,true'|@explode output='No,Yes'|@explode|translate selected=$CAT_COMMENTABLE} -
-
- -

- - -

- + {if isset($representant) } -
- {'Representant'|@translate} - - - - - -
- {if isset($representant.picture) } - - {else} + {if isset($representant.picture) } + + {else} {'Random photo'|@translate} - {/if} - - {if $representant.ALLOW_SET_RANDOM } -

- {/if} + {/if} - {if isset($representant.ALLOW_DELETE) } + {if $representant.ALLOW_SET_RANDOM } +

+ {/if} + + {if isset($representant.ALLOW_DELETE) }

- {/if} + {/if} +{/if}
-
+ + +

{$INTRO}

+