From 9898e8cd3f164a20b99152ea013307612f65fba8 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Sun, 20 Nov 2016 20:16:34 +0100 Subject: [PATCH] * [DEV] Items can now be selected to perform massive actions. --- inc/SP/Controller/Grids.class.php | 11 + .../Controller/ItemActionController.class.php | 2 + .../Controller/ItemSearchController.class.php | 22 +- .../RequestControllerTrait.class.php | 4 +- inc/SP/DataModel/TagData.class.php | 2 +- .../DataGrid/DataGridActionType.class.php | 1 + .../Html/DataGrid/DataGridInterface.class.php | 4 +- inc/SP/Http/Request.class.php | 2 +- inc/SP/Mgmt/Categories/Category.class.php | 10 +- .../Mgmt/CustomFields/CustomField.class.php | 16 +- .../CustomFields/CustomFieldDef.class.php | 12 +- inc/SP/Mgmt/Customers/Customer.class.php | 17 +- inc/SP/Mgmt/Files/File.class.php | 10 +- inc/SP/Mgmt/Groups/Group.class.php | 16 +- inc/SP/Mgmt/ItemInterface.class.php | 2 +- inc/SP/Mgmt/Profiles/Profile.class.php | 31 ++- inc/SP/Mgmt/PublicLinks/PublicLink.class.php | 10 +- inc/SP/Mgmt/Tags/Tag.class.php | 14 +- inc/SP/Mgmt/Users/User.class.php | 11 +- inc/themes/material-blue/css/styles.css | 67 +++-- inc/themes/material-blue/css/styles.min.css | 2 +- inc/themes/material-blue/js/app-theme.js | 2 + inc/themes/material-blue/js/app-theme.min.js | 2 +- .../material-blue/views/account/actions.inc | 248 ++++++++++-------- .../views/grid/datagrid-rows.inc | 70 +++-- .../views/grid/datagrid-table.inc | 30 +++ .../views/grid/datatabs-grid.inc | 45 +++- js/app-actions.js | 16 +- js/app-actions.min.js | 60 ++--- 29 files changed, 473 insertions(+), 266 deletions(-) create mode 100644 inc/themes/material-blue/views/grid/datagrid-table.inc diff --git a/inc/SP/Controller/Grids.class.php b/inc/SP/Controller/Grids.class.php index 02f656b3..948369ce 100644 --- a/inc/SP/Controller/Grids.class.php +++ b/inc/SP/Controller/Grids.class.php @@ -145,6 +145,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -239,6 +240,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -314,6 +316,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -380,6 +383,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -432,6 +436,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -548,6 +553,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -621,6 +627,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -702,6 +709,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -785,6 +793,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -864,6 +873,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } @@ -935,6 +945,7 @@ class Grids implements ActionsInterface $GridActionDel->setOnClickFunction('appMgmt/delete'); $Grid->setDataActions($GridActionDel); + $Grid->setDataActions($GridActionDel, true); return $Grid; } diff --git a/inc/SP/Controller/ItemActionController.class.php b/inc/SP/Controller/ItemActionController.class.php index f0953fbb..4f0856ea 100644 --- a/inc/SP/Controller/ItemActionController.class.php +++ b/inc/SP/Controller/ItemActionController.class.php @@ -230,6 +230,8 @@ class ItemActionController implements ItemControllerInterface /** * Eliminar los datos de los campos personalizados del módulo + * + * @throws \SP\Core\Exceptions\SPException */ protected function deleteCustomFieldData() { diff --git a/inc/SP/Controller/ItemSearchController.class.php b/inc/SP/Controller/ItemSearchController.class.php index 8c23effe..d36ef5ed 100644 --- a/inc/SP/Controller/ItemSearchController.class.php +++ b/inc/SP/Controller/ItemSearchController.class.php @@ -148,7 +148,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getUsersGrid(); $Grid->getData()->setData(UserSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -175,7 +175,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getGroupsGrid(); $Grid->getData()->setData(GroupSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -202,7 +202,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getProfilesGrid(); $Grid->getData()->setData(ProfileSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -229,7 +229,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getTokensGrid(); $Grid->getData()->setData(ApiTokensUtil::getTokensMgmtSearch($this->ItemSearchData)); @@ -256,7 +256,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getPublicLinksGrid(); $Grid->getData()->setData(PublicLinkSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -283,7 +283,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getCategoriesGrid(); $Grid->getData()->setData(CategorySearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -310,7 +310,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getCustomersGrid(); $Grid->getData()->setData(CustomerSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -337,7 +337,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getCustomFieldsGrid(); $Grid->getData()->setData(CustomFieldDefSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -364,7 +364,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getFilesGrid(); $Grid->getData()->setData(FileSearch::getItem()->getMgmtSearch($this->ItemSearchData)); @@ -391,7 +391,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getAccountsGrid(); $Grid->getData()->setData(AccountUtil::getAccountsMgmtSearch($this->ItemSearchData)); @@ -418,7 +418,7 @@ class ItemSearchController extends GridItemsSearchController implements ActionsI return; } - $this->view->addTemplate('datagrid-rows', 'grid'); + $this->view->addTemplate('datagrid-table', 'grid'); $Grid = $this->grids->getTagsGrid(); $Grid->getData()->setData(TagSearch::getItem()->getMgmtSearch($this->ItemSearchData)); diff --git a/inc/SP/Controller/RequestControllerTrait.class.php b/inc/SP/Controller/RequestControllerTrait.class.php index 56f96d62..77650bd5 100644 --- a/inc/SP/Controller/RequestControllerTrait.class.php +++ b/inc/SP/Controller/RequestControllerTrait.class.php @@ -42,7 +42,7 @@ trait RequestControllerTrait */ protected $actionId; /** - * @var int + * @var int|array */ protected $itemId; /** @@ -86,7 +86,7 @@ trait RequestControllerTrait */ protected function preActionChecks() { - if (!$this->sk || !SessionUtil::checkSessionKey($this->sk) || !$this->actionId) { + if (!$this->sk || !$this->actionId || !SessionUtil::checkSessionKey($this->sk)) { $this->invalidAction(); } } diff --git a/inc/SP/DataModel/TagData.class.php b/inc/SP/DataModel/TagData.class.php index cb41a4fe..96ba7d75 100644 --- a/inc/SP/DataModel/TagData.class.php +++ b/inc/SP/DataModel/TagData.class.php @@ -103,7 +103,7 @@ class TagData extends DataModelBase implements DataModelInterface */ protected function createTagHash() { - $this->tag_hash = sha1(strtolower(preg_replace('#[.\s_,-;\'":()|/"]+#', '', $this->tag_name))); + $this->tag_hash = sha1(strtolower(preg_replace('#[\.\s_,\-;\'":()|/"]+#', '', $this->tag_name))); } /** diff --git a/inc/SP/Html/DataGrid/DataGridActionType.class.php b/inc/SP/Html/DataGrid/DataGridActionType.class.php index 05004f2d..bfcf7f38 100644 --- a/inc/SP/Html/DataGrid/DataGridActionType.class.php +++ b/inc/SP/Html/DataGrid/DataGridActionType.class.php @@ -39,4 +39,5 @@ class DataGridActionType const EDIT_ITEM = 3; const DELETE_ITEM = 4; const SEARCH_ITEM = 5; + const SELECT_ITEM = 6; } \ No newline at end of file diff --git a/inc/SP/Html/DataGrid/DataGridInterface.class.php b/inc/SP/Html/DataGrid/DataGridInterface.class.php index a108eecc..07de5eda 100644 --- a/inc/SP/Html/DataGrid/DataGridInterface.class.php +++ b/inc/SP/Html/DataGrid/DataGridInterface.class.php @@ -68,10 +68,10 @@ interface DataGridInterface /** * @param DataGridActionInterface $action - * @param bool $ismenu Añadir al menu de acciones + * @param bool $isMenu Añadir al menu de acciones * @return $this */ - public function setDataActions(DataGridActionInterface $action, $ismenu = false); + public function setDataActions(DataGridActionInterface $action, $isMenu = false); /** * @return DataGridActionInterface diff --git a/inc/SP/Http/Request.class.php b/inc/SP/Http/Request.class.php index 1c10399d..957c4f67 100644 --- a/inc/SP/Http/Request.class.php +++ b/inc/SP/Http/Request.class.php @@ -136,7 +136,7 @@ class Request if ((is_numeric($value) || is_numeric($default)) && !is_string($default) ) { - return intval($value); + return (int)$value; } if (is_string($value)) { diff --git a/inc/SP/Mgmt/Categories/Category.class.php b/inc/SP/Mgmt/Categories/Category.class.php index d3457954..e3341706 100644 --- a/inc/SP/Mgmt/Categories/Category.class.php +++ b/inc/SP/Mgmt/Categories/Category.class.php @@ -96,12 +96,20 @@ class Category extends CategoryBase implements ItemInterface, ItemSelectInterfac } /** - * @param $id int + * @param $id int|array * @return mixed * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + if ($this->checkInUse($id)) { throw new SPException(SPException::SP_WARNING, _('No es posible eliminar')); } diff --git a/inc/SP/Mgmt/CustomFields/CustomField.class.php b/inc/SP/Mgmt/CustomFields/CustomField.class.php index 9c607948..855e7626 100644 --- a/inc/SP/Mgmt/CustomFields/CustomField.class.php +++ b/inc/SP/Mgmt/CustomFields/CustomField.class.php @@ -46,6 +46,7 @@ class CustomField extends CustomFieldBase implements ItemInterface * @param CustomFieldData $itemData * @param int $customFieldDefId * @throws \SP\Core\Exceptions\SPException + * @throws \SP\Core\Exceptions\InvalidClassException */ public function __construct($itemData, $customFieldDefId = null) { @@ -53,7 +54,7 @@ class CustomField extends CustomFieldBase implements ItemInterface parent::__construct($itemData); - if (!is_null($customFieldDefId)) { + if (null !== $customFieldDefId) { $field = CustomFieldDef::getItem()->getById($customFieldDefId); $itemData->setDefinitionId($customFieldDefId); @@ -67,6 +68,7 @@ class CustomField extends CustomFieldBase implements ItemInterface /** * @return mixed + * @throws \SP\Core\Exceptions\SPException */ public function update() { @@ -126,6 +128,7 @@ class CustomField extends CustomFieldBase implements ItemInterface /** * @return mixed + * @throws \SP\Core\Exceptions\SPException */ public function add() { @@ -157,11 +160,20 @@ class CustomField extends CustomFieldBase implements ItemInterface } /** - * @param $id int + * @param $id int|array * @return mixed + * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + $query = /** @lang SQL */ 'DELETE FROM customFieldsData WHERE customfielddata_itemId = ? diff --git a/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php b/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php index 260fe27f..08fdee15 100644 --- a/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php +++ b/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php @@ -49,7 +49,7 @@ class CustomFieldDef extends CustomFieldBase implements ItemInterface public function __construct($itemData = null) { $this->setDataModel('SP\DataModel\CustomFieldDefData'); - + parent::__construct($itemData); } @@ -75,12 +75,20 @@ class CustomFieldDef extends CustomFieldBase implements ItemInterface } /** - * @param $id int + * @param $id int|array * @return mixed * @throws SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + $query = /** @lang SQL */ 'DELETE FROM customFieldsDef WHERE customfielddef_id = ? LIMIT 1'; diff --git a/inc/SP/Mgmt/Customers/Customer.class.php b/inc/SP/Mgmt/Customers/Customer.class.php index 595bfacb..9b47cc4e 100644 --- a/inc/SP/Mgmt/Customers/Customer.class.php +++ b/inc/SP/Mgmt/Customers/Customer.class.php @@ -86,6 +86,7 @@ class Customer extends CustomerBase implements ItemInterface, ItemSelectInterfac /** * @return bool + * @throws \SP\Core\Exceptions\SPException */ public function checkDuplicatedOnAdd() { @@ -108,21 +109,29 @@ class Customer extends CustomerBase implements ItemInterface, ItemSelectInterfac */ private function mkCustomerHash() { - $charsSrc = array( - ".", " ", "_", ", ", "-", ";", - "'", "\"", ":", "(", ")", "|", "/"); + $charsSrc = [ + '.', ' ', '_', ', ', '-', ';', + '\'', '"', ':', '(', ')', '|', '/']; $newValue = strtolower(str_replace($charsSrc, '', DBUtil::escape($this->itemData->getCustomerName()))); return md5($newValue); } /** - * @param $id int + * @param $id int|array * @return mixed * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + if ($this->checkInUse($id)) { throw new SPException(SPException::SP_WARNING, _('No es posible eliminar')); } diff --git a/inc/SP/Mgmt/Files/File.class.php b/inc/SP/Mgmt/Files/File.class.php index 9497d286..e0b4d0d6 100644 --- a/inc/SP/Mgmt/Files/File.class.php +++ b/inc/SP/Mgmt/Files/File.class.php @@ -107,12 +107,20 @@ class File extends FileBase implements ItemInterface, ItemSelectInterface } /** - * @param $id int + * @param $id int|array * @return mixed * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + $fileInfo = $this->getInfoById($id)->getItemData(); // Eliminamos el archivo de la BBDD diff --git a/inc/SP/Mgmt/Groups/Group.class.php b/inc/SP/Mgmt/Groups/Group.class.php index 30a02657..c1919cb6 100644 --- a/inc/SP/Mgmt/Groups/Group.class.php +++ b/inc/SP/Mgmt/Groups/Group.class.php @@ -79,7 +79,7 @@ class Group extends GroupBase implements ItemInterface, ItemSelectInterface try { GroupUsers::getItem($GroupUsers)->add(); - } catch(SPException $e) { + } catch (SPException $e) { $Log->addDescription(_('Error al añadir los usuarios del grupo')); } @@ -106,12 +106,20 @@ class Group extends GroupBase implements ItemInterface, ItemSelectInterface } /** - * @param $id int + * @param $id int|array * @return $this * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + if ($this->checkInUse($id)) { throw new SPException(SPException::SP_WARNING, _('Grupo en uso')); } @@ -133,7 +141,7 @@ class Group extends GroupBase implements ItemInterface, ItemSelectInterface try { GroupUsers::getItem()->delete($id); - } catch(SPException $e) { + } catch (SPException $e) { $Log->addDescription(_('Error al eliminar los usuarios del grupo')); } @@ -226,7 +234,7 @@ class Group extends GroupBase implements ItemInterface, ItemSelectInterface try { GroupUsers::getItem($GroupUsers)->update(); - } catch(SPException $e) { + } catch (SPException $e) { $Log->addDescription(_('Error al actualizar los usuarios del grupo')); } diff --git a/inc/SP/Mgmt/ItemInterface.class.php b/inc/SP/Mgmt/ItemInterface.class.php index f71b6cf3..61fcfc14 100644 --- a/inc/SP/Mgmt/ItemInterface.class.php +++ b/inc/SP/Mgmt/ItemInterface.class.php @@ -46,7 +46,7 @@ interface ItemInterface public function add(); /** - * @param $id int + * @param $id int|array * @return mixed */ public function delete($id); diff --git a/inc/SP/Mgmt/Profiles/Profile.class.php b/inc/SP/Mgmt/Profiles/Profile.class.php index c0997a0e..6fc885a5 100644 --- a/inc/SP/Mgmt/Profiles/Profile.class.php +++ b/inc/SP/Mgmt/Profiles/Profile.class.php @@ -88,6 +88,7 @@ class Profile extends ProfileBase implements ItemInterface, ItemSelectInterface /** * @return bool + * @throws \SP\Core\Exceptions\SPException */ public function checkDuplicatedOnAdd() { @@ -106,12 +107,20 @@ class Profile extends ProfileBase implements ItemInterface, ItemSelectInterface } /** - * @param $id int + * @param $id int|array * @return $this * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + if ($this->checkInUse($id)) { throw new SPException(SPException::SP_INFO, _('Perfil en uso')); } @@ -251,6 +260,16 @@ class Profile extends ProfileBase implements ItemInterface, ItemSelectInterface return ($Data->getQueryNumRows() > 0); } + /** + * Actualizar el perfil de la sesión + */ + protected function updateSessionProfile() + { + if (Session::getUserProfile()->getUserprofileId() === $this->itemData->getUserprofileId()) { + Session::setUserProfile($this->itemData); + } + } + /** * @return ProfileData[] */ @@ -275,14 +294,4 @@ class Profile extends ProfileBase implements ItemInterface, ItemSelectInterface return DB::getResultsArray($Data); } - - /** - * Actualizar el perfil de la sesión - */ - protected function updateSessionProfile() - { - if (Session::getUserProfile()->getUserprofileId() === $this->itemData->getUserprofileId()){ - Session::setUserProfile($this->itemData); - } - } } diff --git a/inc/SP/Mgmt/PublicLinks/PublicLink.class.php b/inc/SP/Mgmt/PublicLinks/PublicLink.class.php index 233db96e..3d4f7c3a 100644 --- a/inc/SP/Mgmt/PublicLinks/PublicLink.class.php +++ b/inc/SP/Mgmt/PublicLinks/PublicLink.class.php @@ -168,12 +168,20 @@ class PublicLink extends PublicLinkBase implements ItemInterface } /** - * @param $id int + * @param $id int|array * @return $this * @throws SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + $query = /** @lang SQL */ 'DELETE FROM publicLinks WHERE publicLink_id = ? LIMIT 1'; diff --git a/inc/SP/Mgmt/Tags/Tag.class.php b/inc/SP/Mgmt/Tags/Tag.class.php index c7ac083a..482608a4 100644 --- a/inc/SP/Mgmt/Tags/Tag.class.php +++ b/inc/SP/Mgmt/Tags/Tag.class.php @@ -71,6 +71,7 @@ class Tag extends TagBase implements ItemInterface, ItemSelectInterface /** * @return bool + * @throws \SP\Core\Exceptions\SPException */ public function checkDuplicatedOnAdd() { @@ -80,16 +81,24 @@ class Tag extends TagBase implements ItemInterface, ItemSelectInterface $Data->setQuery($query); $Data->addParam($this->itemData->getTagHash()); - return (DB::getQuery($Data) === false || $Data->getQueryNumRows() > 0 ); + return (DB::getQuery($Data) === false || $Data->getQueryNumRows() > 0); } /** - * @param $id int + * @param $id int|array * @return $this * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId) { + $this->delete($itemId); + } + + return $this; + } + $query = /** @lang SQL */ 'DELETE FROM tags WHERE tag_id = ? LIMIT 1'; @@ -132,6 +141,7 @@ class Tag extends TagBase implements ItemInterface, ItemSelectInterface /** * @return bool + * @throws \SP\Core\Exceptions\SPException */ public function checkDuplicatedOnUpdate() { diff --git a/inc/SP/Mgmt/Users/User.class.php b/inc/SP/Mgmt/Users/User.class.php index 15516777..6e5e5298 100644 --- a/inc/SP/Mgmt/Users/User.class.php +++ b/inc/SP/Mgmt/Users/User.class.php @@ -116,11 +116,20 @@ class User extends UserBase implements ItemInterface, ItemSelectInterface } /** - * @param $id int + * @param $id int|array * @return $this + * @throws \SP\Core\Exceptions\SPException */ public function delete($id) { + if (is_array($id)) { + foreach ($id as $itemId){ + $this->delete($itemId); + } + + return $this; + } + $oldUserData = $this->getById($id); $query = 'DELETE FROM usrData WHERE user_id = ? LIMIT 1'; diff --git a/inc/themes/material-blue/css/styles.css b/inc/themes/material-blue/css/styles.css index e424a14a..1936f7b6 100644 --- a/inc/themes/material-blue/css/styles.css +++ b/inc/themes/material-blue/css/styles.css @@ -580,6 +580,33 @@ pre, code, samp, kbd { padding: .3em .8em } +#content .data-table { + width: 100%; +} + +#content .data-table td:first-of-type, +#content .data-table th:first-of-type { + width: 5em; +} + +#content .data-table thead th { + background-color: #607d8b; + color: #fff; +} + +#content .data-table tbody td.cell-data { + text-align: left; +} + +#content .data-table tbody td.cell-nodata { + padding: 1em 0; + text-align: left; +} + +#content .data-table tbody td.cell-actions { + text-align: right; +} + #content .data-rows ul { display: table; list-style: none; @@ -1143,13 +1170,6 @@ footer img { background: none !important } -.action { - max-width: 75%; - height: 4em; - margin: .7em auto; - text-align: right -} - .action-in-box { display: inline-block; height: 4em; @@ -1157,31 +1177,30 @@ footer img { text-align: right } -.action ul { - list-style: none; - margin: 0; - padding: 0; - padding-right: 2em -} - .action-in-box ul { list-style: none; margin: 0; padding: 0 } -.action li { - display: inline-block; - width: 2em; - height: 2em; - margin-left: 3em +.item-actions { + margin: 1em auto; + width: 75%; } -.action li img, .action-in-box li img { - padding: 1em; - border: 1px solid #d9d9d9; - border-radius: 3em; - background-color: #f9f9f9 !important +.item-actions > ul, +.tab-actions > ul { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + list-style: none; + margin: 0; + padding: 0; +} + +.item-actions > ul > li, +.tab-actions > ul > li { + margin-left: .5em; } .fullWidth { diff --git a/inc/themes/material-blue/css/styles.min.css b/inc/themes/material-blue/css/styles.min.css index 6a97a09e..ed2053aa 100644 --- a/inc/themes/material-blue/css/styles.min.css +++ b/inc/themes/material-blue/css/styles.min.css @@ -1 +1 @@ -html,body{margin:0;padding:0;text-align:left;background-color:#f5f5f5;color:#555;font-size:12px;font-weight:normal;box-sizing:border-box}*{font-family:Roboto-Regular,Verdana,Tahoma,sans-serif}*,*:before,*:after{box-sizing:inherit}table{font-size:11px;border-spacing:0}table th{border-bottom:2px solid transparent;vertical-align:middle}table th .icon{width:24px;height:24px}table tr.odd{background-color:#f9f9f9}table tr.even>td,table tr.odd>td{border-bottom:1px solid #d9d9d9 !important}table tr.even:hover{background-color:#e8ff99}table tr.odd:hover{background-color:#e8ff99}table tr{height:20px}table td{padding:3px}table td.txtCliente{font-weight:bold;text-align:center}form{font-size:11px;margin:0}input.inputImg,img.inputImg{background-color:transparent !important;width:24px !important;height:24px !important;border:0;vertical-align:middle;margin:0 .5em}input.txtFile{width:200px}input.txtLong{width:300px}textarea{width:350px;resize:none}select.files{width:250px}input.spinner{width:5em}img{margin:0;padding:0;border:0;cursor:pointer}img.inputImgMini{background-color:transparent !important;width:16px !important;height:16px !important;margin:0 5px 0 5px;border:0;vertical-align:middle}i{cursor:pointer}.altTable{border:0;font-size:10px}.altTable .section{font-size:14px;font-weight:bold}a,a:visited{text-decoration:none;color:rgba(83,109,254,1)}a:hover,a:active,a:focus{text-decoration:none;color:rgba(83,109,254,.6);cursor:pointer}#nojs{width:80%;text-align:center;vertical-align:middle;margin:10px auto;padding:3px;background-color:red;color:white;font-weight:bold;font-size:14px}pre,code,samp,kbd{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;font-size:1em;direction:ltr;text-align:left;background-color:#fbfaf9;color:#333;box-shadow:inset 0 0 .3em #ccc;border-radius:2px}#wrap{height:auto !important;min-height:100%;width:100%;background-color:#f5f5f5}#wrap-loading{position:fixed;z-index:9999;top:50%;left:50%;padding:1em;background-color:rgba(255,255,255,.8);border-radius:5px;display:none}#container{margin:auto;width:100%}#container.login{padding-top:10em}#container.main{position:absolute;top:0;width:100%;height:auto;background:url("../imgs/logo_full.svg") no-repeat left top transparent;background-size:auto 150px}#container.error,#container.install,#container.passreset{width:100%}#container #header{width:100%;margin-bottom:15px}#container #actions-bar{z-index:100;display:flex;justify-content:space-between;position:fixed;border:0 none;top:0;left:0;width:100%;padding:1em 0;background-color:transparent}#container #actions-bar-icons{flex-grow:1;text-align:center}#container #actions-bar-logo{display:none;padding:0 .5em}#container #actions-bar-logo img{display:inline-block;width:50px;opacity:.75}#container #content{width:95%;margin:8em auto}#container #content.public-link{min-height:0;margin:0}#content td.descField,#fancyContainer td.descField{text-align:right;padding-right:20px;width:25%;font-weight:bold;border-right:1px solid #d9d9d9;color:#555}#content td.valField,#fancyContainer td.valField{padding-left:1em;width:100%}#content #resBuscar{margin-bottom:50px}#content #resBuscar img{vertical-align:middle}#content .pager{width:100%;margin-top:15px;padding:.5em;vertical-align:middle;font-size:11px;color:#999;background-color:#fcfcfc}#content .pager img{margin-left:5px;vertical-align:middle}#content .pager a{margin-left:5px;font-size:12px;color:#999}#content .pager>div{display:inline-block;width:49%}#content .pager .pager-left{text-align:left}#content .pager .pager-right{text-align:right}#content #title{width:50%;padding:7px;margin:auto;background-color:#d9d9d9;color:#fff;font-size:17px;letter-spacing:.3em;text-align:center}#content #title.titleBlue{background-color:#536dfe;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#536dfe),color-stop(90%,#536dfe));background-image:-webkit-linear-gradient(#536dfe 20%,#536dfe 90%);background-image:-moz-linear-gradient(#536dfe 20%,#536dfe 90%);background-image:-o-linear-gradient(#536dfe 20%,#536dfe 90%);background-image:linear-gradient(#536dfe 20%,#536dfe 90%);background:#536dfe url("../inc/themes/material-blue/css/images/ui-bg_highlight-hard_100_536DFE_1x100.png") repeat-x scroll 50% 50%}#content #title.titleNormal{background-color:#607d8b;color:#fff}#content .data{width:75%;padding:10px;border:1px solid #c9c9c9;margin:auto;background-color:#f9f9f9}#content .data #history-icon{position:relative;top:5em;right:2em}#content .data td{text-align:left}#content .data td.descField{text-align:right;font-size:12px;font-weight:bold;color:#999}#content .data select{min-width:210px}#content .data .list-wrap{max-height:10em;overflow:auto;padding:.5em;margin:1em 0}#content .data .list-wrap ul{list-style-type:none;margin:0;padding:0}#content .data .list-wrap li{display:flex;background:#f2f2f2;padding:.5em;font-size:1em;margin-bottom:.5em}#content .data .list-wrap li:hover{background:#e8eaf6;color:#000}#content .data .list-wrap div.files-item-info{flex-grow:2}#content .data .list-wrap div.files-item-info img{margin:0 .5em}#content .data .list-wrap div.files-item-actions{padding:.3em 0}#content .data .dropzone{width:30em;padding:1em;border:2px dashed #009688;text-align:center}#content .data .dropzone img{vertical-align:middle}#content .data .file-upload{display:none}#content .data .account-permissions{width:100%}#content .data .account-permissions fieldset{border:1px solid #c9c9c9;padding:1em}#content .data .account-permissions legend{font-weight:bold;color:#999;padding:.2em 0}#content .data .account-permissions fieldset>span{font-weight:bold;color:#999;padding:.2em 0;display:inline-block;width:100px;text-align:right}#content span.tag{margin:0 3px 3px 0;padding:.2em;background:#5c6bc0;color:#fff;border:0 solid rgba(0,0,0,0);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#content .extra-info{margin-top:20px}#content .tblIcon{background:url("../imgs/clock.png") no-repeat transparent}#content #tabs .ui-tabs-nav{position:relative;left:12em;width:90%}#content #tabs fieldset{border:1px solid #c9c9c9}#content #tabs #frmConfig label{float:left}#content .tblConfig{margin-bottom:2em}#content .tblConfig td.descField{width:35%;font-size:11px;font-weight:bold}#content .tblConfig td.rowHeader{padding:5px 0 5px 0;background-color:#f5f5f5;text-align:center;font-weight:bold;border-top:15px solid #f9f9f9;border-bottom:3px solid #a9c1d7;letter-spacing:.5em;color:#696969}#content .tblConfig input.checkbox{width:15px;text-align:left;padding:0}#content .tblConfig .option-disabled{text-align:center;background-color:#fff2d9;color:orange;font-weight:bold}#content h2{width:100%;height:1.5em;font-size:18px;color:white;background-color:#a9c1d7;margin:0;padding-top:.1em}#content .section{margin-top:2.5em;border-bottom:1px solid #d9d9d9;text-align:left;font-size:14px;font-weight:bold;color:#045fb4}#content .row_even>td{background-color:#f5f5f5}#content .row_odd>td{background-color:white}#content .data-header ul{list-style:none;width:100%;margin:0 0 10px 0;padding:0}#content .data-header li{display:inline-block;padding:.2em .5em;font-weight:bold;letter-spacing:.2em;color:#fff;text-align:center}#content .data-header li a{color:#777}#content .data-header li img{float:right;width:24px;height:24px;vertical-align:middle}#content .data-header-minimal{border-bottom:1px solid #dfdfdf}#content .data-header-minimal ul{display:flex;flex-wrap:wrap;justify-content:flex-start;margin:0}#content .data-header-minimal li{display:inline-flex;min-width:10em;font-weight:normal;letter-spacing:normal}#content .data-header-minimal li a{color:#b9b9b9;padding:.3em .8em}#content .data-rows ul{display:table;list-style:none;width:100%;margin:0 0 10px 0;padding:0;background-color:#fcfcfc}#content .data-rows li{float:left;display:block;padding:1em;color:#696969;text-align:center;min-height:2em}#content .data-rows li.cell-nodata{padding:1em 0;min-height:2em;text-align:left}#content .data-rows li.cell-actions{float:right;min-height:2em;padding:1em 0;text-align:left;background-color:#fcfcfc;width:15em}#content .data-rows li.cell-nodata img,#content .data-rows li.cell-actions img,#content #data-search .account-info img,#content #data-search .account-actions img{width:24px;height:24px;margin:0 .5em}#content .rowSpace>.cellBorder{height:10px;border-top:1px solid #d9d9d9}#content .rowSpace>.cellBlank{height:10px}#content #resEventLog .data{width:100%}#content #resEventLog thead{text-align:center}#content #resEventLog tbody{width:100%;height:500px;overflow:auto}#content #resEventLog td{border-bottom:1px solid #d9d9d9}#content #resEventLog .cell{text-align:center}#content #resEventLog .cell-description{width:60%}#content #searchbox{background-color:#fcfcfc;background-color:rgba(252,252,252,.75);vertical-align:middle}#content #searchbox{position:relative;left:8%;width:91%;height:auto;padding:.5em 1em;margin-bottom:2em}#content #searchbox form{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;text-align:left}#content #searchbox .search-filters>*{margin:0 .5em}#content #searchbox .search-filters .filter-buttons{display:inline-block}#content #searchbox .search-filters .filter-slider{width:10em}#content #searchbox .search-filters-tags{display:none;flex-grow:1}#content .btn-clear{opacity:.35;filter:alpha(opacity=35)}#content .btn-clear:hover{opacity:1;filter:alpha(opacity=100)}#content #tabs.ui-widget-content{border:0;background-color:transparent}#content #tabs .ui-widget-header{background:0;border:0;border-bottom:1px solid #c9c9c9}#content #tabs.ui-widget-content{background:none !important}#content #tabs .tabs-spacer{float:left;height:200px}#content .tabs-bottom .ui-tabs-nav{clear:left;padding:0 .2em .2em .2em}#content .tabs-bottom .ui-tabs-nav li{top:auto;bottom:0;margin:0 .2em 1px 0;border-top:0}#content .tabs-bottom .ui-tabs-nav li.ui-tabs-active{margin-top:-1px;padding-top:1px}#datos{float:left;width:400px;text-align:left;margin-top:10px;color:#b9b9b9}#datos a{color:orange;font-weight:bold;border:0;padding:3px;margin:5px 0 5px 0;display:block;width:40px;text-align:center;background-color:transparent}#datos img{border:0}#resAccion,#resFancyAccion{height:20px;padding:5px;margin:5px;font-weight:bold;font-size:14px}#resAccion span{padding:5px;border:#a9a9a9 1px solid}#fancyView{min-width:250px;text-align:center;padding:15px;line-height:20px;border:#d9d9d9 1px solid;font-size:14px}#fancyView ul{list-style:none}#fancyView.msgError{margin:5px;background-color:#fee8e6;color:#c00;font-weight:bold;border:#fed2ce 1px solid}#fancyView.msgOk{margin:5px;background-color:#ecfde4;color:green;font-weight:bold;border:#dbfdcb 1px solid}#fancyView.msgWarn{margin:5px;background-color:#fff2d9;color:orange;font-weight:bold;border:#ffe5b3 1px solid}#fancyView.msgInfo{margin:5px;background-color:#e9e9e9;color:orange;font-weight:bold;border:#ffe5b3 1px solid}#fancyView.backGrey{background-color:#f2f2f2 !important}#fancyView PRE{text-align:left}#fancyView table{border:0;width:100%;font-size:14px;text-align:left}#fancyView td{border-bottom:#d9d9d9 1px solid}#fancyMsg{min-width:250px;height:150px;background-color:#f5f5f5;font-family:Verdana,Arial;font-size:16px;text-align:center;display:table-cell;vertical-align:middle;font-weight:bold;border:0;line-height:20px;padding:0 15px;border-radius:25px;-moz-border-radius:25px;-webkit-border-radius:25px}#fancyMsg table{border:0;width:100%;font-size:14px;text-align:left}#fancyMsg td{border-bottom:#d9d9d9 1px solid}#fancyMsg.msgError{background:url('../imgs/bg_msg_error.png') white repeat-x;color:#c00}#fancyMsg.msgOk{background:url('../imgs/bg_msg_ok.png') white repeat-x;color:green}#fancyMsg.msgWarn{background:url('../imgs/bg_msg_warn.png') white repeat-x;color:orange}#fancyMsg.msgInfo{background:url('../imgs/bg_msg_info.png') white repeat-x;color:#555}#fancyView a,#fancyMsg a{color:#555}#fancyContainer{padding:0}#fancyContainer>h2{width:100%;font-size:18px;color:white;background-color:#607d8b;margin:0 0 1em 0;padding:.5em 0;line-height:1em}#fancyContainer select{width:220px}#fancyContainer.help{min-height:100px;background-color:#f5f5f5}#fancyContainer.help p{font-size:14px;text-align:justify;line-height:2em}#fancyContainer #resFancyAccion{display:none}#fancyContainer #resCheck{display:inline-block;width:80%;height:4em;padding:1em 0}#debug{float:left;text-align:left}#debuginfo{width:100%;min-height:10em;padding:1em;background-color:lightgoldenrodyellow;text-align:left;line-height:1.5em}#debuginfo H3{text-align:center}.fancyNone{background-color:transparent !important}.fancydata{min-width:400px;border:0;text-align:left;margin:0 .5em}.fancydata .descField{min-width:100px;font-weight:bold}footer{display:flex;justify-content:space-between;position:fixed;bottom:0;z-index:100;width:100%;padding:.5em 0;background-color:#f5f5f5;color:#b9b9b9;font-size:1em;box-shadow:0 -8px 6px -6px #c9c9c9;-webkit-box-shadow:0 -8px 6px -6px #c9c9c9;-moz-box-shadow:0 -8px 6px -6px #c9c9c9}footer,footer .footer-parts{display:flex;justify-content:space-between}footer #footer-left,footer #footer-right{width:50%;margin:0 1em}footer #footer-right{justify-content:flex-end;text-align:right}footer #updates{min-width:10em;text-align:center;cursor:pointer}footer #status{margin:0 1em}footer #status>div{display:inline-block}footer #status .status-info{padding:.5em}footer #session{text-align:left;color:#999;font-size:.8em}footer a,footer a:visited{color:#b9b9b9}footer #project a:hover{color:#a9c1d7;border-bottom:1px solid #a9c1d7}footer #updates a:hover{color:#a9c1d7}footer img{border:0;width:16px;height:16px;vertical-align:middle}.round{border-radius:5px !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important}.round5{border-radius:5px !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important}.midround{border-radius:0 0 10px 10px !important;-moz-border-radius:0 0 10px 10px !important;-webkit-border-radius:0 0 10px 10px !important}.midroundup{border-radius:10px 10px 0 0 !important;-moz-border-radius:10px 10px 0 0 !important;-webkit-border-radius:10px 10px 0 0 !important}.fullround{border-radius:50% !important;-moz-border-radius:50% !important;-webkit-border-radius:50% !important}.iconMini{width:16px !important;height:16px !important;vertical-align:middle}#content .error{width:350px;margin:15px;padding:15px;background-color:#f9f9f9;color:orange;border:orange 1px solid;margin:0 auto;text-align:center;font-size:16px;line-height:1.5em}.hide{display:none !important}.btn-checks{padding:5px;margin:.2em 0;width:30em;border-bottom:1px solid #c9c9c9}.shadow{box-shadow:1px 1px 2px #d9d9d9}.noRes{width:60%;margin:15px;padding:15px;background-color:#f9f9f9;color:#a9a9a9;border:#c9c9c9 1px solid;margin:20px auto;text-align:center;font-size:16px}.header-blue{background:#536dfe url("../inc/themes/material-blue/css/images/ui-bg_highlight-hard_100_536DFE_1x100.png") repeat-x scroll 50% 50%}.header-grey{background-color:#607d8b;color:#fff;min-height:2em}.no-background{background:none !important}.action{max-width:75%;height:4em;margin:.7em auto;text-align:right}.action-in-box{display:inline-block;height:4em;margin:.7em 0;text-align:right}.action ul{list-style:none;margin:0;padding:0;padding-right:2em}.action-in-box ul{list-style:none;margin:0;padding:0}.action li{display:inline-block;width:2em;height:2em;margin-left:3em}.action li img,.action-in-box li img{padding:1em;border:1px solid #d9d9d9;border-radius:3em;background-color:#f9f9f9 !important}.fullWidth{max-width:100% !important}.filterOn{padding:.3em 1em;background-color:#ecfde4;color:green !important;border:#dbfdcb 1px solid !important}.globalOn{padding:.3em 1em;background-color:#fff2d9;color:orange !important;border:#ffe5b3 1px solid !important}.opacity50{filter:alpha(opacity=50);-moz-opacity:.5;-khtml-opacity:.5;opacity:.5}.custom-combobox{position:relative;display:inline-block}.custom-combobox input{width:80%}.custom-combobox-toggle{position:absolute;top:0;bottom:0;margin-left:-1px;padding:0;*height:1.7em;*top:.1em}.custom-combobox-input{margin:0;padding:.3em}.ui-tooltip{background:#ffffa3;color:#555;padding:10px;border-radius:10px;box-shadow:0 0 7px #a9a9a9}.ui-autocomplete,.ui-menu-item{z-index:8050}.fancybox-inner{overflow:visible !important}.passLevel{width:20px;height:20px;display:inline-block;position:relative;top:2px}.passLevel.strongest,.passLevel.strongest:hover{background-color:#ecfde4 !important;color:green;font-weight:bold;border:lightgreen 1px solid}.passLevel.strong,.passLevel.strong:hover{background-color:#e6f2ff !important;color:#64b4f4;font-weight:bold;border:#64b4f4 1px solid}.passLevel.good,.passLevel.good:hover{background-color:#fff2d9 !important;color:orange;font-weight:bold;border:#ffe5b3 1px solid}.passLevel.weak,.passLevel.weak:hover{background-color:#fee8e6 !important;color:#c00;font-weight:bold;border:#fed2ce 1px solid}#alert #alert-text{margin:15px auto;font-size:14px;font-weight:bold}#alert #alert-pass{width:50%;padding:10px;margin:15px auto;border:1px solid #c9c9c9;color:#555;font-weight:bold}.dialog-user-text{padding:.5em;border-bottom:#d9d9d9 1px solid;text-align:center;min-width:200px;color:#d9d9d9}.dialog-pass-text{padding:.5em;border:transparent 1px solid;text-align:center;min-width:200px}.dialog-buttons{text-align:center;padding:.5em;border-top:1px solid #c9c9c9;line-height:2.5em}.dialog-clip-pass-copy{background-color:#ecfde4;color:green;border:#dbfdcb 1px solid}.help-box{background-color:#fff !important;color:#607d8b}.help-box>*{font-weight:bold}.help-text{text-align:justify;line-height:1.5em;margin-top:1em}.tooltip{width:300px;max-width:300px;background-color:#777;color:#fff;z-index:101}.cursor-pointer{cursor:pointer}.password-actions{display:inline-block;width:12em}.password-actions>span,.password-actions i{margin-right:.6em}.custom-input-color{width:3em;height:1em;display:inline-block}.account-pass-image{height:32px;width:auto}.select-box{min-width:20em}#boxLogin{width:45em;min-height:150px;margin:0 auto;padding:1em;background:url("../imgs/logo_full.svg") no-repeat #fff;background-size:300px auto;background-position:.5em .5em}#boxLogin .error{float:left;width:315px;margin-top:15px;color:orange;border:1px orange solid;margin-left:auto;margin-right:auto}#boxLogin #boxData,#boxLogin #boxButton{margin-top:7em}#boxLogin #boxData{display:inline-block;width:250px;height:100%;min-height:100px;text-align:left;margin-left:13em;background-color:transparent}#boxLogin #boxButton{display:inline-block;text-align:right;margin-left:2em}#boxLogin #boxActions{width:100%;height:1em;margin-top:1em;text-align:right}#boxLogin #boxActions a{color:#c9c9c9}#boxLogout{width:250px;margin:8em auto 0 auto;font-size:14px;text-align:center;color:orange;background:#fff2d9;border:#ffe5b3 1px solid;padding:.5em}#boxUpdated{width:350px;margin:5em auto 5em auto;font-size:14px;text-align:center;color:green;background:#ecfde4;border:#dbfdcb 1px solid;padding:.5em}fieldset.warning{padding:8px;color:#b94a48;background-color:#f2dede;border:1px solid #eed3d7;border-radius:5px}fieldset.warning legend{color:#b94a48 !important}fieldset.warning a{color:#b94a48 !important;font-weight:bold}#actions{width:100%;margin:auto auto 50px;line-height:2em}#actions #logo{display:flex;width:100%;margin-bottom:30px;color:#607d8b;box-shadow:0 8px 6px -6px rgba(83,109,254,.3);-webkit-box-shadow:0 8px 6px -6px rgba(83,109,254,.3);-moz-box-shadow:0 8px 6px -6px rgba(83,109,254,.3);align-items:center;background:url("../imgs/logo_full.svg") left no-repeat;background-size:auto 150px;height:150px}#actions #logo #pageDesc{color:#607d8b;align-self:auto;flex:1 0 auto;text-align:center}#actions #logo #pageDesc h1{font-weight:bold;font-size:24px;letter-spacing:3px}#actions ul.errors{max-width:40%;margin:0 auto;list-style:none;font-size:14px;text-align:left}#actions ul.errors>li{margin:1.5em auto;border-radius:5px;padding:.5em}#actions ul.errors>li.err_critical{color:#b94a48;background:#fed7d7;border:1px solid red}#actions ul.errors>li.err_warning{color:orange;background:#fff2d9;border:#ffe5b3 1px solid}#actions ul.errors>li.err_ok{color:green;background:#ecfde4;border:#dbfdcb 1px solid;font-weight:bold}#actions ul.errors>li>p.hint{background-image:url('../imgs/info.png');background-repeat:no-repeat;color:#777;padding-left:25px;background-position:0 .3em;font-size:12px}#actions form{width:450px;margin:0 auto;text-align:left}#actions form fieldset legend{width:100%;margin-top:1em;color:#fff;font-size:14px;font-weight:bold;text-align:center;background-color:#607d8b;margin-bottom:1em;border-radius:5px;letter-spacing:.2em;padding:.2em 0}#actions div.buttons{margin-top:2em;text-align:center}#whatsNewIcon{text-align:center}#whatsNewIcon img{width:64px;height:64px}#whatsNewIcon h2{display:inline-block;color:#555;font-size:16px}#whatsNew{margin:0 auto;width:500px;background-color:#fffde1;padding:2em;line-height:1.5em;font-size:16px;color:#555;border:1px solid #d9d9d9;margin-bottom:3em;display:none}#whatsNew ul{padding:0;border:0}#whatsNew li{padding-left:37px;background:url("../imgs/arrow-list.png") left center no-repeat;line-height:32px;list-style:none}.no-title .ui-dialog-titlebar{display:none}.ui-dialog{z-index:9999 !important}@media screen and (max-width:1000px){#content #searchbox{position:relative;left:0;width:100%}#content #searchbox form{flex-wrap:wrap}#content #searchbox form>div{width:100%}#content #searchbox input[type=text]{width:100%}footer,footer .footer-parts{justify-content:space-between;flex-wrap:wrap}footer #footer-left,footer #footer-right,footer .footer-parts>div{width:100%}footer .footer-parts>div{padding:.5em 0}} \ No newline at end of file +html,body{margin:0;padding:0;text-align:left;background-color:#f5f5f5;color:#555;font-size:12px;font-weight:normal;box-sizing:border-box}*{font-family:Roboto-Regular,Verdana,Tahoma,sans-serif}*,*:before,*:after{box-sizing:inherit}table{font-size:11px;border-spacing:0}table th{border-bottom:2px solid transparent;vertical-align:middle}table th .icon{width:24px;height:24px}table tr.odd{background-color:#f9f9f9}table tr.even>td,table tr.odd>td{border-bottom:1px solid #d9d9d9 !important}table tr.even:hover{background-color:#e8ff99}table tr.odd:hover{background-color:#e8ff99}table tr{height:20px}table td{padding:3px}table td.txtCliente{font-weight:bold;text-align:center}form{font-size:11px;margin:0}input.inputImg,img.inputImg{background-color:transparent !important;width:24px !important;height:24px !important;border:0;vertical-align:middle;margin:0 .5em}input.txtFile{width:200px}input.txtLong{width:300px}textarea{width:350px;resize:none}select.files{width:250px}input.spinner{width:5em}img{margin:0;padding:0;border:0;cursor:pointer}img.inputImgMini{background-color:transparent !important;width:16px !important;height:16px !important;margin:0 5px 0 5px;border:0;vertical-align:middle}i{cursor:pointer}.altTable{border:0;font-size:10px}.altTable .section{font-size:14px;font-weight:bold}a,a:visited{text-decoration:none;color:rgba(83,109,254,1)}a:hover,a:active,a:focus{text-decoration:none;color:rgba(83,109,254,.6);cursor:pointer}#nojs{width:80%;text-align:center;vertical-align:middle;margin:10px auto;padding:3px;background-color:red;color:white;font-weight:bold;font-size:14px}pre,code,samp,kbd{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;font-size:1em;direction:ltr;text-align:left;background-color:#fbfaf9;color:#333;box-shadow:inset 0 0 .3em #ccc;border-radius:2px}#wrap{height:auto !important;min-height:100%;width:100%;background-color:#f5f5f5}#wrap-loading{position:fixed;z-index:9999;top:50%;left:50%;padding:1em;background-color:rgba(255,255,255,.8);border-radius:5px;display:none}#container{margin:auto;width:100%}#container.login{padding-top:10em}#container.main{position:absolute;top:0;width:100%;height:auto;background:url("../imgs/logo_full.svg") no-repeat left top transparent;background-size:auto 150px}#container.error,#container.install,#container.passreset{width:100%}#container #header{width:100%;margin-bottom:15px}#container #actions-bar{z-index:100;display:flex;justify-content:space-between;position:fixed;border:0 none;top:0;left:0;width:100%;padding:1em 0;background-color:transparent}#container #actions-bar-icons{flex-grow:1;text-align:center}#container #actions-bar-logo{display:none;padding:0 .5em}#container #actions-bar-logo img{display:inline-block;width:50px;opacity:.75}#container #content{width:95%;margin:8em auto}#container #content.public-link{min-height:0;margin:0}#content td.descField,#fancyContainer td.descField{text-align:right;padding-right:20px;width:25%;font-weight:bold;border-right:1px solid #d9d9d9;color:#555}#content td.valField,#fancyContainer td.valField{padding-left:1em;width:100%}#content #resBuscar{margin-bottom:50px}#content #resBuscar img{vertical-align:middle}#content .pager{width:100%;margin-top:15px;padding:.5em;vertical-align:middle;font-size:11px;color:#999;background-color:#fcfcfc}#content .pager img{margin-left:5px;vertical-align:middle}#content .pager a{margin-left:5px;font-size:12px;color:#999}#content .pager>div{display:inline-block;width:49%}#content .pager .pager-left{text-align:left}#content .pager .pager-right{text-align:right}#content #title{width:50%;padding:7px;margin:auto;background-color:#d9d9d9;color:#fff;font-size:17px;letter-spacing:.3em;text-align:center}#content #title.titleBlue{background-color:#536dfe;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#536dfe),color-stop(90%,#536dfe));background-image:-webkit-linear-gradient(#536dfe 20%,#536dfe 90%);background-image:-moz-linear-gradient(#536dfe 20%,#536dfe 90%);background-image:-o-linear-gradient(#536dfe 20%,#536dfe 90%);background-image:linear-gradient(#536dfe 20%,#536dfe 90%);background:#536dfe url("../inc/themes/material-blue/css/images/ui-bg_highlight-hard_100_536DFE_1x100.png") repeat-x scroll 50% 50%}#content #title.titleNormal{background-color:#607d8b;color:#fff}#content .data{width:75%;padding:10px;border:1px solid #c9c9c9;margin:auto;background-color:#f9f9f9}#content .data #history-icon{position:relative;top:5em;right:2em}#content .data td{text-align:left}#content .data td.descField{text-align:right;font-size:12px;font-weight:bold;color:#999}#content .data select{min-width:210px}#content .data .list-wrap{max-height:10em;overflow:auto;padding:.5em;margin:1em 0}#content .data .list-wrap ul{list-style-type:none;margin:0;padding:0}#content .data .list-wrap li{display:flex;background:#f2f2f2;padding:.5em;font-size:1em;margin-bottom:.5em}#content .data .list-wrap li:hover{background:#e8eaf6;color:#000}#content .data .list-wrap div.files-item-info{flex-grow:2}#content .data .list-wrap div.files-item-info img{margin:0 .5em}#content .data .list-wrap div.files-item-actions{padding:.3em 0}#content .data .dropzone{width:30em;padding:1em;border:2px dashed #009688;text-align:center}#content .data .dropzone img{vertical-align:middle}#content .data .file-upload{display:none}#content .data .account-permissions{width:100%}#content .data .account-permissions fieldset{border:1px solid #c9c9c9;padding:1em}#content .data .account-permissions legend{font-weight:bold;color:#999;padding:.2em 0}#content .data .account-permissions fieldset>span{font-weight:bold;color:#999;padding:.2em 0;display:inline-block;width:100px;text-align:right}#content span.tag{margin:0 3px 3px 0;padding:.2em;background:#5c6bc0;color:#fff;border:0 solid rgba(0,0,0,0);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#content .extra-info{margin-top:20px}#content .tblIcon{background:url("../imgs/clock.png") no-repeat transparent}#content #tabs .ui-tabs-nav{position:relative;left:12em;width:90%}#content #tabs fieldset{border:1px solid #c9c9c9}#content #tabs #frmConfig label{float:left}#content .tblConfig{margin-bottom:2em}#content .tblConfig td.descField{width:35%;font-size:11px;font-weight:bold}#content .tblConfig td.rowHeader{padding:5px 0 5px 0;background-color:#f5f5f5;text-align:center;font-weight:bold;border-top:15px solid #f9f9f9;border-bottom:3px solid #a9c1d7;letter-spacing:.5em;color:#696969}#content .tblConfig input.checkbox{width:15px;text-align:left;padding:0}#content .tblConfig .option-disabled{text-align:center;background-color:#fff2d9;color:orange;font-weight:bold}#content h2{width:100%;height:1.5em;font-size:18px;color:white;background-color:#a9c1d7;margin:0;padding-top:.1em}#content .section{margin-top:2.5em;border-bottom:1px solid #d9d9d9;text-align:left;font-size:14px;font-weight:bold;color:#045fb4}#content .row_even>td{background-color:#f5f5f5}#content .row_odd>td{background-color:white}#content .data-header ul{list-style:none;width:100%;margin:0 0 10px 0;padding:0}#content .data-header li{display:inline-block;padding:.2em .5em;font-weight:bold;letter-spacing:.2em;color:#fff;text-align:center}#content .data-header li a{color:#777}#content .data-header li img{float:right;width:24px;height:24px;vertical-align:middle}#content .data-header-minimal{border-bottom:1px solid #dfdfdf}#content .data-header-minimal ul{display:flex;flex-wrap:wrap;justify-content:flex-start;margin:0}#content .data-header-minimal li{display:inline-flex;min-width:10em;font-weight:normal;letter-spacing:normal}#content .data-header-minimal li a{color:#b9b9b9;padding:.3em .8em}#content .data-table{width:100%}#content .data-table td:first-of-type,#content .data-table th:first-of-type{width:5em}#content .data-table thead th{background-color:#607d8b;color:#fff}#content .data-table tbody td.cell-data{text-align:left}#content .data-table tbody td.cell-nodata{padding:1em 0;text-align:left}#content .data-table tbody td.cell-actions{text-align:right}#content .data-rows ul{display:table;list-style:none;width:100%;margin:0 0 10px 0;padding:0;background-color:#fcfcfc}#content .data-rows li{float:left;display:block;padding:1em;color:#696969;text-align:center;min-height:2em}#content .data-rows li.cell-nodata{padding:1em 0;min-height:2em;text-align:left}#content .data-rows li.cell-actions{float:right;min-height:2em;padding:1em 0;text-align:left;background-color:#fcfcfc;width:15em}#content .data-rows li.cell-nodata img,#content .data-rows li.cell-actions img,#content #data-search .account-info img,#content #data-search .account-actions img{width:24px;height:24px;margin:0 .5em}#content .rowSpace>.cellBorder{height:10px;border-top:1px solid #d9d9d9}#content .rowSpace>.cellBlank{height:10px}#content #resEventLog .data{width:100%}#content #resEventLog thead{text-align:center}#content #resEventLog tbody{width:100%;height:500px;overflow:auto}#content #resEventLog td{border-bottom:1px solid #d9d9d9}#content #resEventLog .cell{text-align:center}#content #resEventLog .cell-description{width:60%}#content #searchbox{background-color:#fcfcfc;background-color:rgba(252,252,252,.75);vertical-align:middle}#content #searchbox{position:relative;left:8%;width:91%;height:auto;padding:.5em 1em;margin-bottom:2em}#content #searchbox form{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;text-align:left}#content #searchbox .search-filters>*{margin:0 .5em}#content #searchbox .search-filters .filter-buttons{display:inline-block}#content #searchbox .search-filters .filter-slider{width:10em}#content #searchbox .search-filters-tags{display:none;flex-grow:1}#content .btn-clear{opacity:.35;filter:alpha(opacity=35)}#content .btn-clear:hover{opacity:1;filter:alpha(opacity=100)}#content #tabs.ui-widget-content{border:0;background-color:transparent}#content #tabs .ui-widget-header{background:0;border:0;border-bottom:1px solid #c9c9c9}#content #tabs.ui-widget-content{background:none !important}#content #tabs .tabs-spacer{float:left;height:200px}#content .tabs-bottom .ui-tabs-nav{clear:left;padding:0 .2em .2em .2em}#content .tabs-bottom .ui-tabs-nav li{top:auto;bottom:0;margin:0 .2em 1px 0;border-top:0}#content .tabs-bottom .ui-tabs-nav li.ui-tabs-active{margin-top:-1px;padding-top:1px}#datos{float:left;width:400px;text-align:left;margin-top:10px;color:#b9b9b9}#datos a{color:orange;font-weight:bold;border:0;padding:3px;margin:5px 0 5px 0;display:block;width:40px;text-align:center;background-color:transparent}#datos img{border:0}#resAccion,#resFancyAccion{height:20px;padding:5px;margin:5px;font-weight:bold;font-size:14px}#resAccion span{padding:5px;border:#a9a9a9 1px solid}#fancyView{min-width:250px;text-align:center;padding:15px;line-height:20px;border:#d9d9d9 1px solid;font-size:14px}#fancyView ul{list-style:none}#fancyView.msgError{margin:5px;background-color:#fee8e6;color:#c00;font-weight:bold;border:#fed2ce 1px solid}#fancyView.msgOk{margin:5px;background-color:#ecfde4;color:green;font-weight:bold;border:#dbfdcb 1px solid}#fancyView.msgWarn{margin:5px;background-color:#fff2d9;color:orange;font-weight:bold;border:#ffe5b3 1px solid}#fancyView.msgInfo{margin:5px;background-color:#e9e9e9;color:orange;font-weight:bold;border:#ffe5b3 1px solid}#fancyView.backGrey{background-color:#f2f2f2 !important}#fancyView PRE{text-align:left}#fancyView table{border:0;width:100%;font-size:14px;text-align:left}#fancyView td{border-bottom:#d9d9d9 1px solid}#fancyMsg{min-width:250px;height:150px;background-color:#f5f5f5;font-family:Verdana,Arial;font-size:16px;text-align:center;display:table-cell;vertical-align:middle;font-weight:bold;border:0;line-height:20px;padding:0 15px;border-radius:25px;-moz-border-radius:25px;-webkit-border-radius:25px}#fancyMsg table{border:0;width:100%;font-size:14px;text-align:left}#fancyMsg td{border-bottom:#d9d9d9 1px solid}#fancyMsg.msgError{background:url('../imgs/bg_msg_error.png') white repeat-x;color:#c00}#fancyMsg.msgOk{background:url('../imgs/bg_msg_ok.png') white repeat-x;color:green}#fancyMsg.msgWarn{background:url('../imgs/bg_msg_warn.png') white repeat-x;color:orange}#fancyMsg.msgInfo{background:url('../imgs/bg_msg_info.png') white repeat-x;color:#555}#fancyView a,#fancyMsg a{color:#555}#fancyContainer{padding:0}#fancyContainer>h2{width:100%;font-size:18px;color:white;background-color:#607d8b;margin:0 0 1em 0;padding:.5em 0;line-height:1em}#fancyContainer select{width:220px}#fancyContainer.help{min-height:100px;background-color:#f5f5f5}#fancyContainer.help p{font-size:14px;text-align:justify;line-height:2em}#fancyContainer #resFancyAccion{display:none}#fancyContainer #resCheck{display:inline-block;width:80%;height:4em;padding:1em 0}#debug{float:left;text-align:left}#debuginfo{width:100%;min-height:10em;padding:1em;background-color:lightgoldenrodyellow;text-align:left;line-height:1.5em}#debuginfo H3{text-align:center}.fancyNone{background-color:transparent !important}.fancydata{min-width:400px;border:0;text-align:left;margin:0 .5em}.fancydata .descField{min-width:100px;font-weight:bold}footer{display:flex;justify-content:space-between;position:fixed;bottom:0;z-index:100;width:100%;padding:.5em 0;background-color:#f5f5f5;color:#b9b9b9;font-size:1em;box-shadow:0 -8px 6px -6px #c9c9c9;-webkit-box-shadow:0 -8px 6px -6px #c9c9c9;-moz-box-shadow:0 -8px 6px -6px #c9c9c9}footer,footer .footer-parts{display:flex;justify-content:space-between}footer #footer-left,footer #footer-right{width:50%;margin:0 1em}footer #footer-right{justify-content:flex-end;text-align:right}footer #updates{min-width:10em;text-align:center;cursor:pointer}footer #status{margin:0 1em}footer #status>div{display:inline-block}footer #status .status-info{padding:.5em}footer #session{text-align:left;color:#999;font-size:.8em}footer a,footer a:visited{color:#b9b9b9}footer #project a:hover{color:#a9c1d7;border-bottom:1px solid #a9c1d7}footer #updates a:hover{color:#a9c1d7}footer img{border:0;width:16px;height:16px;vertical-align:middle}.round{border-radius:5px !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important}.round5{border-radius:5px !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important}.midround{border-radius:0 0 10px 10px !important;-moz-border-radius:0 0 10px 10px !important;-webkit-border-radius:0 0 10px 10px !important}.midroundup{border-radius:10px 10px 0 0 !important;-moz-border-radius:10px 10px 0 0 !important;-webkit-border-radius:10px 10px 0 0 !important}.fullround{border-radius:50% !important;-moz-border-radius:50% !important;-webkit-border-radius:50% !important}.iconMini{width:16px !important;height:16px !important;vertical-align:middle}#content .error{width:350px;margin:15px;padding:15px;background-color:#f9f9f9;color:orange;border:orange 1px solid;margin:0 auto;text-align:center;font-size:16px;line-height:1.5em}.hide{display:none !important}.btn-checks{padding:5px;margin:.2em 0;width:30em;border-bottom:1px solid #c9c9c9}.shadow{box-shadow:1px 1px 2px #d9d9d9}.noRes{width:60%;margin:15px;padding:15px;background-color:#f9f9f9;color:#a9a9a9;border:#c9c9c9 1px solid;margin:20px auto;text-align:center;font-size:16px}.header-blue{background:#536dfe url("../inc/themes/material-blue/css/images/ui-bg_highlight-hard_100_536DFE_1x100.png") repeat-x scroll 50% 50%}.header-grey{background-color:#607d8b;color:#fff;min-height:2em}.no-background{background:none !important}.action-in-box{display:inline-block;height:4em;margin:.7em 0;text-align:right}.action-in-box ul{list-style:none;margin:0;padding:0}.item-actions{margin:1em auto;width:75%}.item-actions>ul,.tab-actions>ul{display:flex;flex-wrap:wrap;justify-content:flex-end;list-style:none;margin:0;padding:0}.item-actions>ul>li,.tab-actions>ul>li{margin-left:.5em}.fullWidth{max-width:100% !important}.filterOn{padding:.3em 1em;background-color:#ecfde4;color:green !important;border:#dbfdcb 1px solid !important}.globalOn{padding:.3em 1em;background-color:#fff2d9;color:orange !important;border:#ffe5b3 1px solid !important}.opacity50{filter:alpha(opacity=50);-moz-opacity:.5;-khtml-opacity:.5;opacity:.5}.custom-combobox{position:relative;display:inline-block}.custom-combobox input{width:80%}.custom-combobox-toggle{position:absolute;top:0;bottom:0;margin-left:-1px;padding:0;*height:1.7em;*top:.1em}.custom-combobox-input{margin:0;padding:.3em}.ui-tooltip{background:#ffffa3;color:#555;padding:10px;border-radius:10px;box-shadow:0 0 7px #a9a9a9}.ui-autocomplete,.ui-menu-item{z-index:8050}.fancybox-inner{overflow:visible !important}.passLevel{width:20px;height:20px;display:inline-block;position:relative;top:2px}.passLevel.strongest,.passLevel.strongest:hover{background-color:#ecfde4 !important;color:green;font-weight:bold;border:lightgreen 1px solid}.passLevel.strong,.passLevel.strong:hover{background-color:#e6f2ff !important;color:#64b4f4;font-weight:bold;border:#64b4f4 1px solid}.passLevel.good,.passLevel.good:hover{background-color:#fff2d9 !important;color:orange;font-weight:bold;border:#ffe5b3 1px solid}.passLevel.weak,.passLevel.weak:hover{background-color:#fee8e6 !important;color:#c00;font-weight:bold;border:#fed2ce 1px solid}#alert #alert-text{margin:15px auto;font-size:14px;font-weight:bold}#alert #alert-pass{width:50%;padding:10px;margin:15px auto;border:1px solid #c9c9c9;color:#555;font-weight:bold}.dialog-user-text{padding:.5em;border-bottom:#d9d9d9 1px solid;text-align:center;min-width:200px;color:#d9d9d9}.dialog-pass-text{padding:.5em;border:transparent 1px solid;text-align:center;min-width:200px}.dialog-buttons{text-align:center;padding:.5em;border-top:1px solid #c9c9c9;line-height:2.5em}.dialog-clip-pass-copy{background-color:#ecfde4;color:green;border:#dbfdcb 1px solid}.help-box{background-color:#fff !important;color:#607d8b}.help-box>*{font-weight:bold}.help-text{text-align:justify;line-height:1.5em;margin-top:1em}.tooltip{width:300px;max-width:300px;background-color:#777;color:#fff;z-index:101}.cursor-pointer{cursor:pointer}.password-actions{display:inline-block;width:12em}.password-actions>span,.password-actions i{margin-right:.6em}.custom-input-color{width:3em;height:1em;display:inline-block}.account-pass-image{height:32px;width:auto}.select-box{min-width:20em}#boxLogin{width:45em;min-height:150px;margin:0 auto;padding:1em;background:url("../imgs/logo_full.svg") no-repeat #fff;background-size:300px auto;background-position:.5em .5em}#boxLogin .error{float:left;width:315px;margin-top:15px;color:orange;border:1px orange solid;margin-left:auto;margin-right:auto}#boxLogin #boxData,#boxLogin #boxButton{margin-top:7em}#boxLogin #boxData{display:inline-block;width:250px;height:100%;min-height:100px;text-align:left;margin-left:13em;background-color:transparent}#boxLogin #boxButton{display:inline-block;text-align:right;margin-left:2em}#boxLogin #boxActions{width:100%;height:1em;margin-top:1em;text-align:right}#boxLogin #boxActions a{color:#c9c9c9}#boxLogout{width:250px;margin:8em auto 0 auto;font-size:14px;text-align:center;color:orange;background:#fff2d9;border:#ffe5b3 1px solid;padding:.5em}#boxUpdated{width:350px;margin:5em auto 5em auto;font-size:14px;text-align:center;color:green;background:#ecfde4;border:#dbfdcb 1px solid;padding:.5em}fieldset.warning{padding:8px;color:#b94a48;background-color:#f2dede;border:1px solid #eed3d7;border-radius:5px}fieldset.warning legend{color:#b94a48 !important}fieldset.warning a{color:#b94a48 !important;font-weight:bold}#actions{width:100%;margin:auto auto 50px;line-height:2em}#actions #logo{display:flex;width:100%;margin-bottom:30px;color:#607d8b;box-shadow:0 8px 6px -6px rgba(83,109,254,.3);-webkit-box-shadow:0 8px 6px -6px rgba(83,109,254,.3);-moz-box-shadow:0 8px 6px -6px rgba(83,109,254,.3);align-items:center;background:url("../imgs/logo_full.svg") left no-repeat;background-size:auto 150px;height:150px}#actions #logo #pageDesc{color:#607d8b;align-self:auto;flex:1 0 auto;text-align:center}#actions #logo #pageDesc h1{font-weight:bold;font-size:24px;letter-spacing:3px}#actions ul.errors{max-width:40%;margin:0 auto;list-style:none;font-size:14px;text-align:left}#actions ul.errors>li{margin:1.5em auto;border-radius:5px;padding:.5em}#actions ul.errors>li.err_critical{color:#b94a48;background:#fed7d7;border:1px solid red}#actions ul.errors>li.err_warning{color:orange;background:#fff2d9;border:#ffe5b3 1px solid}#actions ul.errors>li.err_ok{color:green;background:#ecfde4;border:#dbfdcb 1px solid;font-weight:bold}#actions ul.errors>li>p.hint{background-image:url('../imgs/info.png');background-repeat:no-repeat;color:#777;padding-left:25px;background-position:0 .3em;font-size:12px}#actions form{width:450px;margin:0 auto;text-align:left}#actions form fieldset legend{width:100%;margin-top:1em;color:#fff;font-size:14px;font-weight:bold;text-align:center;background-color:#607d8b;margin-bottom:1em;border-radius:5px;letter-spacing:.2em;padding:.2em 0}#actions div.buttons{margin-top:2em;text-align:center}#whatsNewIcon{text-align:center}#whatsNewIcon img{width:64px;height:64px}#whatsNewIcon h2{display:inline-block;color:#555;font-size:16px}#whatsNew{margin:0 auto;width:500px;background-color:#fffde1;padding:2em;line-height:1.5em;font-size:16px;color:#555;border:1px solid #d9d9d9;margin-bottom:3em;display:none}#whatsNew ul{padding:0;border:0}#whatsNew li{padding-left:37px;background:url("../imgs/arrow-list.png") left center no-repeat;line-height:32px;list-style:none}.no-title .ui-dialog-titlebar{display:none}.ui-dialog{z-index:9999 !important}@media screen and (max-width:1000px){#content #searchbox{position:relative;left:0;width:100%}#content #searchbox form{flex-wrap:wrap}#content #searchbox form>div{width:100%}#content #searchbox input[type=text]{width:100%}footer,footer .footer-parts{justify-content:space-between;flex-wrap:wrap}footer #footer-left,footer #footer-right,footer .footer-parts>div{width:100%}footer .footer-parts>div{padding:.5em 0}} \ No newline at end of file diff --git a/inc/themes/material-blue/js/app-theme.js b/inc/themes/material-blue/js/app-theme.js index 7422a5b0..0e9e7fdf 100644 --- a/inc/themes/material-blue/js/app-theme.js +++ b/inc/themes/material-blue/js/app-theme.js @@ -33,6 +33,8 @@ sysPass.Theme = function (Common) { */ var ajax = { complete: function () { + log.info("ajax:complete"); + // Actualizar componentes de MDL cargados con AJAX componentHandler.upgradeDom(); diff --git a/inc/themes/material-blue/js/app-theme.min.js b/inc/themes/material-blue/js/app-theme.min.js index a40e2beb..7a6b1925 100644 --- a/inc/themes/material-blue/js/app-theme.min.js +++ b/inc/themes/material-blue/js/app-theme.min.js @@ -16,4 +16,4 @@ e&&d.off()}).on("resize",function(){if(0'),c=$('
  • '),d=$('');a.forEach(function(a){var e=d.clone();e.append('person');e.append(a);a=c.clone().append(e);b.append(a)});return b}}}}; +$("#loading").removeClass("is-active")}},ajax:{complete:function(){f.info("ajax:complete");componentHandler.upgradeDom()}},html:{getList:function(a){var b=$(''),c=$('
  • '),d=$('');a.forEach(function(a){var e=d.clone();e.append('person');e.append(a);a=c.clone().append(e);b.append(a)});return b}}}}; diff --git a/inc/themes/material-blue/views/account/actions.inc b/inc/themes/material-blue/views/account/actions.inc index 9418a9e2..8fcfa89d 100644 --- a/inc/themes/material-blue/views/account/actions.inc +++ b/inc/themes/material-blue/views/account/actions.inc @@ -4,121 +4,145 @@ use SP\Util\Checks; /** @var $icons \Theme\Icons */ /** @var \SP\Account\AccountAcl $AccountAcl */ ?> -
    - isShowDelete()): ?> - - - - isShowLink() && $AccountAcl->isShowViewPass()): ?> - - - - isShowViewPass()): ?> - - - +
    +
      + isShowDelete()): ?> +
    • + +
    • - - isShowEditPass()): ?> - - + isShowLink() && $AccountAcl->isShowViewPass()): ?> +
    • + +
    • + - - - - - + isShowViewPass()): ?> +
    • + +
    • + +
    • + +
    • + + - isShowEdit()): ?> - - isShowEdit() && $actionId == \SP\Core\ActionsInterface::ACTION_ACC_VIEW && Checks::mailrequestIsEnabled()): ?> - - + isShowEditPass()): ?> +
    • + +
    • + - isShowRestore()): ?> - - isShowSave()): ?> - - + +
    • + +
    • + +
    • + +
    • + + + isShowEdit()): ?> +
    • + +
    • + isShowEdit() && $actionId == \SP\Core\ActionsInterface::ACTION_ACC_VIEW && Checks::mailrequestIsEnabled()): ?> +
    • + +
    • + + + isShowRestore()): ?> +
    • + +
    • + isShowSave()): ?> +
    • + +
    • + +
    \ No newline at end of file diff --git a/inc/themes/material-blue/views/grid/datagrid-rows.inc b/inc/themes/material-blue/views/grid/datagrid-rows.inc index 36c4a265..2eeb82d1 100644 --- a/inc/themes/material-blue/views/grid/datagrid-rows.inc +++ b/inc/themes/material-blue/views/grid/datagrid-rows.inc @@ -5,58 +5,56 @@ */ ?> - + getData()->getDataCount() === 0): ?> -
    + + + + + getData()->getData() as $dataIndex => $dataItem): ?> -
      + getData()->getDataRowSources() as $rowSrc): ?> -
    • {$rowSrc} !== '') ? $dataItem->{$rowSrc} : ' '; // Fix height ?>
    • + {$rowSrc} !== '') ? $dataItem->{$rowSrc} : ' '; // Fix height ?> getData()->getDataRowSourcesWithIcon()) > 0): ?> -
    • + getData()->getDataRowSourcesWithIcon() as $rowSrcIcon): ?> {$rowSrcIcon[0]} == 1): ?> - getIcon(); ?> + title="getTitle(); ?>">getIcon(); ?>   -
    • + -
    • - getDataActions()) > 0): ?> - getDataActions() as $action): ?> - isSkip()): ?> - getFilterRowSource() && $dataItem->{$action->getFilterRowSource()} == 1): continue; endif; ?> - getIcon()->getIcon(); ?> - - - -   - -
    • -
    + +
    + getDataActions()) > 0): ?> + getDataActions() as $action): ?> + isSkip()): ?> + getFilterRowSource() && $dataItem->{$action->getFilterRowSource()} == 1): continue; endif; ?> + getIcon()->getIcon(); ?> + + + +   + +
    + + - - - getDataPagerTemplate(); ?> - - - + \ No newline at end of file diff --git a/inc/themes/material-blue/views/grid/datagrid-table.inc b/inc/themes/material-blue/views/grid/datagrid-table.inc new file mode 100644 index 00000000..41cbf5f8 --- /dev/null +++ b/inc/themes/material-blue/views/grid/datagrid-table.inc @@ -0,0 +1,30 @@ + + + + + + getHeader()->getHeaders() as $header): ?> + + + + + + + + + getDataRowTemplate(); ?> + +
     
    + + +getDataPagerTemplate(); ?> + + \ No newline at end of file diff --git a/inc/themes/material-blue/views/grid/datatabs-grid.inc b/inc/themes/material-blue/views/grid/datatabs-grid.inc index 53bed00a..7116f29d 100644 --- a/inc/themes/material-blue/views/grid/datatabs-grid.inc +++ b/inc/themes/material-blue/views/grid/datatabs-grid.inc @@ -2,12 +2,13 @@ -
    +
      $data): ?> @@ -16,7 +17,7 @@
      -
      +
        getDataActions() as $action): ?> getType() === \SP\Html\DataGrid\DataGridActionType::NEW_ITEM): ?> @@ -37,7 +38,7 @@
        @@ -57,7 +58,8 @@ - +
        @@ -71,19 +73,34 @@ getIconBack()->getIcon(); ?> + getDataActionsMenu()) > 0): ?> +
      • + + +
          + getDataActionsMenu() as $action): ?> +
        • + getIcon()->getIcon(); ?> + +
        • + +
        +
      • +
      -
      -
        - getHeader()->getHeaders() as $header): ?> -
      • - -
      -
      - -
      - getDataRowTemplate(); ?> +
      +
      diff --git a/js/app-actions.js b/js/app-actions.js index c34960fd..95c7cafa 100644 --- a/js/app-actions.js +++ b/js/app-actions.js @@ -860,6 +860,20 @@ sysPass.Actions = function (Common) { log.info("appMgmt:delete"); var atext = "

      " + Common.config().LANG[12] + "

      "; + var selection = $obj.data("selection"); + var items = []; + + if (selection) { + $(selection).find(".is-selected").each(function (index, value) { + var $this = $(this); + + items.push($this.data("item-id")); + }); + + if (items.length === 0) { + return; + } + } alertify .okBtn(Common.config().LANG[43]) @@ -870,7 +884,7 @@ sysPass.Actions = function (Common) { var opts = Common.appRequests().getRequestOpts(); opts.url = ajaxUrl.appMgmt.save; opts.data = { - itemId: $obj.data("item-id"), + itemId: selection ? items : $obj.data("item-id"), actionId: $obj.data("action-id"), sk: Common.sk.get(), isAjax: 1 diff --git a/js/app-actions.min.js b/js/app-actions.min.js index af6d6b1f..69eb4b2c 100644 --- a/js/app-actions.min.js +++ b/js/app-actions.min.js @@ -1,34 +1,34 @@ -var $jscomp={scope:{},findInternal:function(b,d,g){b instanceof String&&(b=String(b));for(var e=b.length,f=0;f
      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a=b.appRequests().getRequestOpts();a.url=e.account.save;a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get()};b.appRequests().getActionCall(a,function(c){b.msg.out(c);k.search()})},function(c){c.preventDefault();alertify.error(b.config().LANG[44])})},showpass:function(c){d.info("account:showpass");var a=b.appRequests().getRequestOpts();a.url=e.account.showPass; -a.data={itemId:c.data("item-id"),isHistory:c.data("history"),isFull:c.data("full"),isAjax:1};b.appRequests().getActionCall(a,function(c){if(10===c.status)q.logout();else{var a;$("
      ").dialog({modal:!0,title:b.config().LANG[47],width:"auto",open:function(){a=$(this);var h,d="";h='";var e='",d=c.useimage,n='

      '+c.acclogin+"

      ";0===c.status?(0===d?d='

      '+c.accpass+"

      ":(d='',e=""),h=n+d+'
      '+h+e+"
      "):(h=''+c.description+"",a.dialog("option","buttons",[{text:"Ok",icons:{primary:"ui-icon-close"},click:function(){a.dialog("close")}}]));a.html(h);a.dialog("option","position","center");a.parent().on("mouseleave",function(){clearTimeout(g);g=setTimeout(function(){a.dialog("close")},3E4)})},close:function(){clearTimeout(g);a.dialog("destroy")}})}})},copypass:function(c){d.info("account:copypass"); -var a=b.appRequests().getRequestOpts();a.url=e.account.showPass;a.async=!1;a.data={itemId:c.data("item-id"),isHistory:c.data("history"),isAjax:1};return b.appRequests().getActionCall(a)},copy:function(b){d.info("account:copy");f({actionId:b.data("action-id"),itemId:b.data("item-id")})},savefavorite:function(c,a){d.info("account:saveFavorite");var h="on"===c.data("status"),n={actionId:h?c.data("action-id-off"):c.data("action-id-on"),itemId:c.data("item-id"),sk:b.sk.get(),isAjax:1},f=b.appRequests().getRequestOpts(); -f.url=e.account.saveFavorite;f.data=n;b.appRequests().getActionCall(f,function(d){b.msg.out(d);0===d.status&&(c.data("status",h?"off":"on"),"function"===typeof a&&a())})},request:function(c){d.info("account:request");var a=b.appRequests().getRequestOpts();a.url=e.account.request;a.data=c.serialize();b.appRequests().getActionCall(a,function(c){b.msg.out(c)})},menu:function(b){b.hide();b.parent().children(".actions-optional").show(250)},sort:function(b){d.info("account:sort");var c=$("#frmSearch"); -c.find('input[name="skey"]').val(b.data("key"));c.find('input[name="sorder"]').val(b.data("dir"));c.find('input[name="start"]').val(b.data("start"));k.search()},editpass:function(b){d.info("account:editpass");f({actionId:b.data("action-id"),itemId:b.data("item-id")})},restore:function(b){d.info("account:restore");k.save(b)},getfiles:function(c){d.info("account:getfiles");var a=b.appRequests().getRequestOpts();a.method="get";a.type="html";a.url=e.account.getFiles;a.data={id:c.data("item-id"),del:c.data("delete"), +"undefined"!==typeof componentHandler&&componentHandler.upgradeDom()},function(){$("#updates").html("!")})}},l={show:function(b){d.info("account:show");f({actionId:b.data("action-id"),itemId:b.data("item-id")})},showHistory:function(b){d.info("account:showHistory");f({actionId:b.data("action-id"),itemId:b.val()})},edit:function(b){d.info("account:edit");f({actionId:b.data("action-id"),itemId:b.data("item-id")})},"delete":function(c){d.info("account:delete");var a='

      '+ +b.config().LANG[3]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a=b.appRequests().getRequestOpts();a.url=e.account.save;a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get()};b.appRequests().getActionCall(a,function(c){b.msg.out(c);l.search()})},function(c){c.preventDefault();alertify.error(b.config().LANG[44])})},showpass:function(c){d.info("account:showpass");var a=b.appRequests().getRequestOpts();a.url=e.account.showPass; +a.data={itemId:c.data("item-id"),isHistory:c.data("history"),isFull:c.data("full"),isAjax:1};b.appRequests().getActionCall(a,function(c){if(10===c.status)q.logout();else{var a;$("
      ").dialog({modal:!0,title:b.config().LANG[47],width:"auto",open:function(){a=$(this);var g,d="";g='";var e='",d=c.useimage,k='

      '+c.acclogin+"

      ";0===c.status?(0===d?d='

      '+c.accpass+"

      ":(d='',e=""),g=k+d+'
      '+g+e+"
      "):(g=''+c.description+"",a.dialog("option","buttons",[{text:"Ok",icons:{primary:"ui-icon-close"},click:function(){a.dialog("close")}}]));a.html(g);a.dialog("option","position","center");a.parent().on("mouseleave",function(){clearTimeout(h);h=setTimeout(function(){a.dialog("close")},3E4)})},close:function(){clearTimeout(h);a.dialog("destroy")}})}})},copypass:function(c){d.info("account:copypass"); +var a=b.appRequests().getRequestOpts();a.url=e.account.showPass;a.async=!1;a.data={itemId:c.data("item-id"),isHistory:c.data("history"),isAjax:1};return b.appRequests().getActionCall(a)},copy:function(b){d.info("account:copy");f({actionId:b.data("action-id"),itemId:b.data("item-id")})},savefavorite:function(c,a){d.info("account:saveFavorite");var g="on"===c.data("status"),k={actionId:g?c.data("action-id-off"):c.data("action-id-on"),itemId:c.data("item-id"),sk:b.sk.get(),isAjax:1},f=b.appRequests().getRequestOpts(); +f.url=e.account.saveFavorite;f.data=k;b.appRequests().getActionCall(f,function(d){b.msg.out(d);0===d.status&&(c.data("status",g?"off":"on"),"function"===typeof a&&a())})},request:function(c){d.info("account:request");var a=b.appRequests().getRequestOpts();a.url=e.account.request;a.data=c.serialize();b.appRequests().getActionCall(a,function(c){b.msg.out(c)})},menu:function(b){b.hide();b.parent().children(".actions-optional").show(250)},sort:function(b){d.info("account:sort");var c=$("#frmSearch"); +c.find('input[name="skey"]').val(b.data("key"));c.find('input[name="sorder"]').val(b.data("dir"));c.find('input[name="start"]').val(b.data("start"));l.search()},editpass:function(b){d.info("account:editpass");f({actionId:b.data("action-id"),itemId:b.data("item-id")})},restore:function(b){d.info("account:restore");l.save(b)},getfiles:function(c){d.info("account:getfiles");var a=b.appRequests().getRequestOpts();a.method="get";a.type="html";a.url=e.account.getFiles;a.data={id:c.data("item-id"),del:c.data("delete"), sk:b.sk.get()};b.appRequests().getActionCall(a,function(b){c.html(b)})},search:function(){d.info("account:search");var c=$("#frmSearch");c.find("input[name='sk']").val(b.sk.get());c.find("input[name='skey']").val();c.find("input[name='sorder']").val();var a=b.appRequests().getRequestOpts();a.url=e.account.search;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){10===a.status&&b.msg.out(a);b.sk.set(a.sk);$("#res-content").empty().html(a.html);c.find("input:first").focus()})},save:function(c){d.info("account:save"); -var a=b.appRequests().getRequestOpts();a.url=e.account.save;a.data=c.serialize();b.appRequests().getActionCall(a,function(c){b.msg.out(c)})}},l={refreshTab:!0,show:function(c){d.info("appMgmt:show");c.data("item-dst")&&(l.refreshTab=!1);var a=b.appRequests().getRequestOpts();a.url=e.appMgmt.show;a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),activeTab:c.data("activetab"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(a){0!==a.status?b.msg.out(a):p(c,a.data.html)})}, -"delete":function(c){d.info("appMgmt:delete");var a='

      '+b.config().LANG[12]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a.preventDefault();a=b.appRequests().getRequestOpts();a.url=e.appMgmt.save;a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(a){b.msg.out(a);c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})}, -function(c){c.preventDefault();b.msg.error(b.config().LANG[44])})},save:function(c){d.info("appMgmt:save");var a=b.appRequests().getRequestOpts();a.url=e.appMgmt.save;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&(!0===l.refreshTab&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")}),l.refreshTab=!0,$.fancybox.close())})},search:function(c){d.info("appMgmt:search");var a=$(c.data("target")),h=b.appRequests().getRequestOpts();h.url=e.appMgmt.search; -h.data=c.serialize();b.appRequests().getActionCall(h,function(c){0===c.status?a.html(c.data.html):a.html(b.msg.html.error(c.description));b.sk.set(c.csrf)})},nav:function(c){d.info("appMgmt:nav");var a=$("#"+c.data("action-form"));a.find("[name='start']").val(c.data("start"));a.find("[name='count']").val(c.data("count"));a.find("[name='sk']").val(b.sk.get());l.search(a)},ldapSync:function(c){d.info("appMgmt:ldapSync");var a='

      '+b.config().LANG[57]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a, -function(a){a=b.appRequests().getRequestOpts();a.url=e.appMgmt.save;a.data={actionId:c.data("action-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(c){b.msg.out(c)})},function(c){c.preventDefault();alertify.error(b.config().LANG[44])})}};return{doAction:f,appMgmt:l,account:k,file:{view:function(c){d.info("file:view");var a=b.appRequests().getRequestOpts();a.url=e.file;a.type="html";a.data={fileId:c.data("item-id"),sk:b.sk.get(),actionId:c.data("action-id")};b.appRequests().getActionCall(a, -function(a){"undefined"!==typeof a.status&&1===a.status?b.msg.out(a):a?p(c,a):b.msg.error(b.config().LANG[14])})},download:function(c){d.info("file:download");c={fileId:c.data("item-id"),sk:b.sk.get(),actionId:c.data("action-id")};$.fileDownload(b.config().APP_ROOT+e.file,{httpMethod:"POST",data:c})},"delete":function(c){d.info("file:delete");var a='

      '+b.config().LANG[15]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a= -b.appRequests().getRequestOpts();a.url=e.file;a.data={fileId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get()};b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&(a=$("#list-account-files"),k.getfiles(a))})},function(a){a.preventDefault();alertify.error(b.config().LANG[44])})}},checks:{ldap:function(c){d.info("checks:ldap");c=$(c.data("src"));c.find("[name='sk']").val(b.sk.get());var a=b.appRequests().getRequestOpts();a.url=e.checks;a.data=c.serialize();b.appRequests().getActionCall(a, -function(a){b.msg.out(a);var c=$("#ldap-results");c.find(".list-wrap").html(b.appTheme().html.getList(a.data));c.show("slow")})},wiki:function(c){d.info("checks:wiki");c=$(c.data("src"));c.find("[name='sk']").val(b.sk.get());var a=b.appRequests().getRequestOpts();a.url=e.checks;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(c){d.info("config:save");var a=b.appRequests().getRequestOpts();a.url= -e.config.save;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},backup:function(c){d.info("config:backup");var a=b.appRequests().getRequestOpts();a.url=e.config["export"];a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"), -itemId:c.data("activetab")})})},"export":function(c){d.info("config:export");var a=b.appRequests().getRequestOpts();a.url=e.config["export"];a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},"import":function(c){d.info("config:import");var a=b.appRequests().getRequestOpts();a.url=e.config["import"];a.data=c.serialize();b.appRequests().getActionCall(a, -function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})}},main:q,user:{savePreferences:function(c){d.info("user:savePreferences");var a=b.appRequests().getRequestOpts();a.url=e.user.savePreferences;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);setTimeout(function(){window.location.replace("index.php")},2E3)})},saveSecurity:function(c){d.info("user:saveSecurity");var a=b.appRequests().getRequestOpts(); -a.url=e.user.savePreferences;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},password:function(c){d.info("user:password");var a=b.appRequests().getRequestOpts();a.type="html";a.method="get";a.url=e.user.password;a.data={actionId:c.data("action-id"),itemId:c.data("item-id"),sk:c.data("sk"),isAjax:1};b.appRequests().getActionCall(a,function(a){0===a.length?q.logout():p(c,a)})},passreset:function(c){d.info("user:passreset"); -var a=b.appRequests().getRequestOpts();a.url=e.user.passreset;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a)})}},link:{save:function(c){d.info("link:save");var a=b.appRequests().getRequestOpts();a.url=e.link;a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get(),isAjax:1};alertify.okBtn(b.config().LANG[40]).cancelBtn(b.config().LANG[41]).confirm(b.config().LANG[48],function(c){c.preventDefault();a.data.notify=1;b.appRequests().getActionCall(a,function(a){b.msg.out(a)})}, -function(c){c.preventDefault();b.appRequests().getActionCall(a,function(a){b.msg.out(a)})})},refresh:function(c){d.info("link:refresh");c={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get(),activeTab:c.data("activetab")};var a=b.appRequests().getRequestOpts();a.url=e.link;a.data=c;b.appRequests().getActionCall(a,function(a){b.msg.out(a)})}},eventlog:{nav:function(c){if("undefined"===typeof c.data("start"))return!1;var a=b.appRequests().getRequestOpts();a.url=e.eventlog;a.type="html"; -a.data={start:c.data("start"),current:c.data("current")};b.appRequests().getActionCall(a,function(a){$("#content").html(a);b.scrollUp()})},clear:function(c){var a='

      '+b.config().LANG[20]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a.preventDefault();a=b.appRequests().getRequestOpts();a.url=e.eventlog;a.data={clear:1,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(a){b.msg.out(a);0==a.status&& -f({actionId:c.data("nextaction-id")})})},function(a){a.preventDefault();b.msg.error(b.config().LANG[44])})}},ajaxUrl:e}}; +var a=b.appRequests().getRequestOpts();a.url=e.account.save;a.data=c.serialize();b.appRequests().getActionCall(a,function(c){b.msg.out(c)})}},m={refreshTab:!0,show:function(c){d.info("appMgmt:show");c.data("item-dst")&&(m.refreshTab=!1);var a=b.appRequests().getRequestOpts();a.url=e.appMgmt.show;a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),activeTab:c.data("activetab"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(a){0!==a.status?b.msg.out(a):p(c,a.data.html)})}, +"delete":function(c){d.info("appMgmt:delete");var a='

      '+b.config().LANG[12]+"

      ",g=c.data("selection"),k=[];if(g&&($(g).find(".is-selected").each(function(b,c){var a=$(this);k.push(a.data("item-id"))}),0===k.length))return;alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a.preventDefault();a=b.appRequests().getRequestOpts();a.url=e.appMgmt.save;a.data={itemId:g?k:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get(), +isAjax:1};b.appRequests().getActionCall(a,function(a){b.msg.out(a);c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},function(c){c.preventDefault();b.msg.error(b.config().LANG[44])})},save:function(c){d.info("appMgmt:save");var a=b.appRequests().getRequestOpts();a.url=e.appMgmt.save;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&(!0===m.refreshTab&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")}), +m.refreshTab=!0,$.fancybox.close())})},search:function(c){d.info("appMgmt:search");var a=$(c.data("target")),g=b.appRequests().getRequestOpts();g.url=e.appMgmt.search;g.data=c.serialize();b.appRequests().getActionCall(g,function(c){0===c.status?a.html(c.data.html):a.html(b.msg.html.error(c.description));b.sk.set(c.csrf)})},nav:function(c){d.info("appMgmt:nav");var a=$("#"+c.data("action-form"));a.find("[name='start']").val(c.data("start"));a.find("[name='count']").val(c.data("count"));a.find("[name='sk']").val(b.sk.get()); +m.search(a)},ldapSync:function(c){d.info("appMgmt:ldapSync");var a='

      '+b.config().LANG[57]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a=b.appRequests().getRequestOpts();a.url=e.appMgmt.save;a.data={actionId:c.data("action-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(c){b.msg.out(c)})},function(c){c.preventDefault();alertify.error(b.config().LANG[44])})}};return{doAction:f,appMgmt:m, +account:l,file:{view:function(c){d.info("file:view");var a=b.appRequests().getRequestOpts();a.url=e.file;a.type="html";a.data={fileId:c.data("item-id"),sk:b.sk.get(),actionId:c.data("action-id")};b.appRequests().getActionCall(a,function(a){"undefined"!==typeof a.status&&1===a.status?b.msg.out(a):a?p(c,a):b.msg.error(b.config().LANG[14])})},download:function(c){d.info("file:download");c={fileId:c.data("item-id"),sk:b.sk.get(),actionId:c.data("action-id")};$.fileDownload(b.config().APP_ROOT+e.file, +{httpMethod:"POST",data:c})},"delete":function(c){d.info("file:delete");var a='

      '+b.config().LANG[15]+"

      ";alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a=b.appRequests().getRequestOpts();a.url=e.file;a.data={fileId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get()};b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&(a=$("#list-account-files"),l.getfiles(a))})},function(a){a.preventDefault(); +alertify.error(b.config().LANG[44])})}},checks:{ldap:function(c){d.info("checks:ldap");c=$(c.data("src"));c.find("[name='sk']").val(b.sk.get());var a=b.appRequests().getRequestOpts();a.url=e.checks;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);var c=$("#ldap-results");c.find(".list-wrap").html(b.appTheme().html.getList(a.data));c.show("slow")})},wiki:function(c){d.info("checks:wiki");c=$(c.data("src"));c.find("[name='sk']").val(b.sk.get());var a=b.appRequests().getRequestOpts(); +a.url=e.checks;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(c){d.info("config:save");var a=b.appRequests().getRequestOpts();a.url=e.config.save;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},backup:function(c){d.info("config:backup"); +var a=b.appRequests().getRequestOpts();a.url=e.config["export"];a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},"export":function(c){d.info("config:export");var a=b.appRequests().getRequestOpts();a.url=e.config["export"];a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&& +f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},"import":function(c){d.info("config:import");var a=b.appRequests().getRequestOpts();a.url=e.config["import"];a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);0===a.status&&"undefined"!==typeof c.data("nextaction-id")&&f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})}},main:q,user:{savePreferences:function(c){d.info("user:savePreferences");var a=b.appRequests().getRequestOpts();a.url= +e.user.savePreferences;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);setTimeout(function(){window.location.replace("index.php")},2E3)})},saveSecurity:function(c){d.info("user:saveSecurity");var a=b.appRequests().getRequestOpts();a.url=e.user.savePreferences;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a);f({actionId:c.data("nextaction-id"),itemId:c.data("activetab")})})},password:function(c){d.info("user:password");var a=b.appRequests().getRequestOpts(); +a.type="html";a.method="get";a.url=e.user.password;a.data={actionId:c.data("action-id"),itemId:c.data("item-id"),sk:c.data("sk"),isAjax:1};b.appRequests().getActionCall(a,function(a){0===a.length?q.logout():p(c,a)})},passreset:function(c){d.info("user:passreset");var a=b.appRequests().getRequestOpts();a.url=e.user.passreset;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){b.msg.out(a)})}},link:{save:function(c){d.info("link:save");var a=b.appRequests().getRequestOpts();a.url=e.link; +a.data={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get(),isAjax:1};alertify.okBtn(b.config().LANG[40]).cancelBtn(b.config().LANG[41]).confirm(b.config().LANG[48],function(c){c.preventDefault();a.data.notify=1;b.appRequests().getActionCall(a,function(a){b.msg.out(a)})},function(c){c.preventDefault();b.appRequests().getActionCall(a,function(a){b.msg.out(a)})})},refresh:function(c){d.info("link:refresh");c={itemId:c.data("item-id"),actionId:c.data("action-id"),sk:b.sk.get(),activeTab:c.data("activetab")}; +var a=b.appRequests().getRequestOpts();a.url=e.link;a.data=c;b.appRequests().getActionCall(a,function(a){b.msg.out(a)})}},eventlog:{nav:function(c){if("undefined"===typeof c.data("start"))return!1;var a=b.appRequests().getRequestOpts();a.url=e.eventlog;a.type="html";a.data={start:c.data("start"),current:c.data("current")};b.appRequests().getActionCall(a,function(a){$("#content").html(a);b.scrollUp()})},clear:function(c){var a='

      '+b.config().LANG[20]+"

      "; +alertify.okBtn(b.config().LANG[43]).cancelBtn(b.config().LANG[44]).confirm(a,function(a){a.preventDefault();a=b.appRequests().getRequestOpts();a.url=e.eventlog;a.data={clear:1,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(a){b.msg.out(a);0==a.status&&f({actionId:c.data("nextaction-id")})})},function(a){a.preventDefault();b.msg.error(b.config().LANG[44])})}},ajaxUrl:e}};