feature 1557: new design for plugin list management, 1 block = 1 status.

No icon.

git-svn-id: http://piwigo.org/svn/trunk@5474 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2010-03-30 13:27:18 +00:00
parent 0410e5e1ef
commit 75ba6ad47a
6 changed files with 116 additions and 108 deletions

View file

@ -58,48 +58,35 @@ $plugins->set_tabsheet($page['page']);
//---------------------------------------------------------------Order options
$link = get_root_url().'admin.php?page='.$page['page'].'&order=';
$template->assign('order_options',
$template->assign(
'order_options',
array(
$link.'name' => l10n('Name'),
$link.'status' => l10n('Status'),
$link.'author' => l10n('Author'),
$link.'id' => 'Id'));
$link.'id' => 'Id')
);
$template->assign('order_selected', $link.$order);
// +-----------------------------------------------------------------------+
// | start template output |
// +-----------------------------------------------------------------------+
$plugins->sort_fs_plugins($order);
foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
{
$display_name = $fs_plugin['name'];
if (!empty($fs_plugin['uri']))
{
$display_name = '<a href="' . $fs_plugin['uri']
. '" onclick="window.open(this.href); return false;">'
. $display_name . '</a>';
}
$desc = $fs_plugin['description'];
if (!empty($fs_plugin['author']))
{
$desc .= ' (<em>';
if (!empty($fs_plugin['author uri']))
{
$desc .= '<a href="' . $fs_plugin['author uri'] . '">'
. $fs_plugin['author'] . '</a>';
}
else
{
$desc .= $fs_plugin['author'];
}
$desc .= '</em>)';
}
$tpl_plugin =
array('NAME' => $display_name,
'VERSION' => $fs_plugin['version'],
'DESCRIPTION' => $desc,
'U_ACTION' => sprintf($action_url, $plugin_id));
$tpl_plugin = array(
'NAME' => $fs_plugin['name'],
'VISIT_URL' => $fs_plugin['uri'],
'VERSION' => $fs_plugin['version'],
'DESC' => $fs_plugin['description'],
'AUTHOR' => $fs_plugin['author'],
'AUTHOR_URL' => $fs_plugin['author uri'],
'U_ACTION' => sprintf($action_url, $plugin_id)
);
if (isset($plugins->db_plugins_by_id[$plugin_id]))
{
@ -109,25 +96,37 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin)
{
$tpl_plugin['STATE'] = 'uninstalled';
}
$template->append('plugins', $tpl_plugin);
}
$missing_plugin_ids = array_diff(
array_keys($plugins->db_plugins_by_id), array_keys($plugins->fs_plugins)
);
array_keys($plugins->db_plugins_by_id),
array_keys($plugins->fs_plugins)
);
foreach($missing_plugin_ids as $plugin_id)
{
$template->append( 'plugins',
array(
'NAME' => $plugin_id,
'VERSION' => $plugins->db_plugins_by_id[$plugin_id]['version'],
'DESCRIPTION' => "ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW !",
'U_ACTION' => sprintf($action_url, $plugin_id),
'STATE' => 'missing'
$template->append(
'plugins',
array(
'NAME' => $plugin_id,
'VERSION' => $plugins->db_plugins_by_id[$plugin_id]['version'],
'DESC' => "ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW !",
'U_ACTION' => sprintf($action_url, $plugin_id),
'STATE' => 'missing',
)
);
}
$template->append('plugin_states', 'active');
$template->append('plugin_states', 'inactive');
$template->append('plugin_states', 'uninstalled');
if (count($missing_plugin_ids) > 0)
{
$template->append('plugin_states', 'missing');
}
$template->assign_var_from_handle('ADMIN_CONTENT', 'plugins');
?>

View file

@ -233,3 +233,6 @@ html>body #menubar {min-height:477px; height:477px;} /* IE 7 and modern browsers
#pwgHead, #footer {color:#666;}
#pwgHead A, #footer A {color:#444;}
#pwgHead A:hover, #footer A:hover {color:black; border-color:black;}
.pluginBox {background-color:#ddd;color:#333}
.pluginBoxNameCell {font-weight:bold;}

View file

@ -802,4 +802,9 @@ h2:lang(en) { text-transform:capitalize; }
.infos .submit {margin-left:30px;}
.checkActions {text-align:left;padding:0;margin:0;}
.comment A:hover {border:none;}
.comment A:hover {border:none;}
.pluginBox {margin-bottom:10px;-moz-border-radius:5px;}
.pluginBox table {width:99%}
.pluginBox td {text-align:left;}
.pluginBoxNameCell {width:150px; vertical-align:top;}

View file

@ -51,6 +51,13 @@
'fadeOut' : 200,
});
});
$(document).ready(function() {
$("a.externalLink").click(function() {
window.open($(this).attr("href"));
return false;
});
});
</script>
{/literal}

View file

@ -8,81 +8,72 @@
<h2>{'Plugins'|@translate}</h2>
</div>
{if isset($plugins)}
<table class="table2 plugins">
<thead>
<tr class="throw">
<td>{'Name'|@translate}</td>
<td>{'Actions'|@translate}</td>
<td>{'Version'|@translate}</td>
<td>{'Description'|@translate}</td>
</tr>
</thead>
{foreach from=$plugins item=plugin name=plugins_loop}
<tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}">
<td class="pluginState{if $plugin.STATE != 'uninstalled'} {$plugin.STATE}{/if}">
{$plugin.NAME}
</td>
<td>
<ul class="pluginsActions">
{foreach from=$plugin_states item=plugin_state}
<fieldset>
<legend>
{if $plugin_state == 'active'}
Active Plugins
{elseif $plugin_state == 'inactive'}
Inactive Plugins
{elseif $plugin_state == 'uninstalled'}
Uninstalled Plugins
{elseif $plugin_state == 'missing'}
Missing Plugins
{/if}
</legend>
{foreach from=$plugins item=plugin name=plugins_loop}
{if $plugin.STATE == $plugin_state}
<div class="pluginBox">
<table>
<tr>
<td class="pluginBoxNameCell">{$plugin.NAME}</td>
<td>{$plugin.DESC}</td>
</tr>
<tr>
<td>
{if $plugin.STATE == 'active'}
<li>
<a href="{$plugin.U_ACTION}&amp;action=deactivate">
<img src="{$themeconf.admin_icon_dir}/plug_deactivate.png" alt="{'Deactivate'|@translate}" title="{'Deactivate'|@translate}">
</a>
</li>
<li>
<img src="{$themeconf.admin_icon_dir}/plug_uninstall_grey.png" alt="{'Uninstall'|@translate}" title="{'Uninstall'|@translate}">
</li>
<a href="{$plugin.U_ACTION}&amp;action=deactivate">{'Deactivate'|@translate}</a>
{elseif $plugin_state == 'inactive'}
<a href="{$plugin.U_ACTION}&amp;action=activate">{'Activate'|@translate}</a>
| <a href="{$plugin.U_ACTION}&amp;action=uninstall" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">{'Uninstall'|@translate}</a>
{elseif $plugin_state == 'uninstalled'}
<a href="{$plugin.U_ACTION}&amp;action=install">{'Install'|@translate}</a>
| <a href="{$plugin.U_ACTION}&amp;action=delete" onclick="return confirm('{'Are you sure you want to delete this plugin?'|@translate|@escape:'javascript'}');">{'Delete'|@translate}</a>
{elseif $plugin_state == 'missing'}
<a href="{$plugin.U_ACTION}&amp;action=uninstall" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">{'Uninstall'|@translate}</a>
{/if}
{if $plugin.STATE == 'inactive'}
<li>
<a href="{$plugin.U_ACTION}&amp;action=activate">
<img src="{$themeconf.admin_icon_dir}/plug_activate.png" alt="{'Activate'|@translate}" title="{'Activate'|@translate}">
</a>
</li>
<li>
<a href="{$plugin.U_ACTION}&amp;action=uninstall" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">
<img src="{$themeconf.admin_icon_dir}/plug_uninstall.png" alt="{'Uninstall'|@translate}" title="{'Uninstall'|@translate}">
</a>
</li>
</td>
<td>
Version {$plugin.VERSION}
{if not empty($plugin.AUTHOR)}
| By
{if not empty($plugin.AUTHOR_URL)}
<a href="{$plugin.AUTHOR_URL}">{$plugin.AUTHOR}</a>
{else}
{$plugin.AUTHOR}
{/if}
{/if}
{if $plugin.STATE == 'missing'}
<li>
<img src="{$themeconf.admin_icon_dir}/plug_deactivate_grey.png" alt="{'Deactivate'|@translate}" title="{'Deactivate'|@translate}">
</li>
<li>
<a href="{$plugin.U_ACTION}&amp;action=uninstall" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">
<img src="{$themeconf.admin_icon_dir}/plug_uninstall.png" alt="{'Uninstall'|@translate}" title="{'Uninstall'|@translate}">
</a>
</li>
{if not empty($plugin.VISIT_URL)}
| <a class="externalLink" href="{$plugin.VISIT_URL}">Visit plugin site</a>
{/if}
{if $plugin.STATE == 'uninstalled'}
<li>
<img src="{$themeconf.admin_icon_dir}/plug_activate_grey.png" alt="{'Activate'|@translate}" title="{'Activate'|@translate}">
</li>
<li>
<a href="{$plugin.U_ACTION}&amp;action=install" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');">
<img src="{$themeconf.admin_icon_dir}/plug_install.png" alt="{'Install'|@translate}" title="{'Install'|@translate}">
</a>
</li>
<li>
<a href="{$plugin.U_ACTION}&amp;action=delete" onclick="return confirm('{'Are you sure you want to delete this plugin?'|@translate|@escape:'javascript'}');">
<img src="{$themeconf.admin_icon_dir}/plug_delete.png" alt="{'Delete'|@translate}" title="{'Delete'|@translate}">
</a>
</li>
{else}
<li>
<img src="{$themeconf.admin_icon_dir}/plug_delete_grey.png" alt="{'Delete'|@translate}" title="{'Delete'|@translate}">
</li>
</td>
</tr>
</table>
</div>
{/if}
</ul>
</td>
<td style="text-align:center;">{$plugin.VERSION}</td>
<td>{$plugin.DESCRIPTION}</td>
</tr>
{/foreach}
</fieldset>
{/foreach}
</table>
{/if}

View file

@ -239,3 +239,6 @@ html>body #menubar {min-height:522px; height:522px;} /* IE 7 and modern browsers
#helpContent, #pLoaderPage, #ftpPage, #ftpPage LEGEND {color:#aaa;}
#pwgHead, #footer {background-color:#222;}
.pluginBox {background-color:#333;color:#999}
.pluginBoxNameCell {color:#ccc;}