diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 97ad4a4603d9a7ead784f9608d0043cb12fa0adb..83ec411d9ace94c3d859e938a05a653cb13d1105 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -282,7 +282,7 @@ class functions { */ public function formatBytes($size, $precision = 2) { $suffixes=array('', ' kB', ' MB', ' GB', ' TB'); - if($size != 0 || is_nan($size)) { + if($size != 0 && !is_nan($size)) { $base=log($size)/log(1024); $tmpoutput = round(pow(1024, $base-floor($base)), $precision).$suffixes[floor($base)]; } else { diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index 7f5fc6e2f0c537682077f4fbffe8a9e72b7ef3b4..59320bedbdc45ce9f5b6a19842043e020f07c954 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -160,10 +160,13 @@ $dashlet_list = array(); $handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); while ($file = @readdir($handle)) { if ($file != '.' && $file != '..' && !is_dir(ISPC_WEB_PATH.'/dashboard/dashlets/'.$file)) { - $dashlet_name = substr($file, 0, -4); - $dashlet_class = 'dashlet_'.$dashlet_name; - include_once ISPC_WEB_PATH.'/dashboard/dashlets/'.$file; - $dashlet_list[$dashlet_name] = new $dashlet_class; + $splitfilename = explode('.', $file); + if (end($splitfilename) == 'php') { // only allow .php files + $dashlet_name = substr($file, 0, -4); + $dashlet_class = 'dashlet_'.$dashlet_name; + include_once ISPC_WEB_PATH.'/dashboard/dashlets/'.$file; + $dashlet_list[$dashlet_name] = new $dashlet_class; + } } } diff --git a/interface/web/dashboard/dashlets/databasequota.php b/interface/web/dashboard/dashlets/databasequota.php index 6439cdee1269e2c2d2e4db64eb8d3003a1669f81..b126d95a50468652a69681a5aced92759ed8d2ec 100644 --- a/interface/web/dashboard/dashlets/databasequota.php +++ b/interface/web/dashboard/dashlets/databasequota.php @@ -18,7 +18,6 @@ class dashlet_databasequota { $databases = $app->quota_lib->get_databasequota_data( ($_SESSION["s"]["user"]["typ"] != 'admin') ? $_SESSION['s']['user']['client_id'] : null); //print_r($databases); - $has_databasequota = false; if(is_array($databases) && !empty($databases)){ $databases = $app->functions->htmlentities($databases); @@ -26,17 +25,8 @@ class dashlet_databasequota { $has_databasequota = isset($databases[0]['used']); } $tpl->setVar('has_databasequota', $has_databasequota); - + //var_dump($tpl); return $tpl->grab(); } - } - - - - - - - - ?> diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php index d58c3eb8e0dcd8c7c5e5cd362e3a28e35e816fd0..d2dce6d502e3e76f3e5bbb75d09e36db1994c7fa 100644 --- a/interface/web/dashboard/dashlets/limits.php +++ b/interface/web/dashboard/dashlets/limits.php @@ -144,14 +144,16 @@ class dashlet_limits { if($value != 0 || $value == $wb['unlimited_txt']) { $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value; $usage = $this->_get_limit_usage($limit); - $percentage = ($value == '-1' || $value == 0 ? 0 : round(100 * $usage / $value)); + $percentage = ($value == '-1' || $value == 0 ? -1 : round(100 * $usage / $value)); + $progressbar = $percentage > 100 ? 100 : $percentage; $rows[] = array('field' => $field, 'field_txt' => $wb[$field.'_txt'], 'value' => $value_formatted, 'value_raw' => $value, 'usage' => $usage, 'usage_raw' => $usage, - 'percentage' => $percentage); + 'percentage' => $percentage, + 'progressbar' => $progressbar); } } $rows = $app->functions->htmlentities($rows); diff --git a/interface/web/dashboard/dashlets/templates/databasequota.htm b/interface/web/dashboard/dashlets/templates/databasequota.htm index 46db3cc6b818282f7b18c0755b4480f696099b3f..7e4e1071ae2e13a43636f7fe10140ddaae02f118 100644 --- a/interface/web/dashboard/dashlets/templates/databasequota.htm +++ b/interface/web/dashboard/dashlets/templates/databasequota.htm @@ -3,9 +3,9 @@ {tmpl_var name='databasequota_txt'} - {tmpl_var name='database_txt'} - {tmpl_var name='used_txt'} - {tmpl_var name='quota_txt'} + {tmpl_var name='database_txt'} + {tmpl_var name='used_txt'} + {tmpl_var name='quota_txt'} @@ -14,15 +14,15 @@ {tmpl_var name='database_name'} {tmpl_var name='used'} {tmpl_var name='database_quota'} - + {tmpl_if name="database_quota" op="!=" value="unlimited"}
-
+
{tmpl_var name="used_percentage"}% {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='database_quota'}
- + {/tmpl_if} -
\ No newline at end of file + diff --git a/interface/web/dashboard/dashlets/templates/limits.htm b/interface/web/dashboard/dashlets/templates/limits.htm index cc98f78e8cec9073be1077a7f0b4065def344407..d6ea21b60f57e6206867858a80ca5f64cfc06e42 100644 --- a/interface/web/dashboard/dashlets/templates/limits.htm +++ b/interface/web/dashboard/dashlets/templates/limits.htm @@ -3,8 +3,9 @@ {tmpl_var name='limits_txt'} -   -   +   +   +   @@ -12,13 +13,13 @@ {tmpl_var name='field_txt'} {tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'} - + {tmpl_if name="progressbar" op="!=" value="-1"}
-
+
{tmpl_var name='percentage'}% {tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'}
- + {/tmpl_if} diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm index 5ad01d6865a662a5fc9660f7853337da86742228..fcfe68ec98c4ab5e37f34ce389096ad6cfc82272 100644 --- a/interface/web/dashboard/dashlets/templates/mailquota.htm +++ b/interface/web/dashboard/dashlets/templates/mailquota.htm @@ -16,15 +16,15 @@ {tmpl_var name='name'} {tmpl_var name='used'} {tmpl_var name='quota'} - + {tmpl_if name="quota" op="!=" value="unlimited"}
-
+
{tmpl_var name="used_percentage"}% {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='quota'}
- + {tmpl_else}{/tmpl_if} -
\ No newline at end of file +
diff --git a/interface/web/dashboard/dashlets/templates/quota.htm b/interface/web/dashboard/dashlets/templates/quota.htm index 4152ee074d21c3bab033ac51ec95788b060ceb54..9038b20d4c94f5c78c2a5f0ff48858d540d30175 100644 --- a/interface/web/dashboard/dashlets/templates/quota.htm +++ b/interface/web/dashboard/dashlets/templates/quota.htm @@ -16,13 +16,13 @@ {tmpl_var name='used'} {tmpl_var name='soft'} {tmpl_var name='hard'} - + {tmpl_if name="soft" op="!=" value="unlimited"}
-
+
{tmpl_var name="used_percentage"}% {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='soft'}
- + {tmpl_else}{/tmpl_if} diff --git a/interface/web/mail/mail_user_stats.php b/interface/web/mail/mail_user_stats.php index 6b91f3bec8c4cea467bcba790d680ba9754d39b6..55810edcfb3ca7679980389391f50fe128a05c27 100644 --- a/interface/web/mail/mail_user_stats.php +++ b/interface/web/mail/mail_user_stats.php @@ -36,119 +36,30 @@ class list_action extends listform_actions { $tmp_date = date('Y-m'); $tmp_rec = $app->db->queryOneRecord("SELECT traffic as t FROM mail_traffic WHERE mailuser_id = ? AND month = ?", $rec['mailuser_id'], $tmp_date); $rec['this_month_sort'] = $tmp_rec['t']; -// $rec['this_month'] = number_format($app->functions->intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); $rec['this_month'] = $app->functions->formatBytes($tmp_rec['t']); - if ($rec['this_month'] == 'NAN') $rec['this_month'] = '0 KB'; //** Traffic of the current year $tmp_date = date('Y'); $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic) as t FROM mail_traffic WHERE mailuser_id = ? AND month like ?", $rec['mailuser_id'], $tmp_date . '%'); $rec['this_year_sort'] = $tmp_rec['t']; -// $rec['this_year'] = number_format($app->functions->intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); $rec['this_year'] = $app->functions->formatBytes($tmp_rec['t']); - if ($rec['this_year'] == 'NAN') $rec['this_year'] = '0 KB'; //** Traffic of the last month $tmp_date = date('Y-m', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $tmp_rec = $app->db->queryOneRecord("SELECT traffic as t FROM mail_traffic WHERE mailuser_id = ? AND month = ?", $rec['mailuser_id'], $tmp_date); $rec['last_month_sort'] = $tmp_rec['t']; -// $rec['last_month'] = number_format($app->functions->intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); $rec['last_month'] = $app->functions->formatBytes($tmp_rec['t']); - if ($rec['last_month'] == 'NAN') $rec['last_month'] = '0 KB'; //** Traffic of the last year $tmp_date = date('Y', mktime(0, 0, 0, date("m"), date("d"), date("Y")-1)); $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic) as t FROM mail_traffic WHERE mailuser_id = ? AND month like ?", $rec['mailuser_id'], $tmp_date . '%'); $rec['last_year_sort'] = $tmp_rec['t']; -// $rec['last_year'] = number_format($app->functions->intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); $rec['last_year'] = $app->functions->formatBytes($tmp_rec['t']); - if ($rec['last_year'] == 'NAN') $rec['last_year'] = '0 KB'; //* The variable "id" contains always the index variable $rec['id'] = $rec[$this->idx_key]; return $rec; } - - function getQueryString($no_limit = false) { - global $app; - $sql_where = ''; - - //* Generate the search sql - if($app->listform->listDef['auth'] != 'no') { - if($_SESSION['s']['user']['typ'] == "admin") { - $sql_where = ''; - } else { - $sql_where = $app->tform->getAuthSQL('r', $app->listform->listDef['table']).' and'; - //$sql_where = $app->tform->getAuthSQL('r').' and'; - } - } - if($this->SQLExtWhere != '') { - $sql_where .= ' '.$this->SQLExtWhere.' and'; - } - - $sql_where = $app->listform->getSearchSQL($sql_where); - if($app->listform->listDef['join_sql']) $sql_where .= ' AND '.$app->listform->listDef['join_sql']; - $app->tpl->setVar($app->listform->searchValues); - - $order_by_sql = $this->SQLOrderBy; - - //* Generate SQL for paging - $limit_sql = $app->listform->getPagingSQL($sql_where); - $app->tpl->setVar('paging', $app->listform->pagingHTML); - - $extselect = ''; - $join = ''; - - if(!empty($_SESSION['search'][$_SESSION['s']['module']['name'].$app->listform->listDef["name"].$app->listform->listDef['table']]['order'])){ - $order = str_replace(' DESC', '', $_SESSION['search'][$_SESSION['s']['module']['name'].$app->listform->listDef["name"].$app->listform->listDef['table']]['order']); - list($tmp_table, $order) = explode('.', $order); - if($order == 'mail_traffic_last_month'){ - $tmp_date = date('Y-m', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); - $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; - $sql_where .= " AND mt.month like '$tmp_date%'"; - $order_by_sql = str_replace($app->listform->listDef['table'].'.mail_traffic_last_month', 'traffic', $order_by_sql); - } elseif($order == 'mail_traffic_this_month'){ - $tmp_date = date('Y-m'); - $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; - $sql_where .= " AND mt.month like '$tmp_date%'"; - $order_by_sql = str_replace($app->listform->listDef['table'].'.mail_traffic_this_month', 'traffic', $order_by_sql); - } elseif($order == 'mail_traffic_last_year'){ - $tmp_date = date('Y', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); - $extselect .= ', SUM(mt.traffic) as calctraffic'; - $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; - $sql_where .= " AND mt.month like '$tmp_date%'";; - $order_by_sql = str_replace($app->listform->listDef['table'].'.mail_traffic_last_year', 'calctraffic', $order_by_sql); - $order_by_sql = "GROUP BY mailuser_id ".$order_by_sql; - } elseif($order == 'mail_traffic_this_year'){ - $tmp_date = date('Y'); - $extselect .= ', SUM(mt.traffic) as calctraffic'; - $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; - $sql_where .= " AND mt.month like '$tmp_date%'"; - $order_by_sql = str_replace($app->listform->listDef['table'].'.mail_traffic_this_year', 'calctraffic', $order_by_sql); - $order_by_sql = "GROUP BY mailuser_id ".$order_by_sql; - } - } - - if($this->SQLExtSelect != '') { - if(substr($this->SQLExtSelect, 0, 1) != ',') $this->SQLExtSelect = ','.$this->SQLExtSelect; - $extselect .= $this->SQLExtSelect; - } - - $table_selects = array(); - $table_selects[] = trim($app->listform->listDef['table']).'.*'; - $app->listform->listDef['additional_tables'] = trim($app->listform->listDef['additional_tables']); - if($app->listform->listDef['additional_tables'] != ''){ - $additional_tables = explode(',', $app->listform->listDef['additional_tables']); - foreach($additional_tables as $additional_table){ - $table_selects[] = trim($additional_table).'.*'; - } - } - $select = implode(', ', $table_selects); - - $sql = 'SELECT '.$select.$extselect.' FROM '.$app->listform->listDef['table'].($app->listform->listDef['additional_tables'] != ''? ','.$app->listform->listDef['additional_tables'] : '')."$join WHERE $sql_where $order_by_sql $limit_sql"; - return $sql; - } - } $list = new list_action; diff --git a/interface/web/mail/templates/user_quota_stats_list.htm b/interface/web/mail/templates/user_quota_stats_list.htm index 37ac43894ff97e4afec03c8442e1c33da06b32fb..d97ef7e004544f3806942ce41bff9a697a322ef2 100644 --- a/interface/web/mail/templates/user_quota_stats_list.htm +++ b/interface/web/mail/templates/user_quota_stats_list.htm @@ -10,9 +10,9 @@ - - - + + + {tmpl_var name='search_limit'} @@ -33,8 +33,11 @@ {tmpl_var name="name"} {tmpl_var name="used"} {tmpl_var name="quota"} - {tmpl_var name="percentage"} - + + {tmpl_if name="progressbar" op="!=" value="-1"}
+
{tmpl_var name="percentage"}
+
{/tmpl_if} + diff --git a/interface/web/mail/user_quota_stats.php b/interface/web/mail/user_quota_stats.php index 39e7cf5156fb40c616e319f312f2f73964588f1b..f55b5dd11b812dccfd9071dba916c8ef86e1207f 100644 --- a/interface/web/mail/user_quota_stats.php +++ b/interface/web/mail/user_quota_stats.php @@ -53,18 +53,23 @@ class list_action extends listform_actions { if($rec['quota'] == 0){ $rec['quota'] = $app->lng('unlimited'); - $rec['percentage'] = 'n/a'; + $rec['percentage'] = '0%'; $rec['percentage_sort'] = 0; + $rec['progressbar'] = -1; } else { $rec['percentage'] = round(100 * $rec['used'] / $rec['quota']) . '%'; $rec['percentage_sort'] = round(100 * $rec['used'] / $rec['quota']); $rec['quota'] = round($rec['quota'] / 1048576, 4).' MB'; + if($rec['percentage_sort'] > 100) { + $rec['progressbar'] = 100; + } else { + $rec['progressbar'] = $rec['percentage_sort']; + } } - + //echo 'progressbar: ' . $rec['progressbar'] . '
'; $rec['used_sort'] = $rec['used']; $rec['used']=$app->functions->formatBytes($rec['used']); - if ($rec['used'] == 'NAN') $rec['used']='0 KB'; //* The variable "id" contains always the index variable $rec['id'] = $rec[$this->idx_key]; diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php index 171f6463e3db91ba18446c4069190965bf588d6d..900322c8176e082616c9d8a3ce1d1be27bd4ecea 100644 --- a/interface/web/sites/database_quota_stats.php +++ b/interface/web/sites/database_quota_stats.php @@ -77,10 +77,12 @@ class list_action extends listform_actions { if($rec['quota'] == 0){ $rec['quota'] = $app->lng('unlimited'); $rec['percentage'] = 'n/a'; + $rec['progressbar'] = -1; } else { if ($rec['used'] > 0 ) { $rec['percentage'] = round(100 * intval($rec['used']) / ( intval($rec['quota'])*1024*1024) ); $rec['percentage_sort'] = $rec['percentage']; + $rec['progressbar'] = $rec['percentage'] > 100 ? 100 : $rec['percentage']; $rec['percentage'] = $rec['percentage'].'%'; } $rec['quota'] = $app->functions->formatBytes($rec['quota']*1024*1024); diff --git a/interface/web/sites/list/user_quota_stats.list.php b/interface/web/sites/list/user_quota_stats.list.php index ee83b653d73364ceb0cc9da3ac223d03f57e93a4..e7d88115a8bfe25f0a458e5f728a3bcba6265f08 100644 --- a/interface/web/sites/list/user_quota_stats.list.php +++ b/interface/web/sites/list/user_quota_stats.list.php @@ -43,7 +43,7 @@ $liste["paging_tpl"] = "templates/paging.tpl.htm"; $liste["auth"] = "yes"; // mark columns for php sorting (no real mySQL columns) -$liste["phpsort"] = array('used_sort', 'soft_sort', 'hard_sort', 'files'); +$liste["phpsort"] = array('used_sort', 'soft_sort', 'hard_sort', 'files', 'percentage'); /***************************************************** diff --git a/interface/web/sites/templates/backup_stats_list.htm b/interface/web/sites/templates/backup_stats_list.htm index 3ebdfa05060aa019ff89cd3eefdf04e3cd370c29..1955191a947b27f89e54d36bcfd80f38197723d0 100644 --- a/interface/web/sites/templates/backup_stats_list.htm +++ b/interface/web/sites/templates/backup_stats_list.htm @@ -15,6 +15,7 @@ + {tmpl_var name='search_limit'}   @@ -22,6 +23,7 @@       +   @@ -36,6 +38,7 @@ {tmpl_var name="backup_interval"} / {tmpl_var name="backup_copies"} {tmpl_var name="backup_copies_exists"} {tmpl_var name="backup_size"} + diff --git a/interface/web/sites/templates/database_quota_stats_list.htm b/interface/web/sites/templates/database_quota_stats_list.htm index d27d431bb54373b19c9ef64f186c1ea05b2c3c0f..6964bb8029fad5c32de691b258ea401b1ab65289 100644 --- a/interface/web/sites/templates/database_quota_stats_list.htm +++ b/interface/web/sites/templates/database_quota_stats_list.htm @@ -36,8 +36,10 @@ {tmpl_var name="client"} {tmpl_var name="used"} {tmpl_var name="quota"} - {tmpl_var name="percentage"} - + {tmpl_if name="progressbar" op="!=" value="-1"}
+
{tmpl_var name="percentage"}
+
{/tmpl_if} + diff --git a/interface/web/sites/templates/user_quota_stats_list.htm b/interface/web/sites/templates/user_quota_stats_list.htm index 09328a4c73c4192ef0e4dc3a5a3841ba95e2d1cd..ecbcd542e5d3a5ba4bfcc2e6863ac688ca704664 100644 --- a/interface/web/sites/templates/user_quota_stats_list.htm +++ b/interface/web/sites/templates/user_quota_stats_list.htm @@ -8,12 +8,13 @@ - + - + + @@ -35,9 +36,11 @@ - + - + diff --git a/interface/web/sites/user_quota_stats.php b/interface/web/sites/user_quota_stats.php index 6e1f137c1626f25dfc2afe2b746f72df4cbdc505..bc00827e11061c0e72a8fedc3375f8640c110dcd 100644 --- a/interface/web/sites/user_quota_stats.php +++ b/interface/web/sites/user_quota_stats.php @@ -59,6 +59,8 @@ class list_action extends listform_actions { $rec['used'] = $rec['used'][1]; } } + $rec['percentage'] = $rec['soft'] != 0 ? round(($rec['used']/$rec['soft'])*100) : -1; + $rec['progressbar'] = $rec['percentage'] > 100 ? 100 : $rec['percentage']; $rec['used_sort'] = $rec['used']; if (!is_numeric($rec['soft'])) $rec['soft']=$rec['soft'][1]; if (!is_numeric($rec['hard'])) $rec['hard']=$rec['hard'][1]; @@ -67,7 +69,6 @@ class list_action extends listform_actions { $rec['soft'] = $rec['soft'] == 0 ? $app->lng('unlimited') : $rec['soft']=$app->functions->formatBytes($rec['soft']*1024); $rec['hard'] = $rec['hard'] == 0 ? $app->lng('unlimited') : $rec['hard']=$app->functions->formatBytes($rec['hard']*1024); $rec['files'] = is_numeric($rec['files']) ? $rec['files'] : 0; - //* The variable "id" contains always the index variable $rec['id'] = $rec[$this->idx_key]; return $rec; diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css index aeb6f9ecd0e72c30a98f7773223d714c17d0e241..89dc24693e7202171968fc6cf390a052d9f8b7ac 100644 --- a/interface/web/themes/default/assets/stylesheets/ispconfig.css +++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css @@ -263,8 +263,16 @@ body { .progress { display: inline-block; margin-bottom: 0; - width: 150px; - height: 10px; } + width: 100%; + height: 20px; + background-color: #ababab; + font-weight: bold; +} + +.progress-bar-danger, .progress-bar-warning, .progress-bar-success { + text-align: center; + color: white; +} p.fieldset-legend { display: none; } @@ -776,3 +784,11 @@ span.notification_text { font-family: inherit; color: white; } + +span.company_name { + font-weight: bold; +} + +span.tmp_account_name { + font-size: 0.9em; +} diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index b19f708e5daf1b9a398d16e26814a5d5770ae4e0..d279016f0d529cfc7c9e33c7657154658ae82b0d 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -79,7 +79,7 @@ @@ -147,4 +147,4 @@ - \ No newline at end of file +
{tmpl_var name='search_limit'}
{tmpl_var name="system_user"} {tmpl_var name="used"} {tmpl_var name="soft"}{tmpl_var name="hard"} {tmpl_var name="files"}{tmpl_if name="progressbar" op="!=" value="-1"}
+
{tmpl_var name="percentage"}%
+
{/tmpl_if}