diff --git a/app/modules/api/Controllers/UserGroupController.php b/app/modules/api/Controllers/UserGroupController.php index 3eb114b7..463507f2 100644 --- a/app/modules/api/Controllers/UserGroupController.php +++ b/app/modules/api/Controllers/UserGroupController.php @@ -121,7 +121,8 @@ final class UserGroupController extends ControllerBase new Event($this, EventMessage::factory() ->addDescription(__u('Group updated')) ->addDetail(__u('Name'), $userGroupData->getName()) - ->addDetail('ID', $userGroupData->getId())) + ->addDetail('ID', $userGroupData->getId()) + ->addExtra('userGroupId', $userGroupData->getId())) ); $this->returnResponse(ApiResponse::makeSuccess($userGroupData, $userGroupData->getId(), __('Group updated'))); @@ -150,7 +151,8 @@ final class UserGroupController extends ControllerBase new Event($this, EventMessage::factory() ->addDescription(__u('Group deleted')) ->addDetail(__u('Name'), $userGroupData->getName()) - ->addDetail('ID', $id)) + ->addDetail('ID', $id) + ->addExtra('userGroupId', $id)) ); $this->returnResponse(ApiResponse::makeSuccess($userGroupData, $id, __('Group deleted'))); diff --git a/app/modules/web/Controllers/AccountController.php b/app/modules/web/Controllers/AccountController.php index 68eaa28d..f254ed5e 100644 --- a/app/modules/web/Controllers/AccountController.php +++ b/app/modules/web/Controllers/AccountController.php @@ -26,7 +26,9 @@ namespace SP\Modules\Web\Controllers; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; +use SP\Bootstrap; use SP\Core\Acl\Acl; +use SP\Core\Acl\ActionsInterface; use SP\Core\Context\SessionContext; use SP\Core\Crypt\Vault; use SP\Core\Events\Event; @@ -36,6 +38,7 @@ use SP\Core\UI\ThemeIcons; use SP\DataModel\AccountExtData; use SP\DataModel\ItemPreset\Password; use SP\Http\JsonResponse; +use SP\Http\Uri; use SP\Modules\Web\Controllers\Helpers\Account\AccountHelper; use SP\Modules\Web\Controllers\Helpers\Account\AccountHistoryHelper; use SP\Modules\Web\Controllers\Helpers\Account\AccountPasswordHelper; @@ -191,6 +194,10 @@ final class AccountController extends ControllerBase implements CrudControllerIn public function viewLinkAction($hash) { try { + // Set the security token to its previous value because we can't tell + // the browser which will be the new security token (not so good...) + $this->session->setSecurityKey($this->previousSk); + $layoutHelper = $this->dic->get(LayoutHelper::class); $layoutHelper->getPublicLayout('account-link', 'account'); @@ -233,16 +240,20 @@ final class AccountController extends ControllerBase implements CrudControllerIn $clientAddress = $this->configData->isDemoEnabled() ? '***' : $this->request->getClientAddress(true); + $deepLink = new Uri(Bootstrap::$WEBURI . Bootstrap::$SUBURI); + $deepLink->addParam('r', Acl::getActionRoute(ActionsInterface::ACCOUNT_VIEW) . '/' . $accountData->getId()); + $this->eventDispatcher->notifyEvent('show.account.link', new Event($this, EventMessage::factory() ->addDescription(__u('Link viewed')) ->addDetail(__u('Account'), $accountData->getName()) ->addDetail(__u('Client'), $accountData->getClientName()) - ->addDetail(__u('Agent'), $this->router->request()->headers()->get('User-Agent')) - ->addDetail(__u('HTTPS'), $this->router->request()->isSecure() ? __u('ON') : __u('OFF')) + ->addDetail(__u('Agent'), $this->request->getHeader('User-Agent')) + ->addDetail(__u('HTTPS'), $this->request->isHttps() ? __u('ON') : __u('OFF')) ->addDetail(__u('IP'), $clientAddress) - ->addData('userId', $publicLinkData->getUserId()) - ->addData('notify', $publicLinkData->isNotify())) + ->addDetail(__u('Link'), $deepLink->getUriSigned($this->configData->getPasswordSalt())) + ->addExtra('userId', $publicLinkData->getUserId()) + ->addExtra('notify', $publicLinkData->isNotify())) ); } else { ErrorUtil::showErrorInView($this->view, ErrorUtil::ERR_PAGE_NO_PERMISSION, true, 'account-link'); @@ -1050,10 +1061,10 @@ final class AccountController extends ControllerBase implements CrudControllerIn ->addDetail(__u('Account'), $accountDetails->getName()) ->addDetail(__u('Client'), $accountDetails->getClientName()) ->addDetail(__u('Description'), $description) - ->addData('accountId', $id) - ->addData('whoId', $this->userData->getId()) - ->addData('userId', $accountDetails->userId) - ->addData('userId', $accountDetails->userEditId)) + ->addExtra('accountId', $id) + ->addExtra('whoId', $this->userData->getId()) + ->addExtra('userId', $accountDetails->userId) + ->addExtra('userId', $accountDetails->userEditId)) ); return $this->returnJsonResponseData( @@ -1088,7 +1099,9 @@ final class AccountController extends ControllerBase implements CrudControllerIn $this->checkLoggedIn(); } - if (DEBUG === true && $this->session->getAppStatus() === SessionContext::APP_STATUS_RELOADED) { + if (DEBUG === true + && $this->session->getAppStatus() === SessionContext::APP_STATUS_RELOADED + ) { $this->session->resetAppStatus(); // Reset de los datos de ACL de cuentas diff --git a/app/modules/web/Controllers/AccountFileController.php b/app/modules/web/Controllers/AccountFileController.php index 062d268c..264c902f 100644 --- a/app/modules/web/Controllers/AccountFileController.php +++ b/app/modules/web/Controllers/AccountFileController.php @@ -129,7 +129,7 @@ final class AccountFileController extends ControllerBase implements CrudControll try { $this->checkSecurityToken($this->previousSk, $this->request); - // Set the security toke to its previous value because we can't tell + // Set the security token to its previous value because we can't tell // the browser which will be the new security token (not so good...) $this->session->setSecurityKey($this->previousSk); diff --git a/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php b/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php index 0cd7256c..ebdaee2d 100644 --- a/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php +++ b/app/modules/web/Controllers/Helpers/Grid/NotificationGrid.php @@ -35,6 +35,7 @@ use SP\Html\DataGrid\DataGrid; use SP\Html\DataGrid\DataGridData; use SP\Html\DataGrid\DataGridInterface; use SP\Html\DataGrid\Layout\DataGridHeader; +use SP\Html\Html; use SP\Storage\Database\QueryResult; use SP\Util\DateUtil; @@ -146,7 +147,9 @@ final class NotificationGrid extends GridBase }); $gridData->addDataRowSource('type'); $gridData->addDataRowSource('component'); - $gridData->addDataRowSource('description'); + $gridData->addDataRowSource('description', false, function ($data) { + return Html::stripTags($data); + }); $gridData->addDataRowSourceWithIcon('checked', $this->icons->getIconEnabled()->setTitle(__('Read'))); $gridData->addDataRowSourceWithIcon('onlyAdmin', $this->icons->getIconAppAdmin()->setTitle(__('Only Admins'))); $gridData->addDataRowSourceWithIcon('sticky', $this->icons->getIconGroup()->setTitle(__('Global'))); diff --git a/app/modules/web/Controllers/LoginController.php b/app/modules/web/Controllers/LoginController.php index 1169e9fa..fde6fb1e 100644 --- a/app/modules/web/Controllers/LoginController.php +++ b/app/modules/web/Controllers/LoginController.php @@ -78,7 +78,7 @@ final class LoginController extends ControllerBase $this->eventDispatcher->notifyEvent('login.finish', new Event($this, EventMessage::factory() - ->addData('redirect', $redirector)) + ->addExtra('redirect', $redirector)) ); return $this->returnJsonResponseData([ diff --git a/app/modules/web/Controllers/NotificationController.php b/app/modules/web/Controllers/NotificationController.php index 3b0b5361..adca9e20 100644 --- a/app/modules/web/Controllers/NotificationController.php +++ b/app/modules/web/Controllers/NotificationController.php @@ -257,10 +257,6 @@ final class NotificationController extends ControllerBase implements CrudControl try { $this->checkSecurityToken($this->previousSk, $this->request); - if (!$this->acl->checkUserAccess(Acl::NOTIFICATION_DELETE)) { - return $this->returnJsonResponse(JsonResponse::JSON_ERROR, __u('You don\'t have permission to do this operation')); - } - if ($id === null) { if ($this->userData->getIsAdminApp()) { $this->notificationService->deleteAdminBatch($this->getItemsIdFromRequest($this->request)); diff --git a/app/modules/web/Controllers/UserController.php b/app/modules/web/Controllers/UserController.php index e67fbfe6..64a1153f 100644 --- a/app/modules/web/Controllers/UserController.php +++ b/app/modules/web/Controllers/UserController.php @@ -277,8 +277,11 @@ final class UserController extends ControllerBase implements CrudControllerInter $this->deleteCustomFieldsForItem(Acl::USER, $id); - $this->eventDispatcher->notifyEvent('delete.user.selection', - new Event($this, EventMessage::factory()->addDescription(__u('Users deleted'))) + $this->eventDispatcher->notifyEvent( + 'delete.user.selection', + new Event($this, EventMessage::factory() + ->addDescription(__u('Users deleted')) + ->setExtra('userId', $this->getItemsIdFromRequest($this->request))) ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Users deleted')); @@ -290,7 +293,8 @@ final class UserController extends ControllerBase implements CrudControllerInter $this->eventDispatcher->notifyEvent('delete.user', new Event($this, EventMessage::factory() ->addDescription(__u('User deleted')) - ->addDetail(__u('User'), $id)) + ->addDetail(__u('User'), $id) + ->addExtra('userId', $id)) ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('User deleted')); @@ -395,7 +399,8 @@ final class UserController extends ControllerBase implements CrudControllerInter $this->eventDispatcher->notifyEvent('edit.user', new Event($this, EventMessage::factory() ->addDescription(__u('User updated')) - ->addDetail(__u('User'), $itemData->getName())) + ->addDetail(__u('User'), $itemData->getName()) + ->addExtra('userId', $id)) ); $this->checkChangeUserPass($id, $itemData); diff --git a/app/modules/web/Controllers/UserGroupController.php b/app/modules/web/Controllers/UserGroupController.php index 7656c74b..aea5b443 100644 --- a/app/modules/web/Controllers/UserGroupController.php +++ b/app/modules/web/Controllers/UserGroupController.php @@ -239,7 +239,8 @@ final class UserGroupController extends ControllerBase implements CrudController $this->eventDispatcher->notifyEvent('delete.userGroup', new Event($this, EventMessage::factory() ->addDescription(__u('Group deleted')) - ->addDetail(__u('Group'), $id)) + ->addDetail(__u('Group'), $id) + ->addExtra('userGroupId', $id)) ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Group deleted')); @@ -320,7 +321,8 @@ final class UserGroupController extends ControllerBase implements CrudController $this->eventDispatcher->notifyEvent('edit.userGroup', new Event($this, EventMessage::factory() ->addDescription(__u('Group updated')) - ->addDetail(__u('Name'), $groupData->getName())) + ->addDetail(__u('Name'), $groupData->getName()) + ->addExtra('userGroupId', $id)) ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Group updated')); diff --git a/app/modules/web/Controllers/UserProfileController.php b/app/modules/web/Controllers/UserProfileController.php index 3f99151b..628d85c6 100644 --- a/app/modules/web/Controllers/UserProfileController.php +++ b/app/modules/web/Controllers/UserProfileController.php @@ -229,7 +229,8 @@ final class UserProfileController extends ControllerBase implements CrudControll $this->eventDispatcher->notifyEvent('delete.userProfile', new Event($this, EventMessage::factory() ->addDescription(__u('Profile deleted')) - ->addDetail(__u('Profile'), $id)) + ->addDetail(__u('Profile'), $id) + ->addExtra('userProfileId', $id)) ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Profile deleted')); @@ -265,6 +266,12 @@ final class UserProfileController extends ControllerBase implements CrudControll $this->eventDispatcher->notifyEvent('create.userProfile', new Event($this)); + $this->eventDispatcher->notifyEvent('create.userProfile', + new Event($this, EventMessage::factory() + ->addDescription(__u('Profile added')) + ->addDetail(__u('Name'), $profileData->getName())) + ); + return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Profile added')); } catch (ValidationException $e) { return $this->returnJsonResponseException($e); @@ -299,11 +306,15 @@ final class UserProfileController extends ControllerBase implements CrudControll $profileData = $form->getItemData(); $this->userProfileService->update($profileData); -// $this->userProfileService->logAction($id, Acl::PROFILE_EDIT); $this->updateCustomFieldsForItem(Acl::PROFILE, $id, $this->request); - $this->eventDispatcher->notifyEvent('edit.userProfile', new Event($this)); + $this->eventDispatcher->notifyEvent('edit.userProfile', + new Event($this, EventMessage::factory() + ->addDescription(__u('Profile updated')) + ->addDetail(__u('Name'), $profileData->getName()) + ->addExtra('userProfileId', $id)) + ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Profile updated')); } catch (ValidationException $e) { diff --git a/app/modules/web/themes/material-blue/css/styles.css b/app/modules/web/themes/material-blue/css/styles.css index b59f8899..638ae746 100644 --- a/app/modules/web/themes/material-blue/css/styles.css +++ b/app/modules/web/themes/material-blue/css/styles.css @@ -297,6 +297,23 @@ body.userpassreset { width: 100%; color: #607d8b; font-size: 12px; } + #content td.valField .notification-description, #box-popup td.valField .notification-description { + font-size: 16px; + max-width: 100%; } + #content td.valField .notification-description .event-description, #content td.valField .notification-description .event-details, #box-popup td.valField .notification-description .event-description, #box-popup td.valField .notification-description .event-details { + padding: .5em 0; } + #content td.valField .notification-description .event-description, #box-popup td.valField .notification-description .event-description { + color: #5c6bc0; + border-bottom: 1px solid #e9e9e9; } + #content td.valField .notification-description .event-details .detail, #box-popup td.valField .notification-description .event-details .detail { + display: flex; + padding: .2em 0; } + #content td.valField .notification-description .event-details .detail .detail-left, #box-popup td.valField .notification-description .event-details .detail .detail-left { + flex: none; + width: 8em; + font-weight: bold; } + #content td.valField .notification-description .event-details .detail .detail-right, #box-popup td.valField .notification-description .event-details .detail .detail-right { + flex-grow: 1; } #content .pager { width: 100%; diff --git a/app/modules/web/themes/material-blue/css/styles.css.map b/app/modules/web/themes/material-blue/css/styles.css.map index 2f571c96..4bf32817 100644 --- a/app/modules/web/themes/material-blue/css/styles.css.map +++ b/app/modules/web/themes/material-blue/css/styles.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "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", "sources": ["_elements.scss","_base.scss","_noheader.scss","styles.scss","_login.scss"], "names": [], "file": "styles.css" diff --git a/app/modules/web/themes/material-blue/css/styles.min.css b/app/modules/web/themes/material-blue/css/styles.min.css index 982635b5..9235bc48 100644 --- a/app/modules/web/themes/material-blue/css/styles.min.css +++ b/app/modules/web/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;max-width:100%}*{font-family:"Roboto Regular",Verdana,Tahoma,sans-serif;box-sizing:inherit}*: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{height:20px}table tr.odd{background-color:#f9f9f9}table tr.even>td,table tr.odd>td{border-bottom:1px solid #d9d9d9 !important}table tr.even:hover,table tr.odd:hover{background-color:#e8ff99}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}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}form .form-field{display:flex;justify-content:space-between}form .form-field>label{min-width:12em;padding:.5em 0;font-size:16px;align-self:center}form .form-field>div{width:100%;align-self:center}a{text-decoration:none;color:#536dfe}a:visited{text-decoration:none;color:#536dfe}a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}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}body.login,body.logout,body.userpassreset{background:#607d8b}body.login #wrap,body.logout #wrap,body.userpassreset #wrap{background:transparent}body.login #container,body.logout #container,body.userpassreset #container{padding-top:5%}body.login footer,body.logout footer,body.userpassreset footer{background:#78909c}body.login footer a,body.logout footer a,body.userpassreset footer a{color:#f2f2f2}#box-pub-noheader{background:transparent url("public/images/logo_full_nobg_outline.png") no-repeat top center;background-size:75% auto;width:40em;min-height:20em;margin:0 auto}#box-pub-noheader>div{width:100%;padding:1em;margin:0 auto}#box-pub-noheader .box-spacer{height:15em;background-color:transparent}#box-pub-noheader .box-header{width:100%;color:#f2f2f2;font-size:16px;font-weight:bold;text-align:center;margin:1em 0;letter-spacing:.1em;padding:.2em 0}#box-pub-noheader .box-form{-moz-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);background-color:#f2f2f2}#box-pub-noheader .box-form form fieldset#box-data{height:100%;min-height:14em;text-align:left;background-color:transparent;margin-bottom:2em}#box-pub-noheader .box-form form fieldset#box-data legend{width:100%;color:#607d8b;font-size:14px;font-weight:bold;text-align:center;margin:1em 0;letter-spacing:.1em;padding:.2em 0}#box-pub-noheader .box-form form fieldset#box-data .form-control>i{margin-right:.5em;opacity:.5}#box-pub-noheader .box-form form fieldset#box-data .extra-hidden{display:none}#box-pub-noheader .box-form div#box-buttons{margin-top:2em;text-align:center}@media screen and (max-width:600px){#box-pub-noheader{width:25em}#box-pub-noheader .box-spacer{height:10em}#box-pub-noheader form fieldset#box-data .mdl-textfield{width:100%}}#nojs{width:80%;text-align:center;vertical-align:middle;margin:10px auto;padding:3px;background-color:#ef5350;color:white;font-weight:bold;font-size:14px}#wrap{height:auto !important;min-height:100%;width:100%;background-color:#f5f5f5;padding-bottom:5em}#wrap-loading{position:fixed;z-index:9999;top:50%;left:50%;padding:1em;background-color:rgba(255,255,255,0.8);display:none;border-radius:5px !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important}#wrap-loading.overlay-full{top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.5)}#wrap-loading.overlay-full #loading{position:absolute;top:50%;left:50%}#wrap-loading.overlay-full #taskStatus{display:none}#wrap-loading #taskStatus{display:none;position:absolute;left:0;top:55%;width:100%;text-align:center;color:white;background-color:rgba(0,0,0,0.5);padding:1em 0}#container{margin:auto;width:100%}#container.error,#container.install{width:100%}#container .logo{height:64px}#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:2em auto 8em auto}#container #content.public-link{width:70%;min-height:0;margin:5em auto}#content td.descField,#box-popup td.descField{text-align:right;padding-right:20px;width:25%;border-right:1px solid #d9d9d9;color:#999;font-size:12px;font-weight:bold}#content td.valField,#box-popup td.valField{padding-left:1em;width:100%}#content td.valField .lowres-title,#box-popup td.valField .lowres-title{display:none;width:100%;color:#607d8b;font-size:12px}#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:100%;padding:7px;background-color:#d9d9d9;color:#fff;font-size:17px;letter-spacing:.2em}#content #title.titleNormal{background-color:#607d8b;color:#fff}#content .data-container{width:75%;margin:0 auto}#content fieldset.data{margin:2em auto}#content fieldset.data>legend{color:#607d8b;padding:0 .5em;font-size:1.5em}#content fieldset.data>div{display:none}#content fieldset.data>div table{width:100%}#content .data{width:100%;padding:10px;margin:0 auto;background-color:#fff;-webkit-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);-moz-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);box-shadow:1px 1px 2px rgba(0,0,0,0.14)}#content .data #history-icon{position:relative;top:5em;right:2em}#content .data td{text-align:left}#content .data td.descField{text-align:right}#content .data select{min-width:210px}#content .data .list-wrap{max-height:10em;overflow:auto;padding:.5em;margin:1em 0}#content .data .dropzone{width:100%;padding:1em;border:2px dashed #26a69a;text-align:center;opacity:.3}#content .data .dropzone:hover{opacity:1}#content .data .dropzone img{vertical-align:middle}#content .data .file-upload{display:none}#content .data .account-permissions{width:100%}#content .extra-info{margin-top:20px}#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:#fff8e1;color:#ffca28;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:#5c6bc0}#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-flow:row;flex-wrap:wrap;align-content:flex-start;justify-content:space-around;margin:0}#content .data-header-minimal li{min-width:10em;font-weight:normal;letter-spacing:normal}#content .data-header-minimal li a{color:#b9b9b9;padding:.3em .8em}#content .data-header-minimal li.search-filter-spacer{flex:0 0 18em}#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:0 .5em;text-align:left}#content .data-table tbody td.cell-actions{text-align:right}#content .data-table tbody td.cell-actions i{opacity:.5}#content .data-table tbody td.cell-actions i:hover{opacity:1}#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{width:24px;height:24px;margin:0 .5em}#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;vertical-align:middle;position:relative;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:2}#content .btn-clear{opacity:.35;filter:alpha(opacity=35)}#content .btn-clear:hover{opacity:1;filter:alpha(opacity=100)}#content .actions-optional{display:none}#content .error{width:350px;padding:15px;margin:0 auto;text-align:center;font-size:16px;line-height:1.5em;color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28}#content .data .user-list-action,#content .data .profile-list-action,#box-popup .user-list-action,#box-popup .profile-list-action{width:75%;margin:0 auto}#content .data .list-wrap,#box-popup .list-wrap{max-height:20em;overflow:auto;padding:.5em;margin:1em 0}#content .data .list-wrap ul,#box-popup .list-wrap ul{list-style-type:none;margin:0;padding:0}#content .data .list-wrap li,#box-popup .list-wrap li{display:flex;background:#f2f2f2;padding:.5em;font-size:1em;margin-bottom:.5em}#content .data .list-wrap li:hover,#box-popup .list-wrap li:hover{background:#e8eaf6;color:#000}#content .data .list-wrap div.files-item-info,#box-popup .list-wrap div.files-item-info{flex-grow:2}#content .data .list-wrap div.files-item-info img,#box-popup .list-wrap div.files-item-info img{margin:0 .5em}#content .data .list-wrap div.files-item-actions,#box-popup .list-wrap div.files-item-actions{padding:.3em 0}#content .data .list-actions i,#box-popup .list-actions i{opacity:.5}#content .data .list-actions i:hover,#box-popup .list-actions i:hover{opacity:1}#box-popup{width:-webkit-min-content;width:-moz-min-content;width:min-content;min-width:50em;margin:5em auto;padding:0;background-color:#fff}#box-popup.box-password-view{width:-webkit-min-content;width:-moz-min-content;width:min-content;min-width:30em}#box-popup>h2{position:relative;width:100%;font-size:18px;color:#fff;background-color:#607d8b;margin:0;padding:.5em 0;line-height:1em}#box-popup>h2 .btn-popup-close{display:none;position:absolute;right:.5em;top:.2em}#box-popup>table{width:100%;padding-bottom:1em}#box-popup select{width:220px}#box-popup #resFancyAccion{display:none}#box-popup #resCheck{display:inline-block;width:80%;height:4em;padding:1em 0}#box-popup.image{background-color:transparent;max-width:100%;margin:0 auto;border-radius:0 !important;-moz-border-radius:0 !important;-webkit-border-radius:0 !important}#box-popup.image img{width:auto;margin:0 auto}#box-popup.image>div.title{background-color:#607d8b;color:#fff;padding:.5em}#box-popup.help{min-height:100px;background-color:#f5f5f5}#box-popup.help p{font-size:14px;text-align:justify;line-height:2em}#box-complexity>div{text-align:justify;line-height:1.5em;margin-top:1em}#box-upload-files>*{margin:0 auto}#debug{float:left;text-align:left}#debuginfo{width:100%;min-height:10em;padding:1em;background-color:#fff8e1;text-align:left;line-height:1.5em}#debuginfo H3{text-align:center}.popup-data{width:100%;min-width:400px;border:0;text-align:left;margin:0;padding:1em .5em}.popup-data .descField{min-width:100px}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;-webkit-box-shadow:0 -3px 2px -2px rgba(0,0,0,0.14);-moz-box-shadow:0 -3px 2px -2px rgba(0,0,0,0.14);box-shadow:0 -3px 2px -2px rgba(0,0,0,0.14)}footer .footer-parts{display:flex;justify-content:space-between}footer #footer-left{width:50%;margin:0 1em}footer #footer-right{width:50%;margin:0 1em;justify-content:flex-end;text-align:right}footer #updates,footer #notices{min-width:5em;text-align:center;cursor:pointer}footer #notices .notices-title{font-weight:bold;border-bottom:1px solid #c9c9c9;margin-bottom:1em}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{color:#b9b9b9}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,.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}.hide{display:none !important}.btn-checks{padding:5px;margin:.2em 0;width:30em;border-bottom:1px solid #c9c9c9}.shadow{-webkit-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);-moz-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);box-shadow:1px 1px 2px rgba(0,0,0,0.14)}.noRes{width:60%;padding:15px;background-color:#f9f9f9;color:#a9a9a9;border:#c9c9c9 1px solid;margin:20px auto;text-align:center;font-size:16px}.header-grey{background-color:#607d8b;color:#fff;min-height:2em}.no-background{background:none !important}.action-in-box{padding:1em;text-align:right}.action-in-box ul{list-style:none;margin:0;padding:0}.tab-data{margin:2em auto 0;width:75%}.item-actions{display:flex;justify-content:flex-end;position:relative;margin:1em auto}.item-actions>div{display:inline-block}.tab-actions{margin:2em 0}.item-actions>ul,.tab-actions>ul{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;list-style:none;margin:0;padding:0}.item-actions>ul>li,.tab-actions>ul>li{width:auto;min-width:2em;margin-left:.5em}.item-actions>ul>li.datagrid-action-search,.tab-actions>ul>li.datagrid-action-search{min-width:5em}.item-actions>ul>li.datagrid-action-search form,.tab-actions>ul>li.datagrid-action-search form{width:100%}h5.datagrid-header-title{padding:.7em;border-bottom:1px solid #d9d9d9}.fullWidth{max-width:100% !important}.filter-on{color:#26a69a;background-color:#e0f2f1;border:1px solid #26a69a;padding:.3em 1em}.global-on{color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28;padding:.3em 1em}.opacity50{filter:alpha(opacity=50);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}.password-level.strongest{color:#26a69a}.password-level.strong{color:#2196f3}.password-level.good{color:#ffca28}.password-level.weak{color:#ef5350}#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-text,.dialog-user-text,.dialog-pass-text{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;padding:.5em;text-align:center;min-width:200px}.dialog-user-text{border-bottom:#d9d9d9 1px solid;color:#a9a9a9}.dialog-pass-text{border:transparent 1px solid;letter-spacing:.2em}.dialog-button{width:150px}.dialog-buttons{text-align:center;padding:.5em;border-top:1px solid #c9c9c9;line-height:2.5em}.dialog-clip-copy{color:#26a69a;background-color:#e0f2f1}.btn-help{cursor:pointer}.help-box{display:none;background-color:#fff !important;color:#607d8b}.help-box>*{font-weight:bold}.help-container ul{padding:0 .5em;list-style:none}.help-container ul li{padding:.5em 0}.help-container .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}.tooltip-text{padding:.5em}.tooltip-text .tooltip-header{text-transform:capitalize;font-weight:bold;border-bottom:1px solid #c9c9c9}.cursor-pointer{cursor:pointer}.password-actions{display:inline-block;width:12em}.password-actions>span,.password-actions i{margin-right:.6em}.form-control{position:relative}.form-control .password-actions{position:absolute;right:0;padding:20px}.custom-input-color{width:3em;height:1em;display:inline-block}.account-pass-image{height:32px;width:auto}.select-box{min-width:300px;max-width:100%}fieldset.warning{padding:8px;border-radius:5px;color:#ef5350;background-color:#ffebee;border:1px solid #ef5350}fieldset.warning legend{color:#ef5350 !important}fieldset.warning a{color:#ef5350 !important;font-weight:bold}#actions{width:100%;line-height:2em;margin-bottom:5em}#actions #logo{display:flex;width:100%;margin-bottom:30px;color:#607d8b;align-items:center;background:url("public/images/logo_full_bg.png") left no-repeat;background-size:auto 150px;height:150px}#actions #page-title{width:100%;color:#607d8b;text-align:center}#actions #page-title h1{font-weight:bold;font-size:24px;letter-spacing:3px}#actions ul.errors{max-width:40vw;margin:0 auto;list-style:none;font-size:14px;text-align:left}#actions ul.errors>li{margin:1.5em auto;border-radius:3px;padding:1em .5em}#actions ul.errors>li.msg-critical{color:#ef5350;background-color:#ffebee;border:1px solid #ef5350}#actions ul.errors>li.msg-warning{color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28;color:#555}#actions ul.errors>li.msg-ok{color:#26a69a;background-color:#e0f2f1;border:1px solid #26a69a}#actions ul.errors>li>p.hint{color:#555;font-size:12px}#actions ul.errors>li>p.hint i{margin-right:.5em}#actions form{width:450px;margin:0 auto;text-align:left}#actions form fieldset{margin-bottom:2em}#actions form fieldset legend{width:100%;color:#fff;font-size:14px;font-weight:bold;text-align:center;background-color:#607d8b;margin:1em 0;letter-spacing:.2em;padding:.2em 0}#actions div.buttons{margin-top:2em;text-align:center}.center{text-align:center !important}.right{text-align:right !important}.left{text-align:left !important}.opacity50{opacity:.5 !important}.msg-option-unvailable{color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28;border:0;padding:.5em;text-align:center;margin:1em 0;font-size:1.5em}div.tag-list-box{margin-bottom:1em}div.tag-list-box .tag-list-header{text-align:left;border-bottom:1px solid #d9d9d9;color:#607d8b;font-size:12px;font-weight:bold;margin-bottom:.5em}div.tag-list-box .tag-list-body .tags-list-items{display:inline-block;padding:.5em;width:95%;height:3em;border-bottom:1px solid rgba(0,0,0,0.12);border-radius:3px !important;-moz-border-radius:3px !important;-webkit-border-radius:3px !important}div.tag-list-box i.select-icon{margin-right:.5em;color:#607d8b;font-size:18px}div.tag-list-box span.tag,div.tags-box span.tag{margin:0 3px 3px 0;padding:3px;background:#5c6bc0;color:#fff;border:0;border-radius:3px !important;-moz-border-radius:3px !important;-webkit-border-radius:3px !important}#box-pub-noheader #box-login{position:relative;min-height:14em}#box-pub-noheader #box-login #box-buttons{position:absolute;top:2em;right:2em}#box-pub-noheader #box-login #box-actions{width:100%;text-align:right}#box-pub-noheader #box-login #box-actions a{color:#c9c9c9}#box-pub-noheader #box-updated{width:350px;margin:3em auto;font-size:14px;text-align:center;padding:.5em;color:#26a69a;background-color:#e0f2f1;border:1px solid #26a69a}#box-pub-noheader #demo-info{padding:.5em;margin:3em auto 0 auto;color:#c9c9c9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9}#box-pub-noheader #demo-info ul{display:flex;justify-content:space-around;list-style:none}#box-pub-noheader #demo-info ul li>span{padding:0 1em}@media screen and (max-width:600px){#box-pub-noheader #box-login #box-buttons{position:relative;top:0;right:0;text-align:right}#box-pub-noheader #box-login #box-actions{margin-top:1em}#box-pub-noheader #demo-info ul{display:flex;flex-direction:column;align-items:center;list-style:none}#box-pub-noheader #demo-info ul li{width:11em;text-align:left}#box-pub-noheader #demo-info ul li>span{padding:0 1em}}@media screen and (max-width:1000px){#content #searchbox .search-filters>*{margin:.5em 1em .5em 0}footer{display:none;justify-content:space-between;flex-wrap:wrap}footer .footer-parts{justify-content:space-between;flex-wrap:wrap}footer #footer-left,footer #footer-right{width:100%}footer .footer-parts>div{width:100%;padding:.5em 0}}@media screen and (max-width:600px){#content input,#box-popup input{width:100%}#content .mdl-textfield,#box-popup .mdl-textfield{width:100%}#content td.descField,#box-popup td.descField{display:none}#content td.valField .lowres-title,#box-popup td.valField .lowres-title{display:block}#content #searchbox .mdl-textfield{width:90%}#content #searchbox .search-text{width:90%}#content #searchbox .search-filters .selectize-control{width:100%}#content .data-header-minimal li.search-filter-spacer{display:none}#content .data-container,#content .tab-data{width:100%}#content .data-container .selectize-control,#content .tab-data .selectize-control{width:100%}#content .mdl-tabs__tab-bar{flex-wrap:wrap;height:auto}#box-popup h2>.btn-popup-close{display:inline-block}#actions ul.errors{max-width:90vw}.mdl-data-table{table-layout:fixed;width:100%}.table-responsive td,.table-responsive th{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.table-responsive .cell-actions i{display:block !important}} \ 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;max-width:100%}*{font-family:"Roboto Regular",Verdana,Tahoma,sans-serif;box-sizing:inherit}*: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{height:20px}table tr.odd{background-color:#f9f9f9}table tr.even>td,table tr.odd>td{border-bottom:1px solid #d9d9d9 !important}table tr.even:hover,table tr.odd:hover{background-color:#e8ff99}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}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}form .form-field{display:flex;justify-content:space-between}form .form-field>label{min-width:12em;padding:.5em 0;font-size:16px;align-self:center}form .form-field>div{width:100%;align-self:center}a{text-decoration:none;color:#536dfe}a:visited{text-decoration:none;color:#536dfe}a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}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}body.login,body.logout,body.userpassreset{background:#607d8b}body.login #wrap,body.logout #wrap,body.userpassreset #wrap{background:transparent}body.login #container,body.logout #container,body.userpassreset #container{padding-top:5%}body.login footer,body.logout footer,body.userpassreset footer{background:#78909c}body.login footer a,body.logout footer a,body.userpassreset footer a{color:#f2f2f2}#box-pub-noheader{background:transparent url("public/images/logo_full_nobg_outline.png") no-repeat top center;background-size:75% auto;width:40em;min-height:20em;margin:0 auto}#box-pub-noheader>div{width:100%;padding:1em;margin:0 auto}#box-pub-noheader .box-spacer{height:15em;background-color:transparent}#box-pub-noheader .box-header{width:100%;color:#f2f2f2;font-size:16px;font-weight:bold;text-align:center;margin:1em 0;letter-spacing:.1em;padding:.2em 0}#box-pub-noheader .box-form{-moz-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);background-color:#f2f2f2}#box-pub-noheader .box-form form fieldset#box-data{height:100%;min-height:14em;text-align:left;background-color:transparent;margin-bottom:2em}#box-pub-noheader .box-form form fieldset#box-data legend{width:100%;color:#607d8b;font-size:14px;font-weight:bold;text-align:center;margin:1em 0;letter-spacing:.1em;padding:.2em 0}#box-pub-noheader .box-form form fieldset#box-data .form-control>i{margin-right:.5em;opacity:.5}#box-pub-noheader .box-form form fieldset#box-data .extra-hidden{display:none}#box-pub-noheader .box-form div#box-buttons{margin-top:2em;text-align:center}@media screen and (max-width:600px){#box-pub-noheader{width:25em}#box-pub-noheader .box-spacer{height:10em}#box-pub-noheader form fieldset#box-data .mdl-textfield{width:100%}}#nojs{width:80%;text-align:center;vertical-align:middle;margin:10px auto;padding:3px;background-color:#ef5350;color:white;font-weight:bold;font-size:14px}#wrap{height:auto !important;min-height:100%;width:100%;background-color:#f5f5f5;padding-bottom:5em}#wrap-loading{position:fixed;z-index:9999;top:50%;left:50%;padding:1em;background-color:rgba(255,255,255,0.8);display:none;border-radius:5px !important;-moz-border-radius:5px !important;-webkit-border-radius:5px !important}#wrap-loading.overlay-full{top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.5)}#wrap-loading.overlay-full #loading{position:absolute;top:50%;left:50%}#wrap-loading.overlay-full #taskStatus{display:none}#wrap-loading #taskStatus{display:none;position:absolute;left:0;top:55%;width:100%;text-align:center;color:white;background-color:rgba(0,0,0,0.5);padding:1em 0}#container{margin:auto;width:100%}#container.error,#container.install{width:100%}#container .logo{height:64px}#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:2em auto 8em auto}#container #content.public-link{width:70%;min-height:0;margin:5em auto}#content td.descField,#box-popup td.descField{text-align:right;padding-right:20px;width:25%;border-right:1px solid #d9d9d9;color:#999;font-size:12px;font-weight:bold}#content td.valField,#box-popup td.valField{padding-left:1em;width:100%}#content td.valField .lowres-title,#box-popup td.valField .lowres-title{display:none;width:100%;color:#607d8b;font-size:12px}#content td.valField .notification-description,#box-popup td.valField .notification-description{font-size:16px;max-width:100%}#content td.valField .notification-description .event-description,#content td.valField .notification-description .event-details,#box-popup td.valField .notification-description .event-description,#box-popup td.valField .notification-description .event-details{padding:.5em 0}#content td.valField .notification-description .event-description,#box-popup td.valField .notification-description .event-description{color:#5c6bc0;border-bottom:1px solid #e9e9e9}#content td.valField .notification-description .event-details .detail,#box-popup td.valField .notification-description .event-details .detail{display:flex;padding:.2em 0}#content td.valField .notification-description .event-details .detail .detail-left,#box-popup td.valField .notification-description .event-details .detail .detail-left{flex:none;width:8em;font-weight:bold}#content td.valField .notification-description .event-details .detail .detail-right,#box-popup td.valField .notification-description .event-details .detail .detail-right{flex-grow:1}#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:100%;padding:7px;background-color:#d9d9d9;color:#fff;font-size:17px;letter-spacing:.2em}#content #title.titleNormal{background-color:#607d8b;color:#fff}#content .data-container{width:75%;margin:0 auto}#content fieldset.data{margin:2em auto}#content fieldset.data>legend{color:#607d8b;padding:0 .5em;font-size:1.5em}#content fieldset.data>div{display:none}#content fieldset.data>div table{width:100%}#content .data{width:100%;padding:10px;margin:0 auto;background-color:#fff;-webkit-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);-moz-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);box-shadow:1px 1px 2px rgba(0,0,0,0.14)}#content .data #history-icon{position:relative;top:5em;right:2em}#content .data td{text-align:left}#content .data td.descField{text-align:right}#content .data select{min-width:210px}#content .data .list-wrap{max-height:10em;overflow:auto;padding:.5em;margin:1em 0}#content .data .dropzone{width:100%;padding:1em;border:2px dashed #26a69a;text-align:center;opacity:.3}#content .data .dropzone:hover{opacity:1}#content .data .dropzone img{vertical-align:middle}#content .data .file-upload{display:none}#content .data .account-permissions{width:100%}#content .extra-info{margin-top:20px}#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:#fff8e1;color:#ffca28;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:#5c6bc0}#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-flow:row;flex-wrap:wrap;align-content:flex-start;justify-content:space-around;margin:0}#content .data-header-minimal li{min-width:10em;font-weight:normal;letter-spacing:normal}#content .data-header-minimal li a{color:#b9b9b9;padding:.3em .8em}#content .data-header-minimal li.search-filter-spacer{flex:0 0 18em}#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:0 .5em;text-align:left}#content .data-table tbody td.cell-actions{text-align:right}#content .data-table tbody td.cell-actions i{opacity:.5}#content .data-table tbody td.cell-actions i:hover{opacity:1}#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{width:24px;height:24px;margin:0 .5em}#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;vertical-align:middle;position:relative;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:2}#content .btn-clear{opacity:.35;filter:alpha(opacity=35)}#content .btn-clear:hover{opacity:1;filter:alpha(opacity=100)}#content .actions-optional{display:none}#content .error{width:350px;padding:15px;margin:0 auto;text-align:center;font-size:16px;line-height:1.5em;color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28}#content .data .user-list-action,#content .data .profile-list-action,#box-popup .user-list-action,#box-popup .profile-list-action{width:75%;margin:0 auto}#content .data .list-wrap,#box-popup .list-wrap{max-height:20em;overflow:auto;padding:.5em;margin:1em 0}#content .data .list-wrap ul,#box-popup .list-wrap ul{list-style-type:none;margin:0;padding:0}#content .data .list-wrap li,#box-popup .list-wrap li{display:flex;background:#f2f2f2;padding:.5em;font-size:1em;margin-bottom:.5em}#content .data .list-wrap li:hover,#box-popup .list-wrap li:hover{background:#e8eaf6;color:#000}#content .data .list-wrap div.files-item-info,#box-popup .list-wrap div.files-item-info{flex-grow:2}#content .data .list-wrap div.files-item-info img,#box-popup .list-wrap div.files-item-info img{margin:0 .5em}#content .data .list-wrap div.files-item-actions,#box-popup .list-wrap div.files-item-actions{padding:.3em 0}#content .data .list-actions i,#box-popup .list-actions i{opacity:.5}#content .data .list-actions i:hover,#box-popup .list-actions i:hover{opacity:1}#box-popup{width:-webkit-min-content;width:-moz-min-content;width:min-content;min-width:50em;margin:5em auto;padding:0;background-color:#fff}#box-popup.box-password-view{width:-webkit-min-content;width:-moz-min-content;width:min-content;min-width:30em}#box-popup>h2{position:relative;width:100%;font-size:18px;color:#fff;background-color:#607d8b;margin:0;padding:.5em 0;line-height:1em}#box-popup>h2 .btn-popup-close{display:none;position:absolute;right:.5em;top:.2em}#box-popup>table{width:100%;padding-bottom:1em}#box-popup select{width:220px}#box-popup #resFancyAccion{display:none}#box-popup #resCheck{display:inline-block;width:80%;height:4em;padding:1em 0}#box-popup.image{background-color:transparent;max-width:100%;margin:0 auto;border-radius:0 !important;-moz-border-radius:0 !important;-webkit-border-radius:0 !important}#box-popup.image img{width:auto;margin:0 auto}#box-popup.image>div.title{background-color:#607d8b;color:#fff;padding:.5em}#box-popup.help{min-height:100px;background-color:#f5f5f5}#box-popup.help p{font-size:14px;text-align:justify;line-height:2em}#box-complexity>div{text-align:justify;line-height:1.5em;margin-top:1em}#box-upload-files>*{margin:0 auto}#debug{float:left;text-align:left}#debuginfo{width:100%;min-height:10em;padding:1em;background-color:#fff8e1;text-align:left;line-height:1.5em}#debuginfo H3{text-align:center}.popup-data{width:100%;min-width:400px;border:0;text-align:left;margin:0;padding:1em .5em}.popup-data .descField{min-width:100px}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;-webkit-box-shadow:0 -3px 2px -2px rgba(0,0,0,0.14);-moz-box-shadow:0 -3px 2px -2px rgba(0,0,0,0.14);box-shadow:0 -3px 2px -2px rgba(0,0,0,0.14)}footer .footer-parts{display:flex;justify-content:space-between}footer #footer-left{width:50%;margin:0 1em}footer #footer-right{width:50%;margin:0 1em;justify-content:flex-end;text-align:right}footer #updates,footer #notices{min-width:5em;text-align:center;cursor:pointer}footer #notices .notices-title{font-weight:bold;border-bottom:1px solid #c9c9c9;margin-bottom:1em}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{color:#b9b9b9}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,.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}.hide{display:none !important}.btn-checks{padding:5px;margin:.2em 0;width:30em;border-bottom:1px solid #c9c9c9}.shadow{-webkit-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);-moz-box-shadow:2px 2px 3px -3px rgba(0,0,0,0.14);box-shadow:1px 1px 2px rgba(0,0,0,0.14)}.noRes{width:60%;padding:15px;background-color:#f9f9f9;color:#a9a9a9;border:#c9c9c9 1px solid;margin:20px auto;text-align:center;font-size:16px}.header-grey{background-color:#607d8b;color:#fff;min-height:2em}.no-background{background:none !important}.action-in-box{padding:1em;text-align:right}.action-in-box ul{list-style:none;margin:0;padding:0}.tab-data{margin:2em auto 0;width:75%}.item-actions{display:flex;justify-content:flex-end;position:relative;margin:1em auto}.item-actions>div{display:inline-block}.tab-actions{margin:2em 0}.item-actions>ul,.tab-actions>ul{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;list-style:none;margin:0;padding:0}.item-actions>ul>li,.tab-actions>ul>li{width:auto;min-width:2em;margin-left:.5em}.item-actions>ul>li.datagrid-action-search,.tab-actions>ul>li.datagrid-action-search{min-width:5em}.item-actions>ul>li.datagrid-action-search form,.tab-actions>ul>li.datagrid-action-search form{width:100%}h5.datagrid-header-title{padding:.7em;border-bottom:1px solid #d9d9d9}.fullWidth{max-width:100% !important}.filter-on{color:#26a69a;background-color:#e0f2f1;border:1px solid #26a69a;padding:.3em 1em}.global-on{color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28;padding:.3em 1em}.opacity50{filter:alpha(opacity=50);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}.password-level.strongest{color:#26a69a}.password-level.strong{color:#2196f3}.password-level.good{color:#ffca28}.password-level.weak{color:#ef5350}#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-text,.dialog-user-text,.dialog-pass-text{font-family:Consolas,"Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;padding:.5em;text-align:center;min-width:200px}.dialog-user-text{border-bottom:#d9d9d9 1px solid;color:#a9a9a9}.dialog-pass-text{border:transparent 1px solid;letter-spacing:.2em}.dialog-button{width:150px}.dialog-buttons{text-align:center;padding:.5em;border-top:1px solid #c9c9c9;line-height:2.5em}.dialog-clip-copy{color:#26a69a;background-color:#e0f2f1}.btn-help{cursor:pointer}.help-box{display:none;background-color:#fff !important;color:#607d8b}.help-box>*{font-weight:bold}.help-container ul{padding:0 .5em;list-style:none}.help-container ul li{padding:.5em 0}.help-container .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}.tooltip-text{padding:.5em}.tooltip-text .tooltip-header{text-transform:capitalize;font-weight:bold;border-bottom:1px solid #c9c9c9}.cursor-pointer{cursor:pointer}.password-actions{display:inline-block;width:12em}.password-actions>span,.password-actions i{margin-right:.6em}.form-control{position:relative}.form-control .password-actions{position:absolute;right:0;padding:20px}.custom-input-color{width:3em;height:1em;display:inline-block}.account-pass-image{height:32px;width:auto}.select-box{min-width:300px;max-width:100%}fieldset.warning{padding:8px;border-radius:5px;color:#ef5350;background-color:#ffebee;border:1px solid #ef5350}fieldset.warning legend{color:#ef5350 !important}fieldset.warning a{color:#ef5350 !important;font-weight:bold}#actions{width:100%;line-height:2em;margin-bottom:5em}#actions #logo{display:flex;width:100%;margin-bottom:30px;color:#607d8b;align-items:center;background:url("public/images/logo_full_bg.png") left no-repeat;background-size:auto 150px;height:150px}#actions #page-title{width:100%;color:#607d8b;text-align:center}#actions #page-title h1{font-weight:bold;font-size:24px;letter-spacing:3px}#actions ul.errors{max-width:40vw;margin:0 auto;list-style:none;font-size:14px;text-align:left}#actions ul.errors>li{margin:1.5em auto;border-radius:3px;padding:1em .5em}#actions ul.errors>li.msg-critical{color:#ef5350;background-color:#ffebee;border:1px solid #ef5350}#actions ul.errors>li.msg-warning{color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28;color:#555}#actions ul.errors>li.msg-ok{color:#26a69a;background-color:#e0f2f1;border:1px solid #26a69a}#actions ul.errors>li>p.hint{color:#555;font-size:12px}#actions ul.errors>li>p.hint i{margin-right:.5em}#actions form{width:450px;margin:0 auto;text-align:left}#actions form fieldset{margin-bottom:2em}#actions form fieldset legend{width:100%;color:#fff;font-size:14px;font-weight:bold;text-align:center;background-color:#607d8b;margin:1em 0;letter-spacing:.2em;padding:.2em 0}#actions div.buttons{margin-top:2em;text-align:center}.center{text-align:center !important}.right{text-align:right !important}.left{text-align:left !important}.opacity50{opacity:.5 !important}.msg-option-unvailable{color:#ffca28;background-color:#fff8e1;border:1px solid #ffca28;border:0;padding:.5em;text-align:center;margin:1em 0;font-size:1.5em}div.tag-list-box{margin-bottom:1em}div.tag-list-box .tag-list-header{text-align:left;border-bottom:1px solid #d9d9d9;color:#607d8b;font-size:12px;font-weight:bold;margin-bottom:.5em}div.tag-list-box .tag-list-body .tags-list-items{display:inline-block;padding:.5em;width:95%;height:3em;border-bottom:1px solid rgba(0,0,0,0.12);border-radius:3px !important;-moz-border-radius:3px !important;-webkit-border-radius:3px !important}div.tag-list-box i.select-icon{margin-right:.5em;color:#607d8b;font-size:18px}div.tag-list-box span.tag,div.tags-box span.tag{margin:0 3px 3px 0;padding:3px;background:#5c6bc0;color:#fff;border:0;border-radius:3px !important;-moz-border-radius:3px !important;-webkit-border-radius:3px !important}#box-pub-noheader #box-login{position:relative;min-height:14em}#box-pub-noheader #box-login #box-buttons{position:absolute;top:2em;right:2em}#box-pub-noheader #box-login #box-actions{width:100%;text-align:right}#box-pub-noheader #box-login #box-actions a{color:#c9c9c9}#box-pub-noheader #box-updated{width:350px;margin:3em auto;font-size:14px;text-align:center;padding:.5em;color:#26a69a;background-color:#e0f2f1;border:1px solid #26a69a}#box-pub-noheader #demo-info{padding:.5em;margin:3em auto 0 auto;color:#c9c9c9;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9}#box-pub-noheader #demo-info ul{display:flex;justify-content:space-around;list-style:none}#box-pub-noheader #demo-info ul li>span{padding:0 1em}@media screen and (max-width:600px){#box-pub-noheader #box-login #box-buttons{position:relative;top:0;right:0;text-align:right}#box-pub-noheader #box-login #box-actions{margin-top:1em}#box-pub-noheader #demo-info ul{display:flex;flex-direction:column;align-items:center;list-style:none}#box-pub-noheader #demo-info ul li{width:11em;text-align:left}#box-pub-noheader #demo-info ul li>span{padding:0 1em}}@media screen and (max-width:1000px){#content #searchbox .search-filters>*{margin:.5em 1em .5em 0}footer{display:none;justify-content:space-between;flex-wrap:wrap}footer .footer-parts{justify-content:space-between;flex-wrap:wrap}footer #footer-left,footer #footer-right{width:100%}footer .footer-parts>div{width:100%;padding:.5em 0}}@media screen and (max-width:600px){#content input,#box-popup input{width:100%}#content .mdl-textfield,#box-popup .mdl-textfield{width:100%}#content td.descField,#box-popup td.descField{display:none}#content td.valField .lowres-title,#box-popup td.valField .lowres-title{display:block}#content #searchbox .mdl-textfield{width:90%}#content #searchbox .search-text{width:90%}#content #searchbox .search-filters .selectize-control{width:100%}#content .data-header-minimal li.search-filter-spacer{display:none}#content .data-container,#content .tab-data{width:100%}#content .data-container .selectize-control,#content .tab-data .selectize-control{width:100%}#content .mdl-tabs__tab-bar{flex-wrap:wrap;height:auto}#box-popup h2>.btn-popup-close{display:inline-block}#actions ul.errors{max-width:90vw}.mdl-data-table{table-layout:fixed;width:100%}.table-responsive td,.table-responsive th{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis}.table-responsive .cell-actions i{display:block !important}} \ No newline at end of file diff --git a/app/modules/web/themes/material-blue/css/styles.scss b/app/modules/web/themes/material-blue/css/styles.scss index c259857c..2f831dd1 100644 --- a/app/modules/web/themes/material-blue/css/styles.scss +++ b/app/modules/web/themes/material-blue/css/styles.scss @@ -125,6 +125,31 @@ color: $color-bluegrey-fg; font-size: 12px; } + .notification-description { + font-size: 16px; + max-width: 100%; + .event-description, .event-details { + padding: .5em 0; + } + .event-description { + color: $color-indigo-fg; + border-bottom: 1px solid #e9e9e9; + } + .event-details { + .detail { + display: flex; + padding: .2em 0; + .detail-left { + flex: none; + width: 8em; + font-weight: bold; + } + .detail-right { + flex-grow: 1; + } + } + } + } } } diff --git a/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc b/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc index cb3e7ef4..30be5c3c 100644 --- a/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc +++ b/app/modules/web/themes/material-blue/views/itemshow/user_profile.inc @@ -552,10 +552,10 @@ $profileData = $_getvar('profileData'); diff --git a/app/modules/web/themes/material-blue/views/notification/notification.inc b/app/modules/web/themes/material-blue/views/notification/notification.inc index bf838977..33b55c79 100644 --- a/app/modules/web/themes/material-blue/views/notification/notification.inc +++ b/app/modules/web/themes/material-blue/views/notification/notification.inc @@ -60,13 +60,19 @@ $notification = $_getvar('notification'); -
- - -
+ +
+ + +
+ +
+ getDescription(); ?> +
+ diff --git a/lib/SP/Core/Events/EventMessage.php b/lib/SP/Core/Events/EventMessage.php index f267c3ae..c69b28ac 100644 --- a/lib/SP/Core/Events/EventMessage.php +++ b/lib/SP/Core/Events/EventMessage.php @@ -24,8 +24,10 @@ namespace SP\Core\Events; +use SP\Core\Messages\FormatterInterface; +use SP\Core\Messages\HtmlFormatter; use SP\Core\Messages\MessageInterface; -use SP\Html\Html; +use SP\Core\Messages\TextFormatter; /** * Class EventMessage @@ -53,7 +55,7 @@ final class EventMessage implements MessageInterface /** * @var array */ - protected $data = []; + protected $extra = []; /** * @return static @@ -63,38 +65,6 @@ final class EventMessage implements MessageInterface return new static(); } - /** - * Devuelve la descripción de la acción realizada en formato HTML - * - * @param bool $translate - * - * @return string - */ - public function getHtmlDescription($translate = false) - { - return nl2br($this->getDescription($translate)); - } - - /** - * Devuelve la descripción de la acción realizada - * - * @param bool $translate - * - * @return string - */ - public function getDescription($translate = false) - { - if (count($this->description) === 0) { - return ''; - } - - if ($translate === true) { - return implode(PHP_EOL, array_map('__', $this->description)); - } - - return implode(PHP_EOL, $this->description); - } - /** * Devuelve la descripción * @@ -105,21 +75,6 @@ final class EventMessage implements MessageInterface return $this->description; } - /** - * Añadir detalle en formato HTML. Se resalta el texto clave. - * - * @param $key string - * @param $value string - * - * @return $this - */ - public function addDetailHtml($key, $value) - { - $this->addDetail(Html::strongText($key), $value); - - return $this; - } - /** * Establece los detalles de la acción realizada * @@ -153,20 +108,6 @@ final class EventMessage implements MessageInterface return strip_tags($string); } - /** - * Establece la descripción de la acción realizada en formato HTML - * - * @param string $description - * - * @return $this - */ - public function addDescriptionHtml($description = '') - { - $this->addDescription(Html::strongText($description)); - - return $this; - } - /** * Establece la descripción de la acción realizada * @@ -200,42 +141,46 @@ final class EventMessage implements MessageInterface */ public function composeText($delimiter = PHP_EOL) { - return implode($delimiter, [$this->getDescription(true), $this->getDetails(true)]); + $formatter = new TextFormatter(); + + return implode($delimiter, [ + $this->getDescription($formatter, true), + $this->getDetails($formatter, true) + ]); + } + + /** + * Devuelve la descripción de la acción realizada + * + * @param FormatterInterface $formatter + * @param bool $translate + * + * @return string + */ + public function getDescription(FormatterInterface $formatter, $translate = false) + { + if (count($this->description) === 0) { + return ''; + } + + return $formatter->formatDescription($this->description, $translate); } /** * Devuelve los detalles de la acción realizada * - * @param bool $translate + * @param FormatterInterface $formatter + * @param bool $translate * * @return string */ - public function getDetails($translate = false) + public function getDetails(FormatterInterface $formatter, bool $translate = false) { if (count($this->details) === 0) { return ''; } - return implode(PHP_EOL, array_map(function ($detail) use ($translate) { - return $this->formatDetail($detail, $translate); - }, $this->details)); - } - - /** - * Devolver un detalle formateado - * - * @param array $detail - * @param bool $translate - * - * @return string - */ - protected function formatDetail(array $detail, $translate = false) - { - if ($translate === true) { - return sprintf('%s : %s', __($detail[0]), __($detail[1])); - } - - return sprintf('%s : %s', $detail[0], $detail[1]); + return $formatter->formatDetail($this->details, $translate); } /** @@ -255,26 +200,14 @@ final class EventMessage implements MessageInterface */ public function composeHtml() { - $message = [ - '
', - '

' . nl2br($this->getDescription(true)) . '

', - '

' . nl2br($this->getDetails(true)) . '

', - '
' - ]; + $formatter = new HtmlFormatter(); - return implode('', $message); - } + $message = '
'; + $message .= '
' . $this->getDescription($formatter, true) . '
'; + $message .= '
' . $this->getDetails($formatter, true) . '
'; + $message .= '
'; - /** - * Devuelve los detalles en formato HTML - * - * @param bool $translate - * - * @return string - */ - public function getHtmlDetails($translate = false) - { - return nl2br($this->getDetails($translate)); + return $message; } /** @@ -296,24 +229,43 @@ final class EventMessage implements MessageInterface /** * @return array */ - public function getData() + public function getExtra() { - return $this->data; + return $this->extra; } /** + * @param $type + * @param array $data + * + * @return EventMessage + */ + public function setExtra($type, array $data) + { + if (isset($this->extra[$type])) { + $this->extra[$type] = array_merge($this->extra[$type], $data); + } else { + $this->extra[$type] = $data; + } + + return $this; + } + + /** + * Extra data are stored as an array of values per key, thus each key is unique + * * @param string $type * @param mixed $data * * @return EventMessage */ - public function addData($type, $data) + public function addExtra($type, $data) { - if (isset($this->data[$type]) && in_array($data, $this->data[$type])) { + if (isset($this->extra[$type]) && in_array($data, $this->extra[$type])) { return $this; } - $this->data[$type][] = $data; + $this->extra[$type][] = $data; return $this; } diff --git a/lib/SP/Core/Messages/FormatterInterface.php b/lib/SP/Core/Messages/FormatterInterface.php new file mode 100644 index 00000000..eb475a31 --- /dev/null +++ b/lib/SP/Core/Messages/FormatterInterface.php @@ -0,0 +1,49 @@ +. + */ + +namespace SP\Core\Messages; + +/** + * Interface DetailsFormatterInterface + * + * @package SP\Core\Messages + */ +interface FormatterInterface +{ + /** + * @param array $text + * @param bool $translate + * + * @return string + */ + public function formatDetail(array $text, bool $translate = false): string; + + /** + * @param $text + * @param bool $translate + * + * @return string + */ + public function formatDescription(array $text, bool $translate = false): string; +} \ No newline at end of file diff --git a/lib/SP/Core/Messages/HtmlFormatter.php b/lib/SP/Core/Messages/HtmlFormatter.php new file mode 100644 index 00000000..53714112 --- /dev/null +++ b/lib/SP/Core/Messages/HtmlFormatter.php @@ -0,0 +1,92 @@ +. + */ + +namespace SP\Core\Messages; + +use SP\Html\Html; + +/** + * Class HtmlFormatter + * + * @package SP\Core\Messages + */ +final class HtmlFormatter implements FormatterInterface +{ + + /** + * @param array $text + * @param bool $translate + * + * @return string + */ + public function formatDetail(array $text, bool $translate = false): string + { + return implode( + '', + array_map(function ($value) use ($translate) { + $right = $this->buildLink($value[1]); + $left = $translate ? __($value[0]) : $value[0]; + + if (strpos($right, '' + . '' . $left . '' + . '' . $right . '' + . ''; + }, $text)); + } + + /** + * Detects a link within the string and builds an HTML link + * + * @param string $text + * + * @return string + */ + private function buildLink(string $text) + { + if (preg_match('#^https?://.*$#', $text, $matches)) { + return sprintf('%s', $matches[0], Html::truncate($matches[0], 30)); + } + + return $text; + } + + /** + * @param array $text + * @param bool $translate + * + * @return string + */ + public function formatDescription(array $text, bool $translate = false): string + { + return implode( + '
', + array_map(function ($value) use ($translate) { + return '' . ($translate ? __($value) : $value) . ''; + }, $text)); + } +} \ No newline at end of file diff --git a/lib/SP/Core/Messages/LogMessage.php b/lib/SP/Core/Messages/LogMessage.php index aa8004e7..8d15a51d 100644 --- a/lib/SP/Core/Messages/LogMessage.php +++ b/lib/SP/Core/Messages/LogMessage.php @@ -24,8 +24,6 @@ namespace SP\Core\Messages; -use SP\Html\Html; - /** * Class LogMessage * @@ -50,57 +48,6 @@ final class LogMessage extends MessageBase */ protected $detailsCounter = 0; - /** - * Devuelve la descripción de la acción realizada en formato HTML - * - * @param bool $translate - * - * @return string - */ - public function getHtmlDescription($translate = false) - { - return nl2br($this->getDescription($translate)); - } - - /** - * Devuelve la descripción de la acción realizada - * - * @param bool $translate - * - * @return string - */ - public function getDescription($translate = false) - { - if (count($this->description) === 0) { - return ''; - } - - if (count($this->description) > 1) { - if ($translate === true) { - return implode(PHP_EOL, array_map('__', $this->description)); - } - - return implode(PHP_EOL, $this->description); - } - - return $translate === true ? __($this->description[0]) : $this->description[0]; - } - - /** - * Añadir detalle en formato HTML. Se resalta el texto clave. - * - * @param $key string - * @param $value string - * - * @return $this - */ - public function addDetailsHtml($key, $value) - { - $this->addDetails(Html::strongText($key), $value); - - return $this; - } - /** * Establece los detalles de la acción realizada * @@ -116,7 +63,6 @@ final class LogMessage extends MessageBase } $this->details[] = [$this->formatString($key), $this->formatString($value)]; - $this->detailsCounter++; return $this; @@ -134,20 +80,6 @@ final class LogMessage extends MessageBase return strip_tags($string); } - /** - * Establece la descripción de la acción realizada en formato HTML - * - * @param string $description - * - * @return $this - */ - public function addDescriptionHtml($description = '') - { - $this->addDescription(Html::strongText($description)); - - return $this; - } - /** * Establece la descripción de la acción realizada * @@ -182,9 +114,11 @@ final class LogMessage extends MessageBase */ public function composeText($delimiter = PHP_EOL) { + $formatter = new TextFormatter(); + $message[] = $this->getAction(true); - $message[] = $this->getDescription(true); - $message[] = $this->getDetails(true); + $message[] = $this->getDescription($formatter, true); + $message[] = $this->getDetails($formatter, true); return implode(PHP_EOL, $message); } @@ -198,7 +132,7 @@ final class LogMessage extends MessageBase */ public function getAction($translate = false) { - return $translate === true ? __($this->action) : $this->action; + return $translate ? __($this->action) : $this->action; } /** @@ -216,46 +150,37 @@ final class LogMessage extends MessageBase } /** - * Devuelve los detalles de la acción realizada + * Devuelve la descripción de la acción realizada * - * @param bool $translate + * @param FormatterInterface $formatter + * @param bool $translate * * @return string */ - public function getDetails($translate = false) + public function getDescription(FormatterInterface $formatter, $translate = false): string + { + if (count($this->description) === 0) { + return ''; + } + + return $formatter->formatDescription($this->description, $translate); + } + + /** + * Devuelve los detalles de la acción realizada + * + * @param FormatterInterface $formatter + * @param bool $translate + * + * @return string + */ + public function getDetails(FormatterInterface $formatter, $translate = false): string { if (count($this->details) === 0) { return ''; } - if (count($this->details) > 1) { - if ($translate === true) { - return implode(PHP_EOL, array_map(function ($detail) use ($translate) { - return $this->formatDetail($detail, $translate); - }, $this->details)); - } - - return implode(PHP_EOL, array_map([$this, 'formatDetail'], $this->details)); - } - - return $this->formatDetail($this->details[0], $translate); - } - - /** - * Devolver un detalle formateado - * - * @param array $detail - * @param bool $translate - * - * @return string - */ - protected function formatDetail(array $detail, $translate = false) - { - if ($translate === true) { - return sprintf('%s : %s', __($detail[0]), __($detail[1])); - } - - return sprintf('%s : %s', $detail[0], $detail[1]); + return $formatter->formatDetail($this->details, $translate); } /** @@ -265,14 +190,16 @@ final class LogMessage extends MessageBase */ public function composeHtml() { - $message[] = '
'; - $message[] = '

' . $this->action . '

'; - $message[] = '

' . nl2br($this->getDescription(true)) . '

'; - $message[] = '

' . nl2br($this->getDetails(true)) . '

'; - $message[] = '
' . $this->footer . '
'; - $message[] = '
'; + $formatter = new HtmlFormatter(); - return implode('', $message); + $message = '
'; + $message .= '

' . $this->action . '

'; + $message .= '
' . $this->getDescription($formatter, true) . '
'; + $message .= '
' . $this->getDetails($formatter, true) . '
'; + $message .= '
' . $this->footer . '
'; + $message .= '
'; + + return $message; } /** @@ -297,18 +224,6 @@ final class LogMessage extends MessageBase return $this; } - /** - * Devuelve los detalles en formato HTML - * - * @param bool $translate - * - * @return string - */ - public function getHtmlDetails($translate = false) - { - return nl2br($this->getDetails($translate)); - } - /** * @return int */ diff --git a/lib/SP/Core/Messages/MailMessage.php b/lib/SP/Core/Messages/MailMessage.php index 46656a30..bd68632e 100644 --- a/lib/SP/Core/Messages/MailMessage.php +++ b/lib/SP/Core/Messages/MailMessage.php @@ -46,13 +46,26 @@ final class MailMessage extends MessageBase implements MessageInterface */ public function composeHtml() { - $message[] = '
'; - $message[] = '

' . $this->title . '

'; - $message[] = '
' . nl2br(implode('
', $this->getDescription())) . '
'; - $message[] = '
' . implode('
', $this->footer) . '
'; - $message[] = '
'; + $formatter = new HtmlFormatter(); - return implode('', $message); + $message = '
'; + $message .= '

' . $this->title . '

'; + $message .= '
' . $this->getDescription($formatter, true) . '
'; + $message .= '
' . implode('
', $this->footer) . '
'; + $message .= '
'; + + return $message; + } + + /** + * @param FormatterInterface $formatter + * @param bool $translate + * + * @return string + */ + public function getDescription(FormatterInterface $formatter, $translate = false): string + { + return $formatter->formatDescription($this->description, $translate); } /** @@ -64,6 +77,12 @@ final class MailMessage extends MessageBase implements MessageInterface */ public function composeText($delimiter = PHP_EOL) { - return $this->title . $delimiter . implode($delimiter, $this->description) . $delimiter . implode($delimiter, $this->footer); + $formatter = new TextFormatter($delimiter); + + return $this->title + . $delimiter + . $formatter->formatDescription($this->description) + . $delimiter + . implode($delimiter, $this->footer); } } \ No newline at end of file diff --git a/lib/SP/Core/Messages/MessageBase.php b/lib/SP/Core/Messages/MessageBase.php index dde700b2..31e7e8a6 100644 --- a/lib/SP/Core/Messages/MessageBase.php +++ b/lib/SP/Core/Messages/MessageBase.php @@ -73,12 +73,12 @@ abstract class MessageBase implements MessageInterface } /** - * @return array + * @param FormatterInterface $formatter + * @param bool $translate + * + * @return string */ - public function getDescription() - { - return $this->description; - } + public abstract function getDescription(FormatterInterface $formatter, $translate = false): string; /** * @param array $description diff --git a/lib/SP/Core/Messages/NotificationMessage.php b/lib/SP/Core/Messages/NotificationMessage.php index d1ea97c7..0937fd78 100644 --- a/lib/SP/Core/Messages/NotificationMessage.php +++ b/lib/SP/Core/Messages/NotificationMessage.php @@ -38,6 +38,8 @@ final class NotificationMessage extends MessageBase */ public function composeHtml() { + $formatter = new HtmlFormatter(); + $message = '
'; if ($this->title) { @@ -45,7 +47,7 @@ final class NotificationMessage extends MessageBase } if (!empty($this->description)) { - $message .= '
' . implode('
', $this->description) . '
'; + $message .= '
' . $this->getDescription($formatter) . '
'; } if (!empty($this->footer)) { @@ -57,6 +59,17 @@ final class NotificationMessage extends MessageBase return $message; } + /** + * @param FormatterInterface $formatter + * @param bool $translate + * + * @return string + */ + public function getDescription(FormatterInterface $formatter, $translate = false): string + { + return $formatter->formatDescription($this->description, $translate); + } + /** * Componer un mensaje en formato texto * diff --git a/lib/SP/Core/Messages/TextFormatter.php b/lib/SP/Core/Messages/TextFormatter.php new file mode 100644 index 00000000..ff9eaa90 --- /dev/null +++ b/lib/SP/Core/Messages/TextFormatter.php @@ -0,0 +1,83 @@ +. + */ + +namespace SP\Core\Messages; + +/** + * Class TextFormatter + * + * @package SP\Core\Messages + */ +final class TextFormatter implements FormatterInterface +{ + /** + * @var string + */ + private $delimiter; + + /** + * TextFormatter constructor. + * + * @param string $delimiter + */ + public function __construct($delimiter = PHP_EOL) + { + $this->delimiter = $delimiter; + } + + /** + * @param array $text + * @param bool $translate + * + * @return string + */ + public function formatDetail(array $text, bool $translate = false): string + { + return implode( + $this->delimiter, + array_map(function ($value) use ($translate) { + return sprintf( + '%s: %s', + $translate ? __($value[0]) : $value[0] + , $translate ? __($value[1]) : $value[1] + ); + }, $text)); + + } + + /** + * @param array $text + * @param bool $translate + * + * @return string + */ + public function formatDescription(array $text, bool $translate = false): string + { + if ($translate === true) { + return implode($this->delimiter, array_map('__', $text)); + } + + return implode($this->delimiter, $text); + } +} \ No newline at end of file diff --git a/lib/SP/Core/ModuleBase.php b/lib/SP/Core/ModuleBase.php index f161751a..abceb907 100644 --- a/lib/SP/Core/ModuleBase.php +++ b/lib/SP/Core/ModuleBase.php @@ -32,6 +32,7 @@ use SP\Config\Config; use SP\Core\Context\ContextInterface; use SP\Core\Events\EventDispatcher; use SP\Http\Request; +use SP\Providers\Acl\AclHandler; use SP\Providers\Log\DatabaseLogHandler; use SP\Providers\Log\FileLogHandler; use SP\Providers\Log\RemoteSyslogHandler; @@ -144,6 +145,7 @@ abstract class ModuleBase $eventDispatcher->attach($this->container->get(RemoteSyslogHandler::class)); } + $eventDispatcher->attach($this->container->get(AclHandler::class)); $eventDispatcher->attach($this->container->get(NotificationHandler::class)); } } \ No newline at end of file diff --git a/lib/SP/DataModel/NotificationData.php b/lib/SP/DataModel/NotificationData.php index eea184eb..a60d6347 100644 --- a/lib/SP/DataModel/NotificationData.php +++ b/lib/SP/DataModel/NotificationData.php @@ -128,10 +128,15 @@ class NotificationData implements DataModelInterface /** * @param MessageInterface $message + * @param bool $useHtml */ - public function setDescription(MessageInterface $message) + public function setDescription(MessageInterface $message, bool $useHtml = false) { - $this->description = $message->composeText(); + if ($useHtml) { + $this->description = $message->composeHtml(); + } else { + $this->description = $message->composeText(); + } } /** diff --git a/lib/SP/Html/Html.php b/lib/SP/Html/Html.php index ac054586..2ae67496 100644 --- a/lib/SP/Html/Html.php +++ b/lib/SP/Html/Html.php @@ -159,4 +159,21 @@ final class Html return sprintf('%s', $alink, $atitle, $attribs, $text); } + + /** + * Strips out HTML tags preserving some spaces + * + * @param $text + * + * @return string + */ + public static function stripTags(string $text): string + { + if (empty($text)) { + return $text; + } + + // Replace tags, then new lines, tabs and return chars, and then 2 or more spaces + return trim(preg_replace(['/<[^>]*>/', '/[\n\t\r]+/', '/\s{2,}/'], ' ', $text)); + } } diff --git a/lib/SP/Http/Request.php b/lib/SP/Http/Request.php index 14a55581..a552d338 100644 --- a/lib/SP/Http/Request.php +++ b/lib/SP/Http/Request.php @@ -96,7 +96,7 @@ final class Request */ private function detectHttps() { - $this->https = ($this->request->server()->exists('HTTPS') && $this->request->server()->get('HTTPS') !== 'off') + $this->https = Util::boolval($this->request->server()->get('HTTPS', 'off')) || $this->request->server()->get('SERVER_PORT', 0) === 443; } diff --git a/lib/SP/Providers/Acl/AclHandler.php b/lib/SP/Providers/Acl/AclHandler.php new file mode 100644 index 00000000..65c5df7a --- /dev/null +++ b/lib/SP/Providers/Acl/AclHandler.php @@ -0,0 +1,189 @@ +. + */ + +namespace SP\Providers\Acl; + +use DI\Container; +use Psr\Container\ContainerInterface; +use SP\Core\Events\Event; +use SP\Core\Events\EventReceiver; +use SP\Providers\EventsTrait; +use SP\Providers\Provider; +use SP\Services\Account\AccountAclService; +use SP\Services\UserGroup\UserGroupService; +use SP\Services\UserProfile\UserProfileService; +use SplSubject; + +/** + * Class AclHandler + * + * @package SP\Providers\Acl + */ +final class AclHandler extends Provider implements EventReceiver +{ + use EventsTrait; + + const EVENTS = [ + 'edit.userProfile', + 'edit.user', + 'edit.userGroup', + 'delete.user', + 'delete.user.selection' + ]; + + /** + * @var string + */ + private $events; + /** + * @var ContainerInterface + */ + private $dic; + + /** + * Devuelve los eventos que implementa el observador + * + * @return array + */ + public function getEvents() + { + return self::EVENTS; + } + + /** + * Devuelve los eventos que implementa el observador en formato cadena + * + * @return string + */ + public function getEventsString() + { + return $this->events; + } + + /** + * Receive update from subject + * + * @link https://php.net/manual/en/splobserver.update.php + * + * @param SplSubject $subject

+ * The SplSubject notifying the observer of an update. + *

+ * + * @return void + * @since 5.1.0 + */ + public function update(SplSubject $subject) + { + $this->updateEvent('update', new Event($subject)); + } + + /** + * Evento de actualización + * + * @param string $eventType Nombre del evento + * @param Event $event Objeto del evento + */ + public function updateEvent($eventType, Event $event) + { + switch ($eventType) { + case 'edit.userProfile': + $this->processUserProfile($event); + break; + case 'edit.user': + case 'delete.user': + case 'delete.user.selection': + $this->processUser($event); + break; + case 'edit.userGroup': + $this->processUserGroup($event); + break; + } + } + + /** + * @param Event $event + */ + private function processUserProfile(Event $event) + { + try { + $eventMessage = $event->getEventMessage(); + $extra = $eventMessage->getExtra(); + + if (isset($extra['userProfileId'])) { + $userProfileService = $this->dic->get(UserProfileService::class); + + foreach ($userProfileService->getUsersForProfile($extra['userProfileId'][0]) as $user) { + AccountAclService::clearAcl($user->id); + } + } + } catch (\Exception $e) { + processException($e); + } + } + + /** + * @param Event $event + */ + private function processUser(Event $event) + { + $eventMessage = $event->getEventMessage(); + $extra = $eventMessage->getExtra(); + + if (isset($extra['userId'])) { + foreach ($extra['userId'] as $id) { + AccountAclService::clearAcl($id); + } + } + } + + /** + * @param Event $event + */ + private function processUserGroup(Event $event) + { + try { + $eventMessage = $event->getEventMessage(); + $extra = $eventMessage->getExtra(); + + if (isset($extra['userGroupId'])) { + $userGroupService = $this->dic->get(UserGroupService::class); + + foreach ($userGroupService->getUsageByUsers($extra['userGroupId'][0]) as $user) { + AccountAclService::clearAcl($user->id); + } + } + } catch (\Exception $e) { + processException($e); + } + } + + /** + * @param Container $dic + */ + protected function initialize(Container $dic) + { + $this->dic = $dic; + $this->events = $this->parseEventsToRegex(self::EVENTS); + } +} \ No newline at end of file diff --git a/lib/SP/Providers/Mail/MailHandler.php b/lib/SP/Providers/Mail/MailHandler.php index ff3789cb..946f37d6 100644 --- a/lib/SP/Providers/Mail/MailHandler.php +++ b/lib/SP/Providers/Mail/MailHandler.php @@ -28,6 +28,7 @@ use DI\Container; use SP\Core\Events\Event; use SP\Core\Events\EventReceiver; use SP\Core\Messages\MailMessage; +use SP\Core\Messages\TextFormatter; use SP\Http\Request; use SP\Providers\EventsTrait; use SP\Providers\Provider; @@ -124,7 +125,10 @@ final class MailHandler extends Provider implements EventReceiver $mailMessage->addDescription(sprintf(__('Performed by: %s (%s)'), $userData->getName(), $userData->getLogin())); $mailMessage->addDescription(sprintf(__('IP Address: %s'), $this->request->getClientAddress(true))); - $this->mailService->send($eventMessage->getDescription(true), $configData->getMailFrom(), $mailMessage); + $this->mailService->send( + $eventMessage->getDescription(new TextFormatter(), true), + $configData->getMailFrom(), $mailMessage + ); } catch (\Exception $e) { processException($e); } diff --git a/lib/SP/Providers/Notification/NotificationHandler.php b/lib/SP/Providers/Notification/NotificationHandler.php index efd17c66..dbb3574c 100644 --- a/lib/SP/Providers/Notification/NotificationHandler.php +++ b/lib/SP/Providers/Notification/NotificationHandler.php @@ -117,7 +117,7 @@ final class NotificationHandler extends Provider implements EventReceiver private function requestAccountNotification(Event $event) { $eventMessage = $event->getEventMessage(); - $data = $eventMessage->getData(); + $data = $eventMessage->getExtra(); foreach ($data['userId'] as $userId) { $notificationData = new NotificationData(); @@ -148,14 +148,14 @@ final class NotificationHandler extends Provider implements EventReceiver private function showAccountLinkNotification(Event $event) { $eventMessage = $event->getEventMessage(); - $data = $eventMessage->getData(); + $data = $eventMessage->getExtra(); if ($data['notify'][0] === true) { $notificationData = new NotificationData(); $notificationData->setType(__('Notification')); $notificationData->setComponent(__('Accounts')); - $notificationData->setUserId($data['userId']); - $notificationData->setDescription($eventMessage); + $notificationData->setUserId($data['userId'][0]); + $notificationData->setDescription($eventMessage, true); $this->notify($notificationData); } diff --git a/lib/SP/Repositories/UserProfile/UserProfileRepository.php b/lib/SP/Repositories/UserProfile/UserProfileRepository.php index 91fd16d6..68f462e9 100644 --- a/lib/SP/Repositories/UserProfile/UserProfileRepository.php +++ b/lib/SP/Repositories/UserProfile/UserProfileRepository.php @@ -56,7 +56,7 @@ final class UserProfileRepository extends Repository implements RepositoryItemIn public function getUsersForProfile($id) { $queryData = new QueryData(); - $queryData->setQuery('SELECT login FROM User WHERE userProfileId = ?'); + $queryData->setQuery('SELECT id, login FROM User WHERE userProfileId = ?'); $queryData->addParam($id); return $this->db->doSelect($queryData); diff --git a/lib/SP/Services/Account/AccountAclService.php b/lib/SP/Services/Account/AccountAclService.php index 5d8d702c..12165614 100644 --- a/lib/SP/Services/Account/AccountAclService.php +++ b/lib/SP/Services/Account/AccountAclService.php @@ -74,7 +74,7 @@ final class AccountAclService extends Service */ public static function clearAcl($userId) { - logger(__FUNCTION__); + logger(sprintf('Clearing ACL for user ID: %d', $userId)); try { if (FileUtil::rmdir_recursive(self::ACL_PATH . $userId) === false) { diff --git a/lib/SP/Services/Install/Installer.php b/lib/SP/Services/Install/Installer.php index 56712a85..1f063502 100644 --- a/lib/SP/Services/Install/Installer.php +++ b/lib/SP/Services/Install/Installer.php @@ -56,8 +56,8 @@ final class Installer extends Service * sysPass' version and build number */ const VERSION = [3, 0, 0]; - const VERSION_TEXT = '3.0-rc2'; - const BUILD = 18111702; + const VERSION_TEXT = '3.0-rc3'; + const BUILD = 18111801; /** * @var DatabaseSetupInterface diff --git a/lib/SP/Services/Upgrade/UpgradeDatabaseService.php b/lib/SP/Services/Upgrade/UpgradeDatabaseService.php index 9b4ca80c..0171a85d 100644 --- a/lib/SP/Services/Upgrade/UpgradeDatabaseService.php +++ b/lib/SP/Services/Upgrade/UpgradeDatabaseService.php @@ -53,7 +53,8 @@ final class UpgradeDatabaseService extends Service implements UpgradeInterface '300.18083002', '300.18091101', '300.18092401', - '300.18093001' + '300.18093001', + '300.18111801' ]; /** diff --git a/lib/SP/Storage/Database/Database.php b/lib/SP/Storage/Database/Database.php index 032c1a31..cac3c7b5 100644 --- a/lib/SP/Storage/Database/Database.php +++ b/lib/SP/Storage/Database/Database.php @@ -348,7 +348,7 @@ final class Database implements DatabaseInterface $result = $conn->beginTransaction(); $this->eventDispatcher->notifyEvent('database.transaction.begin', - new Event($this, EventMessage::factory()->addData('result', $result))); + new Event($this, EventMessage::factory()->addExtra('result', $result))); return $result; } else { @@ -370,7 +370,7 @@ final class Database implements DatabaseInterface $result = $conn->inTransaction() && $conn->commit(); $this->eventDispatcher->notifyEvent('database.transaction.end', - new Event($this, EventMessage::factory()->addData('result', $result))); + new Event($this, EventMessage::factory()->addExtra('result', $result))); return $result; } @@ -387,7 +387,7 @@ final class Database implements DatabaseInterface $result = $conn->inTransaction() && $conn->rollBack(); $this->eventDispatcher->notifyEvent('database.transaction.rollback', - new Event($this, EventMessage::factory()->addData('result', $result))); + new Event($this, EventMessage::factory()->addExtra('result', $result))); return $result; } diff --git a/schemas/30018111801.sql b/schemas/30018111801.sql new file mode 100644 index 00000000..8ebcf2d5 --- /dev/null +++ b/schemas/30018111801.sql @@ -0,0 +1,4 @@ +DELIMITER $$ + +ALTER TABLE Notification + MODIFY description TEXT NOT NULL $$ \ No newline at end of file diff --git a/schemas/dbstructure.sql b/schemas/dbstructure.sql index 693c93ed..89b896a4 100644 --- a/schemas/dbstructure.sql +++ b/schemas/dbstructure.sql @@ -397,7 +397,7 @@ CREATE TABLE `Notification` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `type` varchar(100) DEFAULT NULL, `component` varchar(100) NOT NULL, - `description` varchar(500) NOT NULL, + `description` text NOT NULL, `date` int(10) unsigned NOT NULL, `checked` tinyint(1) DEFAULT 0, `userId` smallint(5) unsigned DEFAULT NULL, diff --git a/tests/SP/Repositories/PublicLinkRepositoryTest.php b/tests/SP/Repositories/PublicLinkRepositoryTest.php index 46a21752..52ceef63 100644 --- a/tests/SP/Repositories/PublicLinkRepositoryTest.php +++ b/tests/SP/Repositories/PublicLinkRepositoryTest.php @@ -184,7 +184,7 @@ class PublicLinkRepositoryTest extends DatabaseTestCase $this->assertEquals($data->getTypeId(), $resultData->getTypeId()); $this->assertEquals($data->isNotify(), $resultData->isNotify()); $this->assertEquals($data->getDateExpire(), $resultData->getDateExpire()); - $this->assertTrue($data->getDateAdd() >= $resultData->getDateAdd()); + $this->assertTrue($data->getDateAdd() <= $resultData->getDateAdd()); $this->assertEquals($data->getMaxCountViews(), $resultData->getMaxCountViews()); $this->expectException(DuplicatedItemException::class); diff --git a/tests/res/config/config.xml b/tests/res/config/config.xml index 1e832656..53244c27 100644 --- a/tests/res/config/config.xml +++ b/tests/res/config/config.xml @@ -9,11 +9,11 @@ 1 1 - f68be1f27b0f34e893513e9444a9a314e5604a09 + 9f46d4211297e5181cd3429f664a764642eb6e89 0 0 - 1542149001 - e4455b275b1ac0a76319b0a6646815b876ccbb11 + 1542566884 + 4c1542f238fd13ce49f76a40492e0aeb2f366a25 @@ -32,7 +32,7 @@ 0 - befb9c1eeb90e6b9910db818216483b5ea38b214 + f87c94a0f34f0f305864a68556118f058d3ea842 PDF JPG