[ticket/10411] Use AJAX to move items up/down and delete them

PHPBB3-10411
This commit is contained in:
Joas Schilling 2012-11-14 15:55:51 +01:00
parent 79eea0ccac
commit a9ed479e14
2 changed files with 40 additions and 26 deletions

View file

@ -38,24 +38,24 @@
</thead> </thead>
<tbody> <tbody>
<!-- BEGIN legend --> <!-- BEGIN legend -->
<tr> <tr data-down="{legend.U_MOVE_DOWN}" data-up="{legend.U_MOVE_UP}">
<td><strong{legend.GROUP_COLOUR}>{legend.GROUP_NAME}</strong></td> <td><strong{legend.GROUP_COLOUR}>{legend.GROUP_NAME}</strong></td>
<td style="text-align: center;">{legend.GROUP_TYPE}</td> <td style="text-align: center;">{legend.GROUP_TYPE}</td>
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;"> <td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
<!-- IF legend.S_FIRST_ROW && not legend.S_LAST_ROW --> <!-- IF legend.S_FIRST_ROW && not legend.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED} <span class="up">{ICON_MOVE_UP_DISABLED}</span>
<a href="{legend.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="forum_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<!-- ELSEIF not legend.S_FIRST_ROW && not legend.S_LAST_ROW --> <!-- ELSEIF not legend.S_FIRST_ROW && not legend.S_LAST_ROW -->
<a href="{legend.U_MOVE_UP}">{ICON_MOVE_UP}</a> <span class="up"><a href="{legend.U_MOVE_UP}" data-ajax="forum_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
<a href="{legend.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <span class="down"><a href="{legend.U_MOVE_DOWN}" data-ajax="forum_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<!-- ELSEIF legend.S_LAST_ROW && not legend.S_FIRST_ROW --> <!-- ELSEIF legend.S_LAST_ROW && not legend.S_FIRST_ROW -->
<a href="{legend.U_MOVE_UP}">{ICON_MOVE_UP}</a> <span class="up"><a href="{legend.U_MOVE_UP}" data-ajax="forum_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
{ICON_MOVE_DOWN_DISABLED} <span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
<!-- ELSE --> <!-- ELSE -->
{ICON_MOVE_UP_DISABLED} <span class="up">{ICON_MOVE_UP_DISABLED}</span>
{ICON_MOVE_DOWN_DISABLED} <span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
<!-- ENDIF --> <!-- ENDIF -->
<a href="{legend.U_DELETE}">{ICON_DELETE}</a> <a href="{legend.U_DELETE}" data-ajax="row_delete" data-overlay="false">{ICON_DELETE}</a>
</td> </td>
</tr> </tr>
<!-- BEGINELSE --> <!-- BEGINELSE -->
@ -121,7 +121,7 @@
</thead> </thead>
<tbody> <tbody>
<!-- BEGIN teampage --> <!-- BEGIN teampage -->
<tr> <tr data-down="{teampage.U_MOVE_DOWN}" data-up="{teampage.U_MOVE_UP}">
<td> <td>
<!-- IF teampage.U_CATEGORY --> <!-- IF teampage.U_CATEGORY -->
<a href="{teampage.U_CATEGORY}">{teampage.GROUP_NAME}</a> <a href="{teampage.U_CATEGORY}">{teampage.GROUP_NAME}</a>
@ -133,19 +133,19 @@
</td></td> </td></td>
<td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;"> <td style="vertical-align: top; width: 100px; text-align: right; white-space: nowrap;">
<!-- IF teampage.S_FIRST_ROW && not teampage.S_LAST_ROW --> <!-- IF teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->
{ICON_MOVE_UP_DISABLED} <span class="up">{ICON_MOVE_UP_DISABLED}</span>
<a href="{teampage.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="forum_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<!-- ELSEIF not teampage.S_FIRST_ROW && not teampage.S_LAST_ROW --> <!-- ELSEIF not teampage.S_FIRST_ROW && not teampage.S_LAST_ROW -->
<a href="{teampage.U_MOVE_UP}">{ICON_MOVE_UP}</a> <span class="up"><a href="{teampage.U_MOVE_UP}" data-ajax="forum_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
<a href="{teampage.U_MOVE_DOWN}">{ICON_MOVE_DOWN}</a> <span class="down"><a href="{teampage.U_MOVE_DOWN}" data-ajax="forum_down" data-overlay="false">{ICON_MOVE_DOWN}</a></span>
<!-- ELSEIF teampage.S_LAST_ROW && not teampage.S_FIRST_ROW --> <!-- ELSEIF teampage.S_LAST_ROW && not teampage.S_FIRST_ROW -->
<a href="{teampage.U_MOVE_UP}">{ICON_MOVE_UP}</a> <span class="up"><a href="{teampage.U_MOVE_UP}" data-ajax="forum_up" data-overlay="false">{ICON_MOVE_UP}</a></span>
{ICON_MOVE_DOWN_DISABLED} <span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
<!-- ELSE --> <!-- ELSE -->
{ICON_MOVE_UP_DISABLED} <span class="up">{ICON_MOVE_UP_DISABLED}</span>
{ICON_MOVE_DOWN_DISABLED} <span class="down">{ICON_MOVE_DOWN_DISABLED}</span>
<!-- ENDIF --> <!-- ENDIF -->
<a href="{teampage.U_DELETE}">{ICON_DELETE}</a> <a href="{teampage.U_DELETE}" data-ajax="row_delete" data-overlay="false">{ICON_DELETE}</a>
</td> </td>
</tr> </tr>
<!-- BEGINELSE --> <!-- BEGINELSE -->
@ -176,4 +176,12 @@
</fieldset> </fieldset>
</form> </form>
<div class="hidden">
<a class="template-up-img" href="#">{ICON_MOVE_UP}</a>
<span class="template-up-img-disabled">{ICON_MOVE_UP_DISABLED}</span>
<a class="template-down-img" href="#">{ICON_MOVE_DOWN}</a>
<span class="template-down-img-disabled">{ICON_MOVE_DOWN_DISABLED}</span>
</div>
<!-- INCLUDE overall_footer.html --> <!-- INCLUDE overall_footer.html -->

View file

@ -899,6 +899,12 @@ class acp_groups
} }
} }
if (($action == 'move_up' || $action == 'move_down') && $request->is_ajax())
{
$json_response = new phpbb_json_response;
$json_response->send(array('success' => true));
}
$sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend $sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend
FROM ' . GROUPS_TABLE . ' FROM ' . GROUPS_TABLE . '
ORDER BY group_legend ASC, group_type DESC, group_name ASC'; ORDER BY group_legend ASC, group_type DESC, group_name ASC';
@ -911,13 +917,13 @@ class acp_groups
if ($row['group_legend']) if ($row['group_legend'])
{ {
$template->assign_block_vars('legend', array( $template->assign_block_vars('legend', array(
'GROUP_NAME' => $group_name, 'GROUP_NAME' => $group_name,
'GROUP_COLOUR' => ($row['group_colour']) ? ' style="color: #' . $row['group_colour'] . '"' : '', 'GROUP_COLOUR' => ($row['group_colour']) ? ' style="color: #' . $row['group_colour'] . '"' : '',
'GROUP_TYPE' => $user->lang[phpbb_groupposition_legend::group_type_language($row['group_type'])], 'GROUP_TYPE' => $user->lang[phpbb_groupposition_legend::group_type_language($row['group_type'])],
'U_MOVE_DOWN' => "{$this->u_action}&amp;field=legend&amp;action=move_down&amp;g=" . $row['group_id'], 'U_MOVE_DOWN' => "{$this->u_action}&amp;field=legend&amp;action=move_down&amp;g=" . $row['group_id'],
'U_MOVE_UP' => "{$this->u_action}&amp;field=legend&amp;action=move_up&amp;g=" . $row['group_id'], 'U_MOVE_UP' => "{$this->u_action}&amp;field=legend&amp;action=move_up&amp;g=" . $row['group_id'],
'U_DELETE' => "{$this->u_action}&amp;field=legend&amp;action=delete&amp;g=" . $row['group_id'], 'U_DELETE' => "{$this->u_action}&amp;field=legend&amp;action=delete&amp;g=" . $row['group_id'],
)); ));
} }
else else