Restyling sidebar: adding buttons and dropdowns;
removing sidebar from user edit/add page; fixing typo in template servicepull/48/head
parent
25d49b4ff2
commit
8cca8a6b29
|
@ -86,6 +86,32 @@ abstract class AbstractServerController extends AbstractController {
|
|||
}
|
||||
|
||||
return $servers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format server data for display
|
||||
* @param array $server
|
||||
* @return array
|
||||
*/
|
||||
protected function formatServer($server) {
|
||||
$server['rtime'] = round((float) $server['rtime'], 4);
|
||||
$server['last_online'] = psm_timespan($server['last_online']);
|
||||
$server['last_check'] = psm_timespan($server['last_check']);
|
||||
$server['active'] = psm_get_lang('system', $server['active']);
|
||||
$server['email'] = psm_get_lang('system', $server['email']);
|
||||
$server['sms'] = psm_get_lang('system', $server['sms']);
|
||||
$server['url_view'] = psm_build_url(array(
|
||||
'mod' => 'server',
|
||||
'action' => 'view',
|
||||
'id' => $server['server_id'],
|
||||
));
|
||||
|
||||
if($server['status'] == 'on' && $server['warning_threshold_counter'] > 0) {
|
||||
$server['status'] = 'warning';
|
||||
}
|
||||
|
||||
$server['type'] = psm_get_lang('servers', 'type_' . $server['type']);
|
||||
|
||||
return $server;
|
||||
}
|
||||
}
|
|
@ -34,9 +34,17 @@ use psm\Service\Template;
|
|||
*/
|
||||
class ServerController extends AbstractServerController {
|
||||
|
||||
/**
|
||||
* Current server id
|
||||
* @var int $server_id
|
||||
*/
|
||||
protected $server_id;
|
||||
|
||||
function __construct(Database $db, Template $tpl) {
|
||||
parent::__construct($db, $tpl);
|
||||
|
||||
$this->server_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
||||
|
||||
$this->setActions(array(
|
||||
'index', 'edit', 'save', 'delete', 'view',
|
||||
), 'index');
|
||||
|
@ -57,11 +65,11 @@ class ServerController extends AbstractServerController {
|
|||
|
||||
// check if user is admin, in that case we add the buttons
|
||||
if($this->user->getUserLevel() == PSM_USER_ADMIN) {
|
||||
$sidebar->addLink(
|
||||
$sidebar->addButton(
|
||||
'add_new',
|
||||
psm_get_lang('system', 'add_new'),
|
||||
psm_build_url(array('mod' => 'server', 'action' => 'edit')),
|
||||
'plus'
|
||||
'plus icon-white', 'success'
|
||||
);
|
||||
// get the action buttons per server
|
||||
$this->tpl->newTemplate('server_list_admin_actions', 'server/server.tpl.html');
|
||||
|
@ -70,7 +78,7 @@ class ServerController extends AbstractServerController {
|
|||
$html_actions = '';
|
||||
}
|
||||
|
||||
$sidebar->addLink(
|
||||
$sidebar->addButton(
|
||||
'update',
|
||||
psm_get_lang('menu', 'server_update'),
|
||||
psm_build_url(array('mod' => 'server_update')),
|
||||
|
@ -105,23 +113,26 @@ class ServerController extends AbstractServerController {
|
|||
*/
|
||||
protected function executeEdit() {
|
||||
$this->setTemplateId('server_update', 'server/server.tpl.html');
|
||||
$sidebar = new \psm\Util\Module\Sidebar($this->tpl);
|
||||
$this->setSidebar($sidebar);
|
||||
|
||||
$sidebar->addLink(
|
||||
'go_back',
|
||||
psm_get_lang('system', 'go_back'),
|
||||
psm_build_url(array('mod' => 'server')),
|
||||
'th-list'
|
||||
);
|
||||
|
||||
$server_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
||||
$back_to = isset($_GET['back_to']) ? $_GET['back_to'] : '';
|
||||
|
||||
$tpl_data = array(
|
||||
'url_go_back' => psm_build_url(array('mod' => 'server')),
|
||||
// form url:
|
||||
'url_save' => psm_build_url(array(
|
||||
'mod' => 'server',
|
||||
'action' => 'save',
|
||||
'id' => $this->server_id,
|
||||
'back_to' => $back_to,
|
||||
)),
|
||||
);
|
||||
|
||||
switch(intval($server_id)) {
|
||||
// depending on where the user came from, add the go back url:
|
||||
if($back_to == 'view' && $this->server_id > 0) {
|
||||
$tpl_data['url_go_back'] = psm_build_url(array('mod' => 'server', 'action' => 'view', 'id' => $this->server_id));
|
||||
} else {
|
||||
$tpl_data['url_go_back'] = psm_build_url(array('mod' => 'server'));
|
||||
}
|
||||
|
||||
switch($this->server_id) {
|
||||
case 0:
|
||||
// insert mode
|
||||
$tpl_data['titlemode'] = psm_get_lang('system', 'insert');
|
||||
|
@ -131,10 +142,7 @@ class ServerController extends AbstractServerController {
|
|||
default:
|
||||
// edit mode
|
||||
// get server entry
|
||||
$edit_server = $this->db->selectRow(
|
||||
PSM_DB_PREFIX.'servers',
|
||||
array('server_id' => $server_id)
|
||||
);
|
||||
$edit_server = $this->getServers($this->server_id);
|
||||
if (empty($edit_server)) {
|
||||
$this->addMessage('Invalid server', 'error');
|
||||
return $this->initializeAction('index');
|
||||
|
@ -169,8 +177,6 @@ class ServerController extends AbstractServerController {
|
|||
protected function executeSave() {
|
||||
// check for add/edit mode
|
||||
if(isset($_POST['label']) && isset($_POST['ip']) && isset($_POST['port'])) {
|
||||
$server_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
||||
|
||||
$clean = array(
|
||||
'label' => strip_tags($_POST['label']),
|
||||
'ip' => strip_tags($_POST['ip']),
|
||||
|
@ -184,22 +190,28 @@ class ServerController extends AbstractServerController {
|
|||
);
|
||||
|
||||
// check for edit or add
|
||||
if($server_id > 0) {
|
||||
if($this->server_id > 0) {
|
||||
// edit
|
||||
$this->db->save(
|
||||
PSM_DB_PREFIX.'servers',
|
||||
$clean,
|
||||
array('server_id' => $server_id)
|
||||
array('server_id' => $this->server_id)
|
||||
);
|
||||
$this->addMessage(psm_get_lang('servers', 'updated'), 'success');
|
||||
} else {
|
||||
// add
|
||||
$clean['status'] = 'on';
|
||||
$this->db->save(PSM_DB_PREFIX.'servers', $clean);
|
||||
$this->server_id = $this->db->save(PSM_DB_PREFIX.'servers', $clean);
|
||||
$this->addMessage(psm_get_lang('servers', 'inserted'), 'success');
|
||||
}
|
||||
}
|
||||
$this->initializeAction('index');
|
||||
|
||||
$back_to = isset($_GET['back_to']) ? $_GET['back_to'] : 'index';
|
||||
if($back_to == 'view') {
|
||||
$this->initializeAction('view');
|
||||
} else {
|
||||
$this->initializeAction('index');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -211,7 +223,7 @@ class ServerController extends AbstractServerController {
|
|||
// do delete
|
||||
$res = $this->db->delete(PSM_DB_PREFIX . 'servers', array('server_id' => $id));
|
||||
|
||||
if($res == 1) {
|
||||
if($res === 1) {
|
||||
$this->db->delete(PSM_DB_PREFIX.'log', array('server_id' => $id));
|
||||
$this->db->delete(PSM_DB_PREFIX.'users_servers', array('server_id' => $id));
|
||||
$this->db->delete(PSM_DB_PREFIX.'servers_uptime', array('server_id' => $id));
|
||||
|
@ -226,77 +238,61 @@ class ServerController extends AbstractServerController {
|
|||
* Prepare the view template
|
||||
*/
|
||||
protected function executeView() {
|
||||
$this->setTemplateId('server_view', 'server/view.tpl.html');
|
||||
$server_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
||||
if($this->server_id == 0) {
|
||||
return $this->initializeAction('index');
|
||||
}
|
||||
$server = $this->getServers($this->server_id);
|
||||
|
||||
// get server entry
|
||||
$server = $this->getServers($server_id);
|
||||
if(empty($server)) {
|
||||
$this->addMessage('Invalid server', 'error');
|
||||
return $this->initializeAction('index');
|
||||
}
|
||||
|
||||
$sidebar = new \psm\Util\Module\Sidebar($this->tpl);
|
||||
$this->setSidebar($sidebar);
|
||||
$sidebar->setSubtitle($server['label']);
|
||||
$this->setTemplateId('server_view', 'server/view.tpl.html');
|
||||
|
||||
$tpl_data = $this->formatServer($server);
|
||||
|
||||
// create history HTML
|
||||
$history = new \psm\Util\Server\HistoryGraph($this->db, $this->tpl);
|
||||
$tpl_data['html_history'] = $history->createHTML($this->server_id);
|
||||
|
||||
// add edit/delete buttons for admins
|
||||
if($this->user->getUserLevel() == PSM_USER_ADMIN) {
|
||||
$sidebar->addLink(
|
||||
'edit',
|
||||
psm_get_lang('system', 'edit'),
|
||||
psm_build_url(array('mod' => 'server', 'action' => 'edit', 'id' => $server_id)),
|
||||
'edit'
|
||||
);
|
||||
$sidebar->addLink(
|
||||
'delete',
|
||||
psm_get_lang('system', 'delete'),
|
||||
"javascript:sm_delete('{$server_id}', 'server');",
|
||||
'remove'
|
||||
$tpl_id_actions = 'server_view_admin_actions';
|
||||
$this->tpl->newTemplate($tpl_id_actions, 'server/view.tpl.html');
|
||||
$tpl_data['html_actions'] = $this->tpl->getTemplate($tpl_id_actions);
|
||||
$tpl_data['url_edit'] = psm_build_url(array('mod' => 'server', 'action' => 'edit', 'id' => $this->server_id, 'back_to' => 'view'));
|
||||
}
|
||||
|
||||
// add all available servers to the menu
|
||||
$servers = $this->getServers();
|
||||
$options = array();
|
||||
foreach($servers as $i => $server) {
|
||||
$options[] = array(
|
||||
'class_active' => ($server['server_id'] == $this->server_id) ? 'active' : '',
|
||||
'url' => psm_build_url(array('mod' => 'server', 'action' => 'view', 'id' => $server['server_id'])),
|
||||
'label' => $server['label'],
|
||||
);
|
||||
}
|
||||
$back_to = isset($_GET['back_to']) ? $_GET['back_to'] : 'server';
|
||||
$sidebar->addLink(
|
||||
$sidebar = new \psm\Util\Module\Sidebar($this->tpl);
|
||||
$this->setSidebar($sidebar);
|
||||
|
||||
$sidebar->addDropdown(
|
||||
'server',
|
||||
psm_get_lang('menu', 'server'),
|
||||
$options,
|
||||
'th', 'success'
|
||||
);
|
||||
|
||||
// check which module the user came from, and add a link accordingly
|
||||
$back_to = isset($_GET['back_to']) && $_GET['back_to'] == 'status' ? $_GET['back_to'] : 'server';
|
||||
$sidebar->addButton(
|
||||
'go_back',
|
||||
psm_get_lang('system', 'go_back'),
|
||||
psm_build_url(array('mod' => $back_to)),
|
||||
'th-list'
|
||||
);
|
||||
|
||||
$tpl_data = $this->formatServer($server);
|
||||
$history = new \psm\Util\Server\HistoryGraph($this->db, $this->tpl);
|
||||
$tpl_data['html_history'] = $history->createHTML($server_id);
|
||||
|
||||
$this->tpl->addTemplateData(
|
||||
$this->getTemplateId(),
|
||||
$tpl_data
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format server data for display
|
||||
* @param array $server
|
||||
* @return array
|
||||
*/
|
||||
protected function formatServer($server) {
|
||||
$server['rtime'] = round((float) $server['rtime'], 4);
|
||||
$server['last_online'] = psm_timespan($server['last_online']);
|
||||
$server['last_check'] = psm_timespan($server['last_check']);
|
||||
$server['active'] = psm_get_lang('system', $server['active']);
|
||||
$server['email'] = psm_get_lang('system', $server['email']);
|
||||
$server['sms'] = psm_get_lang('system', $server['sms']);
|
||||
$server['url_view'] = psm_build_url(array(
|
||||
'mod' => 'server',
|
||||
'action' => 'view',
|
||||
'id' => $server['server_id'],
|
||||
));
|
||||
|
||||
if($server['status'] == 'on' && $server['warning_threshold_counter'] > 0) {
|
||||
$server['status'] = 'warning';
|
||||
}
|
||||
|
||||
$server['type'] = psm_get_lang('servers', 'type_' . $server['type']);
|
||||
|
||||
return $server;
|
||||
$this->tpl->addTemplateData($this->getTemplateId(), $tpl_data);
|
||||
}
|
||||
|
||||
// override parent::createHTMLLabels()
|
||||
|
@ -326,8 +322,8 @@ class ServerController extends AbstractServerController {
|
|||
'label_action' => psm_get_lang('system', 'action'),
|
||||
'label_save' => psm_get_lang('system', 'save'),
|
||||
'label_go_back' => psm_get_lang('system', 'go_back'),
|
||||
'label_edit' => psm_get_lang('system', 'edit') . ' ' . psm_get_lang('servers', 'server'),
|
||||
'label_delete' => psm_get_lang('system', 'delete') . ' ' . psm_get_lang('servers', 'server'),
|
||||
'label_edit' => psm_get_lang('system', 'edit'),
|
||||
'label_delete' => psm_get_lang('system', 'delete'),
|
||||
'label_yes' => psm_get_lang('system', 'yes'),
|
||||
'label_no' => psm_get_lang('system', 'no'),
|
||||
'label_add_new' => psm_get_lang('system', 'add_new'),
|
||||
|
|
|
@ -72,11 +72,11 @@ class UserController extends AbstractController {
|
|||
$sidebar = new \psm\Util\Module\Sidebar($this->tpl);
|
||||
$this->setSidebar($sidebar);
|
||||
|
||||
$sidebar->addLink(
|
||||
$sidebar->addButton(
|
||||
'add_new',
|
||||
psm_get_lang('system', 'add_new'),
|
||||
psm_build_url(array('mod' => 'user', 'action' => 'edit')),
|
||||
'plus'
|
||||
'plus icon-white', 'success'
|
||||
);
|
||||
|
||||
// build label array for the next loop
|
||||
|
@ -114,16 +114,6 @@ class UserController extends AbstractController {
|
|||
*/
|
||||
protected function executeEdit() {
|
||||
$this->setTemplateId('user_update', 'user/user.tpl.html');
|
||||
$sidebar = new \psm\Util\Module\Sidebar($this->tpl);
|
||||
$this->setSidebar($sidebar);
|
||||
|
||||
$sidebar->addLink(
|
||||
'go_back',
|
||||
psm_get_lang('system', 'go_back'),
|
||||
psm_build_url(array('mod' => 'user')),
|
||||
'th-list'
|
||||
);
|
||||
|
||||
$user_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
||||
$fields_prefill = array('name', 'user_name', 'mobile', 'email');
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ class Template {
|
|||
foreach($value as $k => $v) {
|
||||
$subdata[$key.'_'.$k] = $v;
|
||||
}
|
||||
$source = $this->assignTplVar($source, $subdata, true);
|
||||
$source = $this->addTemplateData($source, $subdata, true);
|
||||
} else {
|
||||
$source = str_replace('{'.$key.'}', $value, $source);
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ class Sidebar implements SidebarInterface {
|
|||
}
|
||||
|
||||
$this->items['link'][$id] = array(
|
||||
'type' => 'link',
|
||||
'id' => $id,
|
||||
'label' => $label,
|
||||
'url' => str_replace('"', '\"', $url),
|
||||
'icon' => $icon,
|
||||
|
@ -102,11 +102,62 @@ class Sidebar implements SidebarInterface {
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new button to the sidebar
|
||||
* @param string $id
|
||||
* @param string $label
|
||||
* @param string $url
|
||||
* @param string $icon
|
||||
* @param string $btn_class
|
||||
* @param boolean $url_is_onclick if you want onclick rather than url, change this to true
|
||||
* @return \psm\Util\Module\Sidebar
|
||||
*/
|
||||
public function addButton($id, $label, $url, $icon = null, $btn_class = null, $url_is_onclick = false) {
|
||||
if(!isset($this->items['button'])) {
|
||||
$this->items['button'] = array();
|
||||
}
|
||||
if(!$url_is_onclick) {
|
||||
$url = "psm_goTo('" . $url . "');";
|
||||
}
|
||||
|
||||
$this->items['button'][$id] = array(
|
||||
'id' => $id,
|
||||
'label' => $label,
|
||||
'onclick' => str_replace('"', '\"', $url),
|
||||
'icon' => $icon,
|
||||
'btn_class'=> $btn_class,
|
||||
);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add dropdown button
|
||||
* @param string $id
|
||||
* @param string $label
|
||||
* @param array $options
|
||||
* @param string $icon
|
||||
* @param string $btn_class
|
||||
* @return \psm\Util\Module\Sidebar
|
||||
*/
|
||||
public function addDropdown($id, $label, $options, $icon = null, $btn_class = null) {
|
||||
if(!isset($this->items['dropdown'])) {
|
||||
$this->items['dropdown'] = array();
|
||||
}
|
||||
$this->items['dropdown'][$id] = array(
|
||||
'id' => $id,
|
||||
'label' => $label,
|
||||
'options' => $options,
|
||||
'icon' => $icon,
|
||||
'btn_class' => $btn_class,
|
||||
);
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function createHTML() {
|
||||
$tpl_id = 'main_sidebar_container';
|
||||
$this->tpl->newTemplate($tpl_id, 'main_sidebar.tpl.html');
|
||||
|
||||
$types = array('link');
|
||||
$types = array('dropdown', 'button', 'link');
|
||||
$items = array();
|
||||
|
||||
// loop through all types and build their html
|
||||
|
@ -122,8 +173,16 @@ class Sidebar implements SidebarInterface {
|
|||
|
||||
// build html for each individual item
|
||||
foreach($this->items[$type] as $id => $item) {
|
||||
$html_item = $html_type;
|
||||
|
||||
if(isset($item['options'])) {
|
||||
$item['options'] = $this->tpl->addTemplateDataRepeat($html_item, 'options', $item['options'], true);
|
||||
|
||||
}
|
||||
$html_item = $this->tpl->addTemplateData($html_type, $item, true);
|
||||
|
||||
$items[] = array(
|
||||
'html_item' => $this->tpl->addTemplateData($html_type, $item, true),
|
||||
'html_item' => $html_item,
|
||||
'class_active' => ($id === $this->active_id) ? 'active' : '',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!--%tpl_main_sidebar_container-->
|
||||
<div class="span2">
|
||||
<div class="well sidebar-nav">
|
||||
<div class="sidebar-nav">
|
||||
<ul class="nav nav-list">
|
||||
<li class="nav-header">{subtitle}</li>
|
||||
<!--%tpl_repeat_items-->
|
||||
|
@ -8,8 +8,30 @@
|
|||
<!--%%tpl_repeat_items-->
|
||||
{items}
|
||||
</ul>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--%%tpl_main_sidebar_container-->
|
||||
|
||||
<!--%tpl_main_sidebar_types_link--><a href="{url}"><i class="icon-{icon}"></i> {label}</a><!--%%tpl_main_sidebar_types_link-->
|
||||
<!--%tpl_main_sidebar_types_link--><a href="{url}"><i class="icon-{icon}"></i> {label}</a><!--%%tpl_main_sidebar_types_link-->
|
||||
|
||||
<!--%tpl_main_sidebar_types_button-->
|
||||
<button class="btn btn-{btn_class}" onclick="{onclick}">
|
||||
<i class="icon-{icon}"></i> {label}
|
||||
</button>
|
||||
<!--%%tpl_main_sidebar_types_button-->
|
||||
|
||||
<!--%tpl_main_sidebar_types_dropdown-->
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="icon-th icon-white"></i> {label}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<!--%tpl_repeat_options-->
|
||||
<li class="{class_active}"><a href="{url}">{label}</a>
|
||||
<!--%%tpl_repeat_options-->
|
||||
{options}
|
||||
</ul>
|
||||
</div>
|
||||
<!--%%tpl_main_sidebar_types_dropdown-->
|
|
@ -32,7 +32,8 @@
|
|||
<td>{active}</td>
|
||||
<td>{email}</td>
|
||||
<td>{sms}</td>
|
||||
<td>{html_actions}</td>
|
||||
<td><a class="btn btn-small" href="index.php?mod=server&action=view&id={server_id}"><i class="icon-eye-open"></i></a>
|
||||
{html_actions}</td>
|
||||
</tr>
|
||||
<!--%%tpl_repeat_servers-->
|
||||
{servers}
|
||||
|
@ -50,7 +51,7 @@
|
|||
<!--%%tpl_server_list_admin_actions-->
|
||||
|
||||
<!--%tpl_server_update-->
|
||||
<form class="form-horizontal well" action="index.php?mod=server&action=save&id={edit_server_id}" method="post">
|
||||
<form class="form-horizontal well" action="{url_save}" method="post">
|
||||
<fieldset>
|
||||
<legend>{titlemode}</legend>
|
||||
<div class="control-group">
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<!--%tpl_server_view-->
|
||||
<table class="table">
|
||||
<table class="table table-bordered">
|
||||
<colgroup>
|
||||
<col class="oce-first" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="head">
|
||||
<th colspan="2">{label}</th>
|
||||
<th colspan="2"><h4>{label}</h4></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -53,7 +53,22 @@
|
|||
<td>{label_send_sms}:</td>
|
||||
<td>{sms}</td>
|
||||
</tr>
|
||||
{html_actions}
|
||||
</tbody>
|
||||
</table>
|
||||
{html_history}
|
||||
<!--%%tpl_server_view-->
|
||||
<!--%%tpl_server_view-->
|
||||
|
||||
<!--%tpl_server_view_admin_actions-->
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<a class="btn btn-success" href="{url_edit}">
|
||||
<i class="icon-edit icon-white"></i> {label_edit}
|
||||
</a>
|
||||
<a class="btn btn-danger" href="javascript:sm_delete('{server_id}', 'server');">
|
||||
<i class="icon-remove icon-white"></i> {label_delete}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!--%%tpl_server_view_admin_actions-->
|
|
@ -14,6 +14,22 @@ body {
|
|||
.sidebar-nav {
|
||||
padding: 9px 0;
|
||||
}
|
||||
.sidebar-nav .btn {
|
||||
margin: 5px 0;
|
||||
min-width: 100px;
|
||||
}
|
||||
@media (max-width: 979px) {
|
||||
.sidebar-nav .nav-list {
|
||||
padding: 0;
|
||||
}
|
||||
.sidebar-nav li.nav-header {
|
||||
display: none;
|
||||
}
|
||||
.sidebar-nav li {
|
||||
float: left;
|
||||
margin-right: 15px;
|
||||
}
|
||||
}
|
||||
body.install{
|
||||
padding-top:20px;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,10 @@ function psm_tooltips() {
|
|||
});
|
||||
}
|
||||
|
||||
function psm_goTo(url) {
|
||||
window.location = url;
|
||||
}
|
||||
|
||||
function trim(str) {
|
||||
return str.replace(/^\s+|\s+$/g,"");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue