feature 2089: Batch Manager, switch from global to unit mode with tabs

git-svn-id: http://piwigo.org/svn/trunk@8413 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2010-12-31 15:06:36 +00:00
commit 6495263fd4
4 changed files with 185 additions and 26 deletions

View file

@ -33,6 +33,7 @@ if (!defined('PHPWG_ROOT_PATH'))
}
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
// +-----------------------------------------------------------------------+
// | Check Access and exit when user status is not ok |
@ -267,23 +268,50 @@ else
$page['start'] = $_GET['start'];
}
// +-----------------------------------------------------------------------+
// | Tabs |
// +-----------------------------------------------------------------------+
$tabs = array(
array(
'code' => 'global',
'label' => l10n('global mode'),
),
array(
'code' => 'unit',
'label' => l10n('unit mode'),
),
);
$tab_codes = array_map(
create_function('$a', 'return $a["code"];'),
$tabs
);
if (isset($_GET['mode']) and in_array($_GET['mode'], $tab_codes))
{
$page['tab'] = $_GET['mode'];
}
else
{
$page['tab'] = $tabs[0]['code'];
}
$tabsheet = new tabsheet();
foreach ($tabs as $tab)
{
$tabsheet->add(
$tab['code'],
$tab['label'],
get_root_url().'admin.php?page='.$_GET['page'].'&mode='.$tab['code']
);
}
$tabsheet->select($page['tab']);
$tabsheet->assign();
// +-----------------------------------------------------------------------+
// | open specific mode |
// +-----------------------------------------------------------------------+
$_GET['mode'] = !empty($_GET['mode']) ? $_GET['mode'] : 'global';
switch ($_GET['mode'])
{
case 'global' :
{
include(dirname(__FILE__).'/batch_manager_global.php');
break;
}
case 'unit' :
{
include(PHPWG_ROOT_PATH.'admin/element_set_unit.php');
break;
}
}
include(PHPWG_ROOT_PATH.'admin/batch_manager_'.$page['tab'].'.php');
?>

View file

@ -314,17 +314,8 @@ $base_url = get_root_url().'admin.php';
$template->assign(
array(
'filter' => $_SESSION['bulk_manager_filter'],
'selection' => $collection,
'U_DISPLAY'=>$base_url.get_query_string_diff(array('display')),
'U_UNIT_MODE'
=>
$base_url
.get_query_string_diff(array('mode','display'))
.'&mode=unit',
'F_ACTION'=>$base_url.get_query_string_diff(array('cat')),
)
);

View file

@ -329,10 +329,6 @@ a.removeFilter:hover {background: url(admin/themes/default/icon/remove_filter_ho
</style>
{/literal}
<p style="float:left; font-size:90%;margin:5px 0 0 0;padding:0;">
<a href="{$U_UNIT_MODE}">Switch to unit mode</a>
</p>
<h2>{'Batch Manager'|@translate}</h2>
<form action="{$F_ACTION}" method="post">

View file

@ -0,0 +1,144 @@
{include file='include/autosize.inc.tpl'}
{include file='include/datepicker.inc.tpl'}
{combine_script id='jquery.fcbkcomplete' load='async' require='jquery' path='themes/default/js/plugins/jquery.fcbkcomplete.js'}
{footer_script require='jquery.fcbkcomplete'}
var tag_boxes_selector = "";
{foreach from=$elements item=element name=element}
{if $smarty.foreach.element.first}
var prefix = "";
{else}
prefix = ", ";
{/if}
tag_boxes_selector = tag_boxes_selector + prefix + "#tags-" + {$element.ID};
{/foreach}
{literal}
jQuery(document).ready(function() {
$(tag_boxes_selector).fcbkcomplete({
json_url: "admin.php?fckb_tags=1",
cache: false,
filter_case: false,
filter_hide: true,
firstselected: true,
filter_selected: true,
maxitems: 100,
newel: true
});
});
{/literal}{/footer_script}
<h2>{'Batch Manager'|@translate}</h2>
<form action="{$F_ACTION}" method="POST">
<fieldset>
<legend>{'Display options'|@translate}</legend>
<p>{'elements per page'|@translate} :
<a href="{$U_ELEMENTS_PAGE}&amp;display=5">5</a>
| <a href="{$U_ELEMENTS_PAGE}&amp;display=10">10</a>
| <a href="{$U_ELEMENTS_PAGE}&amp;display=50">50</a>
| <a href="{$U_ELEMENTS_PAGE}&amp;display=all">{'all'|@translate}</a>
</p>
</fieldset>
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
{if !empty($elements) }
<div><input type="hidden" name="element_ids" value="{$ELEMENT_IDS}"></div>
{foreach from=$elements item=element}
<fieldset class="elementEdit">
<legend>{$element.LEGEND}</legend>
<a href="{$element.U_EDIT}"><img src="{$element.TN_SRC}" alt="" title="{'Edit all picture informations'|@translate}"></a>
<table>
<tr>
<td><strong>{'Name'|@translate}</strong></td>
<td><input type="text" class="large" name="name-{$element.ID}" value="{$element.NAME}"></td>
</tr>
<tr>
<td><strong>{'Author'|@translate}</strong></td>
<td><input type="text" class="large" name="author-{$element.ID}" value="{$element.AUTHOR}"></td>
</tr>
<tr>
<td><strong>{'Creation date'|@translate}</strong></td>
<td>
<label><input type="radio" name="date_creation_action-{$element.ID}" value="unset"> {'unset'|@translate}</label>
<label><input type="radio" name="date_creation_action-{$element.ID}" value="set" id="date_creation_action_set-{$element.ID}"> {'set to'|@translate}</label>
<select id="date_creation_day-{$element.ID}" name="date_creation_day-{$element.ID}">
<option value="0">--</option>
{section name=day start=1 loop=32}
<option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$element.DATE_CREATION_DAY}selected="selected"{/if}>{$smarty.section.day.index}</option>
{/section}
</select>
<select id="date_creation_month-{$element.ID}" name="date_creation_month-{$element.ID}">
{html_options options=$month_list selected=$element.DATE_CREATION_MONTH}
</select>
<input id="date_creation_year-{$element.ID}"
name="date_creation_year-{$element.ID}"
type="text"
size="4"
maxlength="4"
value="{$element.DATE_CREATION_YEAR}">
<input id="date_creation_linked_date-{$element.ID}" name="date_creation_linked_date-{$element.ID}" type="hidden" size="10" disabled="disabled">
{footer_script}
pwg_initialization_datepicker("#date_creation_day-{$element.ID}", "#date_creation_month-{$element.ID}", "#date_creation_year-{$element.ID}", "#date_creation_linked_date-{$element.ID}", "#date_creation_action_set-{$element.ID}");
{/footer_script}
</td>
</tr>
<tr>
<td><strong>{'Who can see this photo?'|@translate}</strong></td>
<td>
<select name="level-{$element.ID}">
{html_options options=$level_options selected=$element.LEVEL}
</select>
</td>
</tr>
<tr>
<td><strong>{'Tags'|@translate}</strong></td>
<td>
<select id="tags-{$element.ID}" name="tags-{$element.ID}">
{foreach from=$element.TAGS item=tag}
<option value="{$tag.value}" class="selected">{$tag.caption}</option>
{/foreach}
</select>
</td>
</tr>
<tr>
<td><strong>{'Description'|@translate}</strong></td>
<td><textarea cols="50" rows="5" name="description-{$element.ID}" id="description-{$element.ID}" class="description">{$element.DESCRIPTION}</textarea></td>
</tr>
</table>
</fieldset>
{/foreach}
<p>
<input class="submit" type="submit" value="{'Submit'|@translate}" name="submit">
<input class="submit" type="reset" value="{'Reset'|@translate}">
</p>
{/if}
</form>
<script type="text/javascript">// <![CDATA[
{literal}$(document).ready(function() {
$(".elementEdit img").fadeTo("slow", 0.6); // Opacity on page load
$(".elementEdit img").hover(function(){
$(this).fadeTo("slow", 1.0); // Opacity on hover
},function(){
$(this).fadeTo("slow", 0.6); // Opacity on mouseout
});
});{/literal}
// ]]>
</script>