Issue 2378: Admin UI Refactoring - Advanced - Easy Install

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11606 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2012-10-08 02:40:27 +00:00
parent 27da205cce
commit 6250019914
6 changed files with 280 additions and 176 deletions

View file

@ -328,7 +328,14 @@
<value xml:lang="en"><![CDATA[Cannot delete this package (no moduleUninstall() in the module class).]]></value>
<value xml:lang="jp"><![CDATA[このパッケージは、削除をサポートしません(モジュールクラスにmoduleUninstall()がありません)。]]></value>
</item>
<item name="msg_update_core_title">
<value xml:lang="ko"><![CDATA[XE core가 업데이트 됩니다.]]></value>
</item>
<item name="msg_update_core">
<value xml:lang="ko"><![CDATA[<strong style="color:red">XE core가 업데이트 됩니다.</strong><br />core 업데이트 시 설치된 프로그램의 호환성을 반드시 점검하시기 바랍니다.]]></value>
<value xml:lang="ko"><![CDATA[core 업데이트 시 설치된 프로그램의 호환성을 반드시 점검하시기 바랍니다.]]></value>
</item>
<item name="installed">
<value xml:lang="ko"><![CDATA[설치 됨]]></value>
<value xml:lang="en"><![CDATA[Installed]]></value>
</item>
</lang>

View file

@ -1,21 +1,14 @@
<div class="easyNav">
<div loop="$categories => $category" cond="$category->depth == 0" class="category">
<h2>{$category->title}</h2>
<ul>
<li loop="$category->children => $children">
<block cond="$children->category_srl == $category_srl">
{@$current_category = $children->title}
<strong>{$children->title}({$children->nPackages})</strong>
</block>
<block cond="$children->category_srl != $category_srl"><a href="{getUrl('','module','admin','act','dispAutoinstallAdminIndex','category_srl',$children->category_srl,'childrenList','')}">{$children->title}({$children->nPackages})</a></block>
<ul class="x_nav x_nav-tabs">
<li class="x_active"|cond="$act == 'dispAutoinstallAdminIndex'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminIndex')}">All({$tCount})</a></li>
<li class="x_active"|cond="$act == 'dispAutoinstallAdminInstalledPackages'"><a href="{getUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstalledPackages')}">Installed({$iCount})</a></li>
</ul>
<div cond="$act == 'dispAutoinstallAdminIndex'" class="x_row-fluid" style="margin-bottom:20px">
<ul loop="$categories => $category" cond="$category->depth == 0" class="x_nav x_nav-list x_well x_span6">
<li class="x_nav-header">{$category->title}</li>
<li loop="$category->children => $children" class="x_active"|cond="$children->category_srl == $category_srl">
<a href="{getUrl('','module','admin','act','dispAutoinstallAdminIndex','category_srl',$children->category_srl,'childrenList','')}">{$children->title}({$children->nPackages})</a>
</li>
</ul>
</div>
<p class="filter">
<a cond="$act != 'dispAutoinstallAdminIndex'" href="{getUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminIndex')}">All({$tCount})</a>
<strong cond="$act == 'dispAutoinstallAdminIndex'">All({$tCount})</strong>
|
<a cond="$act != 'dispAutoinstallAdminInstalledPackages'" href="{getUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstalledPackages')}">Installed({$iCount})</a>
<strong cond="$act == 'dispAutoinstallAdminInstalledPackages'">Installed({$iCount})</strong>
</p>
</div>

View file

@ -1 +1,4 @@
<h1 class="h1">{$lang->autoinstall}</h1>
<load target="../../../common/css/bootstrap-responsive.css" index="100" />
<div class="x_page-header">
<h1>{$lang->autoinstall}</h1>
</div>

View file

@ -1,13 +1,15 @@
<include target="header.html" />
<load target="js/waiting.js" usecdn="true" />
<h2 class="h2">{$package->title} ver. {$package->version}</h2>
<div cond="$contain_core" class="message info">
<h2>{$package->title} ver. {$package->version}</h2>
<div cond="$contain_core" class="x_alert x_alert-block">
<h4>{$lang->msg_update_core_title}</h4>
<p>{$lang->msg_update_core}</p>
</div>
<p cond="$package->installed">{$lang->current_version}: {$package->cur_version} <block cond="$package->need_update">({$lang->require_update})</block></p>
<p cond="!$package->installed">{$lang->require_installation}</p>
<block cond="$package->depends">
<div class="x_well">
<p cond="$package->installed">{$lang->current_version}: {$package->cur_version} <block cond="$package->need_update">({$lang->require_update})</block></p>
<p cond="!$package->installed">{$lang->require_installation}</p>
<block cond="$package->depends">
<p>{$lang->about_depending_programs}</p>
<ul>
<li loop="$package->depends => $dep">
@ -19,20 +21,21 @@
</block>
</li>
</ul>
</block>
</block>
</div>
<block cond="!$package->installed || $package->need_update">
<block cond="$show_ftp_note">
<div cond="$show_ftp_note" class="x_well x_clearfix">
<p>{$lang->description_download}. (<a href="{getUrl('', 'module', 'admin', 'act', 'dispAdminConfigFtp')}">FTP Setup</a>)</p>
<p>{$lang->path}: {$package->path}</p>
<p><a href="{_XE_DOWNLOAD_SERVER_}?module=resourceapi&act=procResourceapiDownload&package_srl={$package->package_srl}">{$lang->cmd_download}</a>
</block>
<block cond="!$show_ftp_note">
<p>{$lang->description_install}</p>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p><a class="x_btn x_btn-primary x_pull-right" href="{_XE_DOWNLOAD_SERVER_}?module=resourceapi&act=procResourceapiDownload&package_srl={$package->package_srl}">{$lang->cmd_download}</a>
</div>
<div cond="!$show_ftp_note">
<p style="border-bottom:1px solid #ccc"|cond="$need_password">{$lang->description_install}</p>
<div cond="$XE_VALIDATOR_MESSAGE" class="x_alert x_alert-error">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form action="./" class="form" method="post" ruleset="ftp">
<form action="./" class="x_form-horizontal" method="post" ruleset="ftp">
<input type="hidden" name="module" value="autoinstall" />
<input type="hidden" name="act" value="procAutoinstallAdminPackageinstall" />
<input type="hidden" name="package_srl" value="{$package->package_srl}" />
@ -40,12 +43,19 @@
<input cond="!$need_password" type="hidden" name="ftp_password" value="dummy" />
<block cond="$need_password">
<p class="q"><label for="ftp_password">FTP {$lang->password}</label></p>
<p class="a"><input type="password" name="ftp_password" id="ftp_password" value="" /> <span class="desc">{$lang->about_ftp_password}</span></p>
<div class="x_control-group">
<label class="x_control-label" for="ftp_password">FTP {$lang->password}</label>
<div class="x_controls">
<input type="password" name="ftp_password" id="ftp_password" value="" />
<span class="x_help-block">{$lang->about_ftp_password}</span>
</div>
</div>
</block>
<div class="btnArea">
<span class="btn medium"><input type="submit" value="{$package->installed?$lang->update:$lang->install}" /></span>
<div class="x_clearfix btnArea">
<div class="x_pull-right">
<input class="x_btn x_btn-primary" type="submit" value="{$package->installed?$lang->update:$lang->install}" />
</div>
</div>
</form>
</block>
</div>
</block>

View file

@ -1,12 +1,6 @@
<include target="category.html" />
<div class="table even easyList dsTg">
<table width="100%" border="1" cellspacing="0">
<caption>
<block cond="$current_category">{$current_category}</block>
<block cond="!$current_category">All</block>
({sprintf('%d', $page_navigation->total_count)})
<span cond="$act == 'dispAutoinstallAdminIndex'" class="side">
<div class="x_clearfix">
<div cond="$act == 'dispAutoinstallAdminIndex'" class="x_pull-left">
<!--@if($order_target == 'newest')-->
<!--@if($order_type == 'desc')-->{@$_newest_order_type = 'asc'}<!--@else-->{@$_newest_order_type = 'desc'}<!--@end-->
<!--@else-->
@ -22,18 +16,74 @@
<!--@else-->
{@$_popular_order_type = 'desc'}
<!--@end-->
<a href="{getUrl('order_target','newest','order_type',$_newest_order_type)}">{$lang->order_newest}<!--@if($order_target == 'newest')--><i class="<!--@if($_newest_order_type == 'asc')-->x_icon-arrow-down<!--@else-->x_icon-arrow-up<!--@end-->">{$_newest_order_type}</i><!--@end--></a>
<i>|</i>
<a href="{getUrl('order_target','download','order_type',$_download_order_type)}">{$lang->order_download}<!--@if($order_target == 'download')--><i class="<!--@if($_newest_order_type == 'asc')-->x_icon-arrow-down<!--@else-->x_icon-arrow-up<!--@end-->">{$_newest_order_type}</i><!--@end--></a>
<i>|</i>
<a href="{getUrl('order_target','popular','order_type',$_popular_order_type)}">{$lang->order_popular}<!--@if($order_target == 'popular')--><i class="<!--@if($_newest_order_type == 'asc')-->x_icon-arrow-down<!--@else-->x_icon-arrow-up<!--@end-->">{$_newest_order_type}</i><!--@end--></a></li>
</div>
<div class="x_btn-group x_pull-right x_nav">
<button id="__btn_simple" class="x_btn x_active">{$lang->simple_view}</button>
<button id="__btn_detail" class="x_btn">{$lang->detail_view}</button>
</div>
</div>
Sort by
<a href="{getUrl('order_target','newest','order_type',$_newest_order_type)}">{$lang->order_newest}<!--@if($order_target == 'newest')--><!--@if($_newest_order_type == 'asc')--><!--@else--><!--@end--><!--@end--></a> |
<a href="{getUrl('order_target','download','order_type',$_download_order_type)}">{$lang->order_download}<!--@if($order_target == 'download')--><!--@if($_download_order_type == 'asc')--><!--@else--><!--@end--><!--@end--></a> |
<a href="{getUrl('order_target','popular','order_type',$_popular_order_type)}">{$lang->order_popular}<!--@if($order_target == 'popular')--><!--@if($_popular_order_type == 'asc')--><!--@else--><!--@end--><!--@end--></a>
</span>
<span class="side"><button type="button" class="text"><span class="hide">{$lang->simple_view}</span><span class="show">{$lang->detail_view}</span></button></span>
<div id="__list_simple">
<strong>
<block cond="$current_category">{$current_category}</block>
<block cond="!$current_category">All</block>
({sprintf('%d', $page_navigation->total_count)})
</strong>
<div class="x_row-fluid">
{@$c = 0}
<block loop="$item_list => $key, $item">
{@ $target_url = $original_site."?mid=download&package_srl=".$item->package_srl; }
{@$c++}
<div class="x_well x_span6" style="position:relative;padding-left:135px;">
<div class="x_thumbnail" style="position:absolute;left:15px">
<img src="{str_replace('./', $uri, $item->item_screenshot_url)}" alt="" width="100" height="100" />
</div>
<div style="text-align:right">
<p>{$item->category}</p>
<h4 style="text-overflow:ellipsis;overflow:hidden;white-space:nowrap"><a href="{$target_url}" title="{htmlspecialchars($item->title)}" target="_blank">{htmlspecialchars($item->title)}</a></h4>
<p>
<block cond="(int)$item->package_voter > 0">
<span class="starRating" style="text-align:left"><span style="width:{sprintf("%d",$item->package_voted/$item->package_voter*20)}%">{sprintf($lang->rate, $item->package_start)}</span></span>
<span class="x_label">{sprintf("%0.1f",$item->package_voted/$item->package_voter*2)}/{number_format($item->package_voter)}</label>
</block>
<block cond="(int)$item->package_voter <= 0">
<span class="starRating" style="text-align:left"><span style="width:0%">0</span></span>
<span class="x_label">0/0</span>
</block>
</p>
<p>
<a cond="$item->current_version && $item->need_update != 'Y'" class="x_btn x_disabled" href="#">{$lang->installed}</a>
<a cond="!$item->current_version" class="x_btn x_btn-primary" href="{getUrl('act','dispAutoinstallAdminInstall','package_srl',$item->package_srl)}">{$lang->install}</a>
<a cond="!$show_ftp_note && $item->current_version && $item->avail_remove" class="x_btn x_btn-primary" href="{getUrl('act','dispAutoinstallAdminUninstall','package_srl',$item->package_srl)}">{$lang->cmd_delete}</a>
<a cond="$item->current_version && $item->need_update == 'Y'" class="x_btn x_btn-primary" href="{getUrl('act','dispAutoinstallAdminInstall','package_srl',$item->package_srl)}">{$lang->update}</a>
</p>
</div>
</div>
<!--@if($c % 2 == 0)-->
</div>
<div class="x_row-fluid">
<!--@end-->
</block>
</div>
</div>
<table id="__list_detail" class="x_table x_table-striped x_table-hover" style="display:none">
<caption>
<strong>
<block cond="$current_category">{$current_category}</block>
<block cond="!$current_category">All</block>
({sprintf('%d', $page_navigation->total_count)})
</strong>
</caption>
<thead>
<tr>
<th scope="col" class="nowr">{$lang->category}</th>
<th scope="col" class="thumb">{$lang->thumbnail}</th>
<th scope="col" class="nowr">{$lang->thumbnail}</th>
<th scope="col" class="title">{$lang->name}</th>
<th scope="col" class="nowr">{$lang->distribute_version}</th>
<th scope="col" class="nowr">{$lang->current_version}</th>
@ -44,20 +94,24 @@
<tr loop="$item_list => $key, $item">
{@ $target_url = $original_site."?mid=download&package_srl=".$item->package_srl; }
<td class="nowr">{$item->category}</td>
<td class="thumb"><img src="{str_replace('./', $uri, $item->item_screenshot_url)}" alt="" width="100" height="100" /></td>
<td>
<div class="x_thumbnail">
<img src="{str_replace('./', $uri, $item->item_screenshot_url)}" alt="" width="100" height="100" />
</div>
</td>
<td class="title">
<p><a href="{$target_url}">{htmlspecialchars($item->title)}</a></p>
<p><a href="{$target_url}" target="_blank">{htmlspecialchars($item->title)}</a></p>
<p>{cut_str(htmlspecialchars($item->package_description),200)}</p>
<p>
<block cond="(int)$item->package_voter > 0">
<span class="starRating"><span style="width:{sprintf("%d",$item->package_voted/$item->package_voter*20)}%">{sprintf($lang->rate, $item->package_start)}</span></span>
{sprintf("%0.1f",$item->package_voted/$item->package_voter*2)}/{number_format($item->package_voter)} |
<span class="x_badge">{sprintf("%0.1f",$item->package_voted/$item->package_voter*2)}/{number_format($item->package_voter)}</span> <i>|</i>
</block>
<block cond="(int)$item->package_voter <= 0">
<span class="starRating"><span style="width:0%">0</span></span>
0/0 |
<span class="x_badge">0/0</span> <i>|</i>
</block>
{$lang->package_update} {zdate($item->item_regdate, "Y-m-d H:i")} |
{$lang->package_update} {zdate($item->item_regdate, "Y-m-d H:i")} <i>|</i>
{$lang->package_downloaded_count} : {number_format($item->package_downloaded)}
</p>
<p cond="$item->deps">{$lang->dependant_list}:</p>
@ -68,56 +122,84 @@
<td class="nowr">{htmlspecialchars($item->item_version)}</td>
<td class="nowr">{htmlspecialchars($item->current_version)}</td>
<td class="nowr">
<a cond="!$item->current_version" href="{getUrl('act','dispAutoinstallAdminInstall','package_srl',$item->package_srl)}">{$lang->install}</a>
<a cond="!$show_ftp_note && $item->current_version && $item->avail_remove" href="{getUrl('act','dispAutoinstallAdminUninstall','package_srl',$item->package_srl)}">{$lang->cmd_delete}</a>
<a cond="$item->current_version && $item->need_update == 'Y'" href="{getUrl('act','dispAutoinstallAdminInstall','package_srl',$item->package_srl)}">{$lang->update}</a>
<a cond="$item->current_version && $item->need_update != 'Y'" class="x_btn x_disabled" href="#">{$lang->installed}</a>
<a cond="!$item->current_version" class="x_btn x_btn-primary" href="{getUrl('act','dispAutoinstallAdminInstall','package_srl',$item->package_srl)}">{$lang->install}</a>
<a cond="!$show_ftp_note && $item->current_version && $item->avail_remove" class="x_btn x_btn-primary" href="{getUrl('act','dispAutoinstallAdminUninstall','package_srl',$item->package_srl)}">{$lang->cmd_delete}</a>
<a cond="$item->current_version && $item->need_update == 'Y'" class="x_btn x_btn-primary" href="{getUrl('act','dispAutoinstallAdminInstall','package_srl',$item->package_srl)}">{$lang->update}</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="search">
<form action="./" class="pagination" cond="$page_navigation">
<input type="hidden" name="error_return_url" value="" />
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<input cond="$order_target" type="hidden" name="order_target" value="{$order_target}" />
<input cond="$order_type" type="hidden" name="order_type" value="{$order_type}" />
<input cond="$category_srl" type="hidden" name="category_srl" value="{$category_srl}" />
<input cond="$childrenList" type="hidden" name="childrenList" value="{$childrenList}" />
<input cond="$search_keyword" type="hidden" name="search_keyword" value="{$search_keyword}" />
</table>
<a href="{getUrl('page', '')}" class="direction">&laquo; FIRST</a>
<block cond="$page_navigation->first_page + $page_navigation->page_count > $page_navigation->last_page && $page_navigation->page_count != $page_navigation->total_page">
<form cond="$page_navigation" action="./" class="x_pagination x_pagination-centered" no-error-return-url="true">
{@
$urlInfo = parse_url(getRequestUriByServerEnviroment());
parse_str($urlInfo['query'], $param);
}
<input loop="$param => $key, $val" cond="!in_array($key, array('mid', 'vid', 'act'))" type="hidden" name="{$key}" value="{$val}" />
<ul>
<li class="x_disabled"|cond="!$page || $page == 1"><a href="{getUrl('page', '')}">&laquo; {$lang->first_page}</a></li>
<block cond="$page_navigation->first_page != 1 && $page_navigation->first_page + $page_navigation->page_count > $page_navigation->last_page - 1 && $page_navigation->page_count != $page_navigation->total_page">
{@$isGoTo = true}
<a href="{getUrl('page', '')}">1</a>
<a href="#goTo" class="tgAnchor" title="{$lang->cmd_go_to_page}">...</a>
<li>
<a href="#goTo" data-toggle="#goTo" title="{$lang->cmd_go_to_page}">...</a>
<span cond="$isGoTo" id="goTo" class="x_input-append">
<input type="number" min="1" max="{$page_navigation->last_page}" required name="page" title="{$lang->cmd_go_to_page}" />
<button type="submit" class="x_add-on">Go</button>
</span>
</li>
</block>
<!--@while($page_no = $page_navigation->getNextPage())-->
{@$last_page = $page_no}
<strong cond="$page_no == $page">{$page_no}</strong>
<a cond="$page_no != $page" href="{getUrl('page', $page_no)}">{$page_no}</a>
<li class="x_active"|cond="$page_no == $page"><a href="{getUrl('page', $page_no)}">{$page_no}</a></li>
<!--@end-->
<block cond="$last_page != $page_navigation->last_page">
<block cond="$last_page != $page_navigation->last_page && $last_page + 1 != $page_navigation->last_page">
{@$isGoTo = true}
<a href="#goTo" class="tgAnchor" title="{$lang->cmd_go_to_page}">...</a>
<a href="{getUrl('page', $page_navigation->last_page)}">{$page_navigation->last_page}</a>
</block>
<a href="{getUrl('page', $page_navigation->last_page)}" class="direction">LAST &raquo;</a>
<span cond="$isGoTo" id="goTo" class="tgContent">
<input name="page" title="{$lang->cmd_go_to_page}" />
<button type="submit">Go</button>
<li>
<a href="#goTo" data-toggle="#goTo" title="{$lang->cmd_go_to_page}">...</a>
<span cond="$isGoTo" id="goTo" class="x_input-append">
<input type="number" min="1" max="{$page_navigation->last_page}" required name="page" title="{$lang->cmd_go_to_page}" />
<button type="submit" class="x_add-on">Go</button>
</span>
</form>
<form cond="$act == 'dispAutoinstallAdminIndex'" action="./">
<input type="hidden" name="error_return_url" value="" />
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<input cond="$order_target" type="hidden" name="order_target" value="{$order_target}" />
<input cond="$order_type" type="hidden" name="order_type" value="{$order_type}" />
<input cond="$category_srl" type="hidden" name="category_srl" value="{$category_srl}" />
<input cond="$childrenList" type="hidden" name="childrenList" value="{$childrenList}" />
<input name="search_keyword" title="Search" value="{$search_keyword}" />
<input type="submit" value="Search" />
</form>
</div>
</li>
</block>
<li class="x_disabled"|cond="$page == $page_navigation->last_page"><a href="{getUrl('page', $page_navigation->last_page)}" title="{$page_navigation->last_page}">{$lang->last_page} &raquo;</a></li>
</ul>
</form>
<form action="./" class="search center x_input-append" no-error-return-url="true">
<input loop="$param => $key, $val" cond="!in_array($key, array('mid', 'vid', 'act', 'page'))" type="hidden" name="{$key}" value="{$val}" />
<input type="search" name="search_keyword" required title="Search" value="{htmlspecialchars($search_keyword)}">
<button class="x_btn x_btn-inverse" type="submit">{$lang->cmd_search}</button>
<a href="{getUrl('page', '', 'search_keyword', '')}" class="x_btn">{$lang->cmd_cancel}</a>
</form>
<script>
jQuery(function($){
var $btnSimple = $('#__btn_simple');
var $btnDetail = $('#__btn_detail');
var $listSimple = $('#__list_simple');
var $listDetail = $('#__list_detail');
$btnSimple.click(function(){
$btnSimple.addClass('x_active');
$btnDetail.removeClass('x_active');
$listSimple.show();
$listDetail.hide();
setCookie('__autoinstall_view_type', 'simple');
});
$btnDetail.click(function(){
$btnSimple.removeClass('x_active');
$btnDetail.addClass('x_active');
$listSimple.hide();
$listDetail.show();
setCookie('__autoinstall_view_type', 'detail');
});
var viewType = getCookie('__autoinstall_view_type');
if(viewType == 'detail'){
$btnDetail.trigger('click');
}
});
</script>

View file

@ -1,18 +1,18 @@
<include target="header.html" />
<load target="js/waiting.js" usecdn="true" />
<h2 class="h2">{$package->title}</h2>
<h2>{$package->title}</h2>
<p>{$package->type} ({$package->path})</p>
<block cond="$package->avail_remove">
<div class="message info">
<div class="x_alert x_alert-block">
<p>{$lang->description_uninstall}</p>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<div cond="$XE_VALIDATOR_MESSAGE" class="x_alert x_alert-error">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form action="./" class="form" method="post" ruleset="ftp">
<form action="./" class="x_form-horizontal" method="post" ruleset="ftp">
<input type="hidden" name="module" value="autoinstall" />
<input type="hidden" name="act" value="procAutoinstallAdminUninstallPackage" />
<input type="hidden" name="package_srl" value="{$package_srl}" />
@ -20,22 +20,31 @@
<input cond="!$need_password" type="hidden" name="ftp_password" value="dummy" />
<block cond="$need_password">
<p class="q"><label for="ftp_password">FTP {$lang->password}</label></p>
<p class="a"><input type="password" name="ftp_password" id="ftp_password" value="" /> <span class="desc">{$lang->about_ftp_password}</span></p>
<div class="x_control-group">
<label class="x_control-label" for="ftp_password">FTP {$lang->password}</label>
<div class="x_controls">
<input type="password" name="ftp_password" id="ftp_password" value="" />
<span class="x_help-block">{$lang->about_ftp_password}</span>
</div>
</div>
</block>
<div class="btnArea">
<span class="btn medium"><input type="submit" value="{$lang->cmd_delete}" /></span>
<div class="x_clearfix btnArea">
<div class="x_pull-right">
<input class="x_btn x_btn-primary" type="submit" value="{$lang->cmd_delete}" />
</div>
</div>
</form>
</block>
<block cond="!$package->avail_remove">
<div class="message error">
<div class="x_alert x_alert-error">
<p cond="$package->deps">{$lang->msg_dependency_package}</p>
<p cond="!$package->deps">{$lang->msg_does_not_support_delete}</p>
</div>
<div class="x_well">
<p cond="$package->deps">{$lang->dependant_list}:</p>
<ul cond="$package->deps">
<li loop="$package->deps => $dep_package_srl">{$installed[$dep_package_srl]->title}</li>
</ul>
</div>
</block>