* [DEV] Items can now be selected to perform massive actions.

This commit is contained in:
nuxsmin
2016-11-20 20:16:34 +01:00
committed by Rubén Domínguez
parent 354756f568
commit 9898e8cd3f
29 changed files with 473 additions and 266 deletions

View File

@@ -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;
}

View File

@@ -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()
{

View File

@@ -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));

View File

@@ -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();
}
}

View File

@@ -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)));
}
/**

View File

@@ -39,4 +39,5 @@ class DataGridActionType
const EDIT_ITEM = 3;
const DELETE_ITEM = 4;
const SEARCH_ITEM = 5;
const SELECT_ITEM = 6;
}

View File

@@ -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

View File

@@ -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)) {

View File

@@ -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'));
}

View File

@@ -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 = ?

View File

@@ -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';

View File

@@ -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'));
}

View File

@@ -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

View File

@@ -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'));
}

View File

@@ -46,7 +46,7 @@ interface ItemInterface
public function add();
/**
* @param $id int
* @param $id int|array
* @return mixed
*/
public function delete($id);

View File

@@ -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);
}
}
}

View File

@@ -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';

View File

@@ -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()
{

View File

@@ -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';

View File

@@ -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 {

File diff suppressed because one or more lines are too long

View File

@@ -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();

View File

@@ -16,4 +16,4 @@ e&&d.off()}).on("resize",function(){if(0<a.offset().top)d.on()});if(0<a.offset()
$("#frmSearch"),c=$("#res-content");b.find(".icon-searchfav").on("click",function(){var c=$(this).find("i"),d=b.find("input[name='searchfav']");0==d.val()?(c.addClass("mdl-color-text--amber-A200"),c.attr("title",a.config().LANG[53]),d.val(1)):(c.removeClass("mdl-color-text--amber-A200"),c.attr("title",a.config().LANG[52]),d.val(0));b.submit()});var e=b.find("#tags")[0],d=b.find("i.show-filter");c.on("click","#data-search-header .sort-down,#data-search-header .sort-up",function(){var b=$(this);b.parent().find("a").addClass("filterOn");
a.appActions().account.sort(b)}).on("click","#search-rows i.icon-favorite",function(){var b=$(this);a.appActions().account.savefavorite(b,function(){"on"===b.data("status")?(b.addClass("mdl-color-text--amber-A100"),b.attr("title",a.config().LANG[50]),b.html("star")):(b.removeClass("mdl-color-text--amber-A100"),b.attr("title",a.config().LANG[49]),b.html("star_border"))})}).on("click","#search-rows span.tag",function(){0==d.data("state")&&d.trigger("click");e.selectize.addItem($(this).data("tag-id"))});
d.on("click",function(){var a=$(this),c=b.find(".search-filters-tags");0==a.data("state")?(c.show("slow"),a.data("state","1"),a.html(a.data("icon-up"))):(c.hide("slow"),a.data("state","0"),a.html(a.data("icon-down")))});0<e.selectedOptions.length&&d.trigger("click")},common:function(a){l(a);c(a);n(a);a.find(".download").button({icons:{primary:"ui-icon-arrowthickstop-1-s"}})}},loading:{show:function(){$("#wrap-loading").show();$("#loading").addClass("is-active")},hide:function(){$("#wrap-loading").hide();
$("#loading").removeClass("is-active")}},ajax:{complete:function(){componentHandler.upgradeDom()}},html:{getList:function(a){var b=$('<ul class="ldap-list-item mdl-list"></ul>'),c=$('<li class="mdl-list__item"></li>'),d=$('<span class="mdl-list__item-primary-content"></span>');a.forEach(function(a){var e=d.clone();e.append('<i class="material-icons mdl-list__item-icon">person</i>');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=$('<ul class="ldap-list-item mdl-list"></ul>'),c=$('<li class="mdl-list__item"></li>'),d=$('<span class="mdl-list__item-primary-content"></span>');a.forEach(function(a){var e=d.clone();e.append('<i class="material-icons mdl-list__item-icon">person</i>');e.append(a);a=c.clone().append(e);b.append(a)});return b}}}};

View File

@@ -4,121 +4,145 @@ use SP\Util\Checks;
/** @var $icons \Theme\Icons */
/** @var \SP\Account\AccountAcl $AccountAcl */
?>
<div class="action">
<?php if ($AccountAcl->isShowDelete()): ?>
<button id="btnDelete" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconDelete()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_DELETE; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/delete"
title="<?php echo _('Eliminar Cuenta'); ?>">
<i class="material-icons"><?php echo $icons->getIconDelete()->getIcon(); ?></i>
</button>
<?php endif; ?>
<?php if ($AccountAcl->isShowLink() && $AccountAcl->isShowViewPass()): ?>
<button id="btnLink" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconPublicLink()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_MGM_PUBLICLINKS_NEW; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="link/save"
title="<?php echo _('Crear Enlace Público'); ?>">
<i class="material-icons"><?php echo $icons->getIconPublicLink()->getIcon(); ?></i>
</button>
<?php endif; ?>
<?php if ($AccountAcl->isShowViewPass()): ?>
<button id="btnViewPass" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconViewPass()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW_PASS; ?>"
data-item-id="<?php echo $accountIsHistory !== 1 ? $accountId : $accountHistoryId; ?>"
data-full="1"
data-sk="<?php echo $sk; ?>"
data-onclick="account/showpass"
data-history="<?php echo $accountIsHistory; ?>"
title="<?php echo _('Ver Clave'); ?>">
<i class="material-icons"><?php echo $icons->getIconViewPass()->getIcon(); ?></i>
</button>
<?php if (!Checks::accountPassToImageIsEnabled()): ?>
<button id="btnClipPass"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconClipboard()->getClassButton(); ?> clip-pass-button"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW_PASS; ?>"
data-item-id="<?php echo $accountIsHistory !== 1 ? $accountId : $accountHistoryId; ?>"
data-full="0"
data-sk="<?php echo $sk; ?>"
data-history="<?php echo $accountIsHistory; ?>"
data-onclick="account/copypass"
title="<?php echo _('Copiar Clave en Portapapeles'); ?>">
<i class="material-icons"><?php echo $icons->getIconClipboard()->getIcon(); ?></i>
</button>
<div class="item-actions">
<ul>
<?php if ($AccountAcl->isShowDelete()): ?>
<li>
<button id="btnDelete" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconDelete()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_DELETE; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/delete"
title="<?php echo _('Eliminar Cuenta'); ?>">
<i class="material-icons"><?php echo $icons->getIconDelete()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
<?php endif; ?>
<?php if ($AccountAcl->isShowEditPass()): ?>
<button id="btnEditPass" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconEditPass()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_EDIT_PASS; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/editpass"
title="<?php echo _('Modificar Clave de Cuenta'); ?>">
<i class="material-icons"><?php echo $icons->getIconEditPass()->getIcon(); ?></i>
</button>
<?php endif; ?>
<?php if ($AccountAcl->isShowLink() && $AccountAcl->isShowViewPass()): ?>
<li>
<button id="btnLink" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconPublicLink()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_MGM_PUBLICLINKS_NEW; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="link/save"
title="<?php echo _('Crear Enlace Público'); ?>">
<i class="material-icons"><?php echo $icons->getIconPublicLink()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
<?php if ($gotData && $accountIsHistory): ?>
<button id="btnBack" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/show"
title="<?php echo _('Ver Actual'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
<?php else: ?>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo _('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
<?php endif; ?>
<?php if ($AccountAcl->isShowViewPass()): ?>
<li>
<button id="btnViewPass" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconViewPass()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW_PASS; ?>"
data-item-id="<?php echo $accountIsHistory !== 1 ? $accountId : $accountHistoryId; ?>"
data-full="1"
data-sk="<?php echo $sk; ?>"
data-onclick="account/showpass"
data-history="<?php echo $accountIsHistory; ?>"
title="<?php echo _('Ver Clave'); ?>">
<i class="material-icons"><?php echo $icons->getIconViewPass()->getIcon(); ?></i>
</button>
</li>
<?php if (!Checks::accountPassToImageIsEnabled()): ?>
<li>
<button id="btnClipPass"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconClipboard()->getClassButton(); ?> clip-pass-button"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW_PASS; ?>"
data-item-id="<?php echo $accountIsHistory !== 1 ? $accountId : $accountHistoryId; ?>"
data-full="0"
data-sk="<?php echo $sk; ?>"
data-history="<?php echo $accountIsHistory; ?>"
data-onclick="account/copypass"
title="<?php echo _('Copiar Clave en Portapapeles'); ?>">
<i class="material-icons"><?php echo $icons->getIconClipboard()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
<?php endif; ?>
<?php if ($AccountAcl->isShowEdit()): ?>
<button id="btnEdit" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconEdit()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_EDIT; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/edit"
title="<?php echo _('Modificar Cuenta'); ?>">
<i class="material-icons"><?php echo $icons->getIconEdit()->getIcon(); ?></i>
</button>
<?php elseif (!$AccountAcl->isShowEdit() && $actionId == \SP\Core\ActionsInterface::ACTION_ACC_VIEW && Checks::mailrequestIsEnabled()): ?>
<button id="btnRequest" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconEmail()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_REQUEST; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/edit"
title="<?php echo _('Solicitar Modificación'); ?>">
<i class="material-icons"><?php echo $icons->getIconEmail()->getIcon(); ?></i>
</button>
<?php endif; ?>
<?php if ($AccountAcl->isShowEditPass()): ?>
<li>
<button id="btnEditPass" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconEditPass()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_EDIT_PASS; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/editpass"
title="<?php echo _('Modificar Clave de Cuenta'); ?>">
<i class="material-icons"><?php echo $icons->getIconEditPass()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
<?php if ($AccountAcl->isShowRestore()): ?>
<button id="btnRestore" name="btnRestore" type="submit" form="frmAccountRestore"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconRestore()->getClassButton(); ?>"
title="<?php echo _('Restaurar cuenta desde este punto'); ?>">
<i class="material-icons"><?php echo $icons->getIconRestore()->getIcon(); ?></i>
</button>
<?php elseif ($AccountAcl->isShowSave()): ?>
<button id="btnSave" name="btnSave" type="submit" form="frmAccount"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo _('Guardar'); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
<?php endif; ?>
<?php if ($gotData && $accountIsHistory): ?>
<li>
<button id="btnBack" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/show"
title="<?php echo _('Ver Actual'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<?php else: ?>
<li>
<button id="btnBack" type="button"
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
title="<?php echo _('Atrás'); ?>">
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
<?php if ($AccountAcl->isShowEdit()): ?>
<li>
<button id="btnEdit" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconEdit()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_EDIT; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/edit"
title="<?php echo _('Modificar Cuenta'); ?>">
<i class="material-icons"><?php echo $icons->getIconEdit()->getIcon(); ?></i>
</button>
</li>
<?php elseif (!$AccountAcl->isShowEdit() && $actionId == \SP\Core\ActionsInterface::ACTION_ACC_VIEW && Checks::mailrequestIsEnabled()): ?>
<li>
<button id="btnRequest" type="button"
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconEmail()->getClassButton(); ?>"
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_REQUEST; ?>"
data-item-id="<?php echo $accountId; ?>"
data-sk="<?php echo $sk; ?>"
data-onclick="account/edit"
title="<?php echo _('Solicitar Modificación'); ?>">
<i class="material-icons"><?php echo $icons->getIconEmail()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
<?php if ($AccountAcl->isShowRestore()): ?>
<li>
<button id="btnRestore" name="btnRestore" type="submit" form="frmAccountRestore"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconRestore()->getClassButton(); ?>"
title="<?php echo _('Restaurar cuenta desde este punto'); ?>">
<i class="material-icons"><?php echo $icons->getIconRestore()->getIcon(); ?></i>
</button>
</li>
<?php elseif ($AccountAcl->isShowSave()): ?>
<li>
<button id="btnSave" name="btnSave" type="submit" form="frmAccount"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
title="<?php echo _('Guardar'); ?>">
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
</button>
</li>
<?php endif; ?>
</ul>
</div>

View File

@@ -5,58 +5,56 @@
*/
?>
<!-- Rows -->
<!-- Rows -->
<?php if ($data->getData()->getDataCount() === 0): ?>
<div class="noRes round"><?php echo _('No se encontraron registros'); ?></div>
<tr>
<td>
<?php echo _('No se encontraron registros'); ?>
</td>
</tr>
<?php else: ?>
<?php foreach ($data->getData()->getData() as $dataIndex => $dataItem): ?>
<?php if ($dataIndex === 'count'): continue; endif; ?>
<ul>
<tr data-item-id="<?php echo $dataItem->{$data->getData()->getDataRowSourceId()}; ?>"
data-activetab="<?php echo $index; ?>">
<?php foreach ($data->getData()->getDataRowSources() as $rowSrc): ?>
<li class="cell-data"
style="width: <?php echo $data->getHeader()->getWidth(); ?>%;"><?php echo ($dataItem->{$rowSrc} !== '') ? $dataItem->{$rowSrc} : '&nbsp;'; // Fix height ?></li>
<td class="cell-data"><?php echo ($dataItem->{$rowSrc} !== '') ? $dataItem->{$rowSrc} : '&nbsp;'; // Fix height ?></td>
<?php endforeach; ?>
<?php if (count($data->getData()->getDataRowSourcesWithIcon()) > 0): ?>
<li class="cell-nodata" style="width: <?php echo $data->getHeader()->getWidth(); ?>%;">
<td class="cell-nodata">
<?php foreach ($data->getData()->getDataRowSourcesWithIcon() as $rowSrcIcon): ?>
<?php if ($dataItem->{$rowSrcIcon[0]} == 1): ?>
<i class="material-icons <?php echo $rowSrcIcon[1]->getClass(); ?>"
title="<?php echo $rowSrcIcon[1]->getTitle(); ?>">
<?php echo $rowSrcIcon[1]->getIcon(); ?>
title="<?php echo $rowSrcIcon[1]->getTitle(); ?>"><?php echo $rowSrcIcon[1]->getIcon(); ?>
</i>
<?php else: ?>
&nbsp;
<?php endif; ?>
<?php endforeach; ?>
</li>
</td>
<?php endif; ?>
<li class="cell-actions round">
<?php if (count($data->getDataActions()) > 0): ?>
<?php foreach ($data->getDataActions() as $action): ?>
<?php if (!$action->isSkip()): ?>
<?php if ($action->getFilterRowSource() && $dataItem->{$action->getFilterRowSource()} == 1): continue; endif; ?>
<i class="btn-action material-icons <?php echo $action->getIcon()->getClass(); ?>"
title="<?php echo $action->getTitle(); ?>"
data-action-id="<?php echo $action->getId(); ?>"
data-nextaction-id="<?php echo $actionId; ?>"
data-item-id="<?php echo $dataItem->{$data->getData()->getDataRowSourceId()}; ?>"
data-activetab="<?php echo $index; ?>"
data-onclick="<?php echo $action->getOnClick(); ?>"><?php echo $action->getIcon()->getIcon(); ?></i>
<?php endif; ?>
<?php endforeach; ?>
<?php else: ?>
&nbsp;
<?php endif; ?>
</li>
</ul>
<td class="cell-actions">
<div>
<?php if (count($data->getDataActions()) > 0): ?>
<?php foreach ($data->getDataActions() as $action): ?>
<?php if (!$action->isSkip()): ?>
<?php if ($action->getFilterRowSource() && $dataItem->{$action->getFilterRowSource()} == 1): continue; endif; ?>
<i class="btn-action material-icons <?php echo $action->getIcon()->getClass(); ?>"
title="<?php echo $action->getTitle(); ?>"
data-action-id="<?php echo $action->getId(); ?>"
data-nextaction-id="<?php echo $actionId; ?>"
data-item-id="<?php echo $dataItem->{$data->getData()->getDataRowSourceId()}; ?>"
data-activetab="<?php echo $index; ?>"
data-onclick="<?php echo $action->getOnClick(); ?>"><?php echo $action->getIcon()->getIcon(); ?></i>
<?php endif; ?>
<?php endforeach; ?>
<?php else: ?>
&nbsp;
<?php endif; ?>
</div>
</td>
</tr>
<?php endforeach; ?>
<!-- Pager -->
<?php include $data->getDataPagerTemplate(); ?>
<?php endif; ?>
<script type="text/javascript">
sysPassApp.sk.set("<?php echo $sk; ?>");
</script>
<?php endif; ?>

View File

@@ -0,0 +1,30 @@
<?php
/**
* @var $data SP\Html\DataGrid\DataGridTab
* @var $this SP\Core\Template
* @var $action SP\Html\DataGrid\DataGridAction|SP\Html\DataGrid\DataGridActionSearch
*/
?>
<table class="mdl-data-table mdl-js-data-table mdl-data-table--selectable data-table">
<thead>
<tr>
<?php foreach ($data->getHeader()->getHeaders() as $header): ?>
<th class="mdl-data-table__cell--non-numeric"><?php echo $header; ?></th>
<?php endforeach; ?>
<th class="mdl-data-table__cell--non-numeric">&nbsp;</th>
</tr>
</thead>
<tbody id="data-rows-<?php echo $data->getId(); ?>">
<?php include $data->getDataRowTemplate(); ?>
</tbody>
</table>
<!-- Pager -->
<?php include $data->getDataPagerTemplate(); ?>
<script type="text/javascript">
sysPassApp.sk.set("<?php echo $sk; ?>");
</script>

View File

@@ -2,12 +2,13 @@
<?php
/**
* @var $icons SP\Core\UI\ThemeIconsBase
* @var $data SP\Html\DataGrid\DataGridTab
* @var $this SP\Core\Template
* @var $action SP\Html\DataGrid\DataGridAction|SP\Html\DataGrid\DataGridActionSearch
*/
?>
<div id="tabs">
<div id="tabs" xmlns="http://www.w3.org/1999/html">
<ul id="tabsHeader"></ul>
<?php foreach ($tabs as $index => $data): ?>
@@ -16,7 +17,7 @@
</script>
<div id="tabs-<?php echo $index; ?>">
<div class="tab-actions action fullWidth">
<div class="tab-actions">
<ul>
<?php foreach ($data->getDataActions() as $action): ?>
<?php if ($action->getType() === \SP\Html\DataGrid\DataGridActionType::NEW_ITEM): ?>
@@ -37,7 +38,7 @@
<form method="post" id="<?php echo $action->getName(); ?>"
name="<?php echo $action->getName(); ?>"
class="form-action"
data-target="#data-rows-<?php echo $data->getId(); ?>"
data-target="#data-table-<?php echo $data->getId(); ?>"
data-activetab="<?php echo $index; ?>"
data-onsubmit="<?php echo $action->getOnSubmit(); ?>">
@@ -57,7 +58,8 @@
<input type="hidden" name="sk" value="">
<input type="hidden" name="start" value="0">
<input type="hidden" name="count" value="<?php echo $data->getPager()->getLimitCount(); ?>">
<input type="hidden" name="count"
value="<?php echo $data->getPager()->getLimitCount(); ?>">
<input type="hidden" name="actionId" value="<?php echo $action->getId(); ?>">
<input type="hidden" name="isAjax" value="1">
</form>
@@ -71,19 +73,34 @@
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
</button>
</li>
<?php if (count($data->getDataActionsMenu()) > 0): ?>
<li>
<button id="<?php echo $data->getId(); ?>-menu-lower-right"
class="mdl-button mdl-js-button mdl-button--icon">
<i class="material-icons">more_vert</i>
</button>
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect"
for="<?php echo $data->getId(); ?>-menu-lower-right">
<?php foreach ($data->getDataActionsMenu() as $action): ?>
<li class="btn-action mdl-menu__item"
data-onclick="<?php echo $action->getOnClick(); ?>"
data-action-id="<?php echo $action->getId(); ?>"
data-nextaction-id="<?php echo $actionId; ?>"
data-activetab="<?php echo $index; ?>"
data-selection="#data-table-<?php echo $data->getId(); ?>">
<i class="material-icons <?php echo $action->getIcon()->getClass(); ?>"><?php echo $action->getIcon()->getIcon(); ?></i>
<?php echo _('Eliminar Seleccionados'); ?>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>
</ul>
</div>
<div id="<?php echo $data->getId(); ?>" class="data-header">
<ul class="round5 header-grey">
<?php foreach ($data->getHeader()->getHeaders() as $header): ?>
<li style="width: <?php echo $data->getHeader()->getWidth(); ?>%;"><?php echo $header; ?></li>
<?php endforeach; ?>
</ul>
</div>
<div id="data-rows-<?php echo $data->getId(); ?>" class="data-rows">
<?php include $data->getDataRowTemplate(); ?>
<div id="data-table-<?php echo $data->getId(); ?>">
<?php include __DIR__ . DIRECTORY_SEPARATOR . 'datagrid-table.inc'; ?>
</div>
</div>
<?php endforeach; ?>

View File

@@ -860,6 +860,20 @@ sysPass.Actions = function (Common) {
log.info("appMgmt:delete");
var atext = "<div id=\"alert\"><p id=\"alert-text\">" + Common.config().LANG[12] + "</p></div>";
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

60
js/app-actions.min.js vendored
View File

@@ -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<e;f++){var m=b[f];if(d.call(g,m,f,b))return{i:f,v:m}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,d,g){if(g.get||g.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[d]=g.value)};
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,d,g,e){if(d){g=$jscomp.global;b=b.split(".");for(e=0;e<b.length-1;e++){var f=b[e];f in g||(g[f]={});g=g[f]}b=b[b.length-1];e=g[b];d=d(e);d!=e&&null!=d&&$jscomp.defineProperty(g,b,{configurable:!0,writable:!0,value:d})}};
$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(b,g){return $jscomp.findInternal(this,b,g).v}},"es6-impl","es3");
sysPass.Actions=function(b){var d=b.log,g,e={doAction:"/ajax/ajax_getContent.php",updateItems:"/ajax/ajax_getItems.php",user:{savePreferences:"/ajax/ajax_userPrefsSave.php",password:"/ajax/ajax_usrpass.php",passreset:"/ajax/ajax_passReset.php"},main:{login:"/ajax/ajax_doLogin.php",install:"/ajax/ajax_install.php",twofa:"/ajax/ajax_2fa.php",getUpdates:"/ajax/ajax_checkUpds.php"},checks:"/ajax/ajax_checkConnection.php",config:{save:"/ajax/ajax_configSave.php","export":"/ajax/ajax_export.php","import":"/ajax/ajax_import.php"},
var $jscomp={scope:{},findInternal:function(b,d,h){b instanceof String&&(b=String(b));for(var e=b.length,f=0;f<e;f++){var n=b[f];if(d.call(h,n,f,b))return{i:f,v:n}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,d,h){if(h.get||h.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[d]=h.value)};
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,d,h,e){if(d){h=$jscomp.global;b=b.split(".");for(e=0;e<b.length-1;e++){var f=b[e];f in h||(h[f]={});h=h[f]}b=b[b.length-1];e=h[b];d=d(e);d!=e&&null!=d&&$jscomp.defineProperty(h,b,{configurable:!0,writable:!0,value:d})}};
$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(b,h){return $jscomp.findInternal(this,b,h).v}},"es6-impl","es3");
sysPass.Actions=function(b){var d=b.log,h,e={doAction:"/ajax/ajax_getContent.php",updateItems:"/ajax/ajax_getItems.php",user:{savePreferences:"/ajax/ajax_userPrefsSave.php",password:"/ajax/ajax_usrpass.php",passreset:"/ajax/ajax_passReset.php"},main:{login:"/ajax/ajax_doLogin.php",install:"/ajax/ajax_install.php",twofa:"/ajax/ajax_2fa.php",getUpdates:"/ajax/ajax_checkUpds.php"},checks:"/ajax/ajax_checkConnection.php",config:{save:"/ajax/ajax_configSave.php","export":"/ajax/ajax_export.php","import":"/ajax/ajax_import.php"},
file:"/ajax/ajax_filesMgmt.php",link:"/ajax/ajax_itemSave.php",account:{save:"/ajax/ajax_itemSave.php",showPass:"/ajax/ajax_accViewPass.php",saveFavorite:"/ajax/ajax_appMgmtSave.php",request:"/ajax/ajax_sendRequest.php",getFiles:"/ajax/ajax_accGetFiles.php",search:"/ajax/ajax_accSearch.php"},appMgmt:{show:"/ajax/ajax_itemShow.php",save:"/ajax/ajax_itemSave.php",search:"/ajax/ajax_itemSearch.php"},eventlog:"/ajax/ajax_eventlog.php",wiki:{show:"/ajax/ajax_wiki.php"}},f=function(c){c={actionId:c.actionId,
itemId:"undefined"!==typeof c.itemId?c.itemId:0,isAjax:1};var a=b.appRequests().getRequestOpts();a.url=e.doAction;a.type="html";a.addHistory=!0;a.data=c;b.appRequests().getActionCall(a,function(b){$("#content").empty().html(b)})},m=function(c){d.info("updateItems");var a=$("#"+c.data("item-dst"))[0].selectize;a.clearOptions();a.load(function(a){var h=b.appRequests().getRequestOpts();h.url=e.updateItems;h.method="get";h.data={sk:b.sk.get(),itemType:c.data("item-type")};b.appRequests().getActionCall(h,
function(b){a(b.items)})})},p=function(c,a){$.fancybox(a,{padding:[0,0,0,0],afterClose:function(){c.data("item-dst")&&m(c)},beforeShow:function(){b.appTriggers().views.common("#fancyContainer")}})},q={logout:function(){var c=window.location.search;b.redirect(0<c.length?"index.php"+c+"&logout=1":"index.php?logout=1")},login:function(c){d.info("main:login");var a=b.appRequests().getRequestOpts();a.url=e.main.login;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){switch(a.status){case 0:b.redirect(a.data.url);
itemId:"undefined"!==typeof c.itemId?c.itemId:0,isAjax:1};var a=b.appRequests().getRequestOpts();a.url=e.doAction;a.type="html";a.addHistory=!0;a.data=c;b.appRequests().getActionCall(a,function(b){$("#content").empty().html(b)})},n=function(c){d.info("updateItems");var a=$("#"+c.data("item-dst"))[0].selectize;a.clearOptions();a.load(function(a){var g=b.appRequests().getRequestOpts();g.url=e.updateItems;g.method="get";g.data={sk:b.sk.get(),itemType:c.data("item-type")};b.appRequests().getActionCall(g,
function(b){a(b.items)})})},p=function(c,a){$.fancybox(a,{padding:[0,0,0,0],afterClose:function(){c.data("item-dst")&&n(c)},beforeShow:function(){b.appTriggers().views.common("#fancyContainer")}})},q={logout:function(){var c=window.location.search;b.redirect(0<c.length?"index.php"+c+"&logout=1":"index.php?logout=1")},login:function(c){d.info("main:login");var a=b.appRequests().getRequestOpts();a.url=e.main.login;a.data=c.serialize();b.appRequests().getActionCall(a,function(a){switch(a.status){case 0:b.redirect(a.data.url);
break;case 2:b.msg.out(a);c.find("input[type='text'],input[type='password']").val("");c.find("input:first").focus();$("#mpass").prop("disabled",!1);$("#smpass").val("").show();break;default:b.msg.out(a),c.find("input[type='text'],input[type='password']").val(""),c.find("input:first").focus()}})},install:function(c){d.info("main:install");var a=b.appRequests().getRequestOpts();a.url=e.main.install;a.data=c.serialize();b.appRequests().getActionCall(a,function(c){b.msg.out(c);0==c.status&&setTimeout(function(){b.redirect("index.php")},
1E3)})},twofa:function(c){d.info("main:twofa");var a=b.appRequests().getRequestOpts();a.url=e.main.twofa;a.data=c.serialize();b.appRequests().getActionCall(a,function(c){b.msg.out(c);0==c.status&&setTimeout(function(){b.redirect("index.php")},1E3)})},getUpdates:function(c){d.info("main:getUpdates");c=b.appRequests().getRequestOpts();c.url=e.main.getUpdates;c.type="html";c.method="get";c.timeout=1E4;c.useLoading=!1;c.data={isAjax:1};b.appRequests().getActionCall(c,function(b){$("#updates").html(b);
"undefined"!==typeof componentHandler&&componentHandler.upgradeDom()},function(){$("#updates").html("!")})}},k={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='<div id="alert"><p id="alert-text">'+
b.config().LANG[3]+"</p></div>";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;$("<div></div>").dialog({modal:!0,title:b.config().LANG[47],width:"auto",open:function(){a=$(this);var h,d="";h='<button class="dialog-clip-user-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-clipboard-target=".dialog-user-text"><span class="ui-button-icon-primary ui-icon ui-icon-clipboard"></span><span class="ui-button-text">'+
b.config().LANG[33]+"</span></button>";var e='<button class="dialog-clip-pass-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-clipboard-target=".dialog-pass-text"><span class="ui-button-icon-primary ui-icon ui-icon-clipboard"></span><span class="ui-button-text">'+b.config().LANG[34]+"</span></button>",d=c.useimage,n='<p class="dialog-user-text">'+c.acclogin+"</p>";0===c.status?(0===d?d='<p class="dialog-pass-text">'+c.accpass+"</p>":(d='<img class="dialog-pass-text" src="data:image/png;base64,'+
c.accpass+'" />',e=""),h=n+d+'<div class="dialog-buttons">'+h+e+"</div>"):(h='<span class="altTxtRed">'+c.description+"</span>",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='<div id="alert"><p id="alert-text">'+
b.config().LANG[3]+"</p></div>";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;$("<div></div>").dialog({modal:!0,title:b.config().LANG[47],width:"auto",open:function(){a=$(this);var g,d="";g='<button class="dialog-clip-user-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-clipboard-target=".dialog-user-text"><span class="ui-button-icon-primary ui-icon ui-icon-clipboard"></span><span class="ui-button-text">'+
b.config().LANG[33]+"</span></button>";var e='<button class="dialog-clip-pass-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-clipboard-target=".dialog-pass-text"><span class="ui-button-icon-primary ui-icon ui-icon-clipboard"></span><span class="ui-button-text">'+b.config().LANG[34]+"</span></button>",d=c.useimage,k='<p class="dialog-user-text">'+c.acclogin+"</p>";0===c.status?(0===d?d='<p class="dialog-pass-text">'+c.accpass+"</p>":(d='<img class="dialog-pass-text" src="data:image/png;base64,'+
c.accpass+'" />',e=""),g=k+d+'<div class="dialog-buttons">'+g+e+"</div>"):(g='<span class="altTxtRed">'+c.description+"</span>",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='<div id="alert"><p id="alert-text">'+b.config().LANG[12]+"</p></div>";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='<div id="alert"><p id="alert-text">'+b.config().LANG[57]+"</p></div>";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='<div id="alert"><p id="alert-text">'+b.config().LANG[15]+"</p></div>";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='<div id="alert"><p id="alert-text">'+b.config().LANG[20]+"</p></div>";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='<div id="alert"><p id="alert-text">'+b.config().LANG[12]+"</p></div>",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='<div id="alert"><p id="alert-text">'+b.config().LANG[57]+"</p></div>";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='<div id="alert"><p id="alert-text">'+b.config().LANG[15]+"</p></div>";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='<div id="alert"><p id="alert-text">'+b.config().LANG[20]+"</p></div>";
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}};