diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e596b616..b10d751f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,13 +5,11 @@ + - - - - - - + + + - { - "keyToString": { - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "last_opened_file_path": "C:/temp-sk/safekat/ci4/app/Views/themes/backend/vuexy/main", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "vue.rearranger.settings.migration": "true" + +}]]> + @@ -78,6 +77,8 @@ + + 1682339938559 diff --git a/ci4/app/Config/App.php b/ci4/app/Config/App.php index 3fbae94f..6cc09416 100644 --- a/ci4/app/Config/App.php +++ b/ci4/app/Config/App.php @@ -109,7 +109,7 @@ class App extends BaseConfig * * @var string */ - public $appTimezone = 'America/Sao_Paulo'; + public $appTimezone = 'Europe/Madrid'; /** * -------------------------------------------------------------------------- diff --git a/ci4/app/Config/Email.php b/ci4/app/Config/Email.php index 3a42fbe6..8da5812d 100644 --- a/ci4/app/Config/Email.php +++ b/ci4/app/Config/Email.php @@ -26,14 +26,14 @@ class Email extends BaseConfig * * @var string */ - public $userAgent = 'CodeIgniter'; + public $userAgent = 'Safekat ERP'; /** * The mail sending protocol: mail, sendmail, smtp * * @var string */ - public $protocol = 'mail'; + public $protocol = 'smtp'; /** * The server path to Sendmail. @@ -47,21 +47,21 @@ class Email extends BaseConfig * * @var string */ - public $SMTPHost; + public $SMTPHost = "imnavajas.es"; /** * SMTP Username * * @var string */ - public $SMTPUser; + public $SMTPUser = "safekat@imnavajas.es"; /** * SMTP Password * * @var string */ - public $SMTPPass; + public $SMTPPass = "Etkd9~448"; /** * SMTP Port @@ -110,7 +110,7 @@ class Email extends BaseConfig * * @var string */ - public $mailType = 'text'; + public $mailType = 'html'; /** * Character set (utf-8, iso-8859-1, etc.) diff --git a/ci4/app/Controllers/Clientes/Cliente.php b/ci4/app/Controllers/Clientes/Cliente.php index 45015345..64178a93 100644 --- a/ci4/app/Controllers/Clientes/Cliente.php +++ b/ci4/app/Controllers/Clientes/Cliente.php @@ -7,27 +7,42 @@ use App\Controllers\BaseController; class Cliente extends BaseController { function __construct() - { - + { + } public function index() - { - echo "Cliente"; + { + + $uri = service('uri'); + $data['page_name'] = "Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } public function delete() { - + $uri = service('uri'); + $data['page_name'] = "Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } public function add() { + $uri = service('uri'); + $data['page_name'] = "Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } public function edit() { + $uri = service('uri'); + $data['page_name'] = "Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } diff --git a/ci4/app/Controllers/Clientes/Tarifacliente.php b/ci4/app/Controllers/Clientes/Tarifacliente.php index cb136439..e8c7974e 100644 --- a/ci4/app/Controllers/Clientes/Tarifacliente.php +++ b/ci4/app/Controllers/Clientes/Tarifacliente.php @@ -13,22 +13,34 @@ class Tarifacliente extends BaseController public function index() { - echo "Tarifa Cliente"; + $uri = service('uri'); + $data['page_name'] = "Tarifa Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } public function delete() { - + $uri = service('uri'); + $data['page_name'] = "Tarifa Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } public function add() { - + $uri = service('uri'); + $data['page_name'] = "Tarifa Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } public function edit() { - + $uri = service('uri'); + $data['page_name'] = "Tarifa Cliente"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); } } \ No newline at end of file diff --git a/ci4/app/Controllers/Serviciosdigitalizacion/Digitalizacion.php b/ci4/app/Controllers/Serviciosdigitalizacion/Digitalizacion.php index ef102cc9..7a3fc22a 100644 --- a/ci4/app/Controllers/Serviciosdigitalizacion/Digitalizacion.php +++ b/ci4/app/Controllers/Serviciosdigitalizacion/Digitalizacion.php @@ -13,7 +13,11 @@ class Digitalizacion extends BaseController public function index() { - echo 'Digitalizacion'; + $uri = service('uri'); + $data['page_name'] = "Digitalizacion"; + $data['url'] = base_url() . $uri->getSegment(1) . '/' . $uri->getSegment(2); + echo view(getenv('theme.path').'main/demo_view', $data); + } diff --git a/ci4/app/Controllers/Settings.php b/ci4/app/Controllers/Settings.php index 13597a11..26f82681 100644 --- a/ci4/app/Controllers/Settings.php +++ b/ci4/app/Controllers/Settings.php @@ -9,7 +9,7 @@ use App\Models\SettingsModel; use App\Models\TemplateModel; use App\Models\ThemeModel; use App\Models\TimezoneModel; -use App\Models\UserGroupModel; +use App\Models\Usuarios\UserGroupModel; use App\Models\Usuarios\UserModel; class Settings extends BaseController diff --git a/ci4/app/Filters/LoginAuthFilter.php b/ci4/app/Filters/LoginAuthFilter.php index feb480cf..8e1e268a 100644 --- a/ci4/app/Filters/LoginAuthFilter.php +++ b/ci4/app/Filters/LoginAuthFilter.php @@ -140,7 +140,8 @@ class LoginAuthFilter implements FilterInterface 'Migrate', 'Test', 'GoBaseController', - 'GoBaseResourceController', + 'GoBaseResourceController' + ]; } diff --git a/ci4/app/Language/es-ES/Tarifaaacabado.php b/ci4/app/Language/es-ES/Tarifaaacabado.php deleted file mode 100644 index 35bb5601..00000000 --- a/ci4/app/Language/es-ES/Tarifaaacabado.php +++ /dev/null @@ -1,114 +0,0 @@ - 'Ajuste', - 'createdAt' => 'Creado en', - 'deletedAt' => 'Borrado en', - 'formulaPrice' => 'Fórmula precio', - 'id' => 'ID', - 'moduleTitle' => 'Tarifas Acabado', - 'nombre' => 'Nombre', - 'precioMax' => 'Precio Max', - 'precioMin' => 'Precio Min', - 'tarifaacabado' => 'Tarifas Acabado', - 'tarifaacabadoList' => 'Lista Tarifas Acabado', - 'tarifasacabado' => 'Tarifas Acabado', - 'tiradaMax' => 'Tirada Max', - 'tiradaMin' => 'Tirada Min', - 'updatedAt' => 'Actualizado en', - 'userCreatedId' => 'ID Usuario "Creado en"', - 'userUpdateId' => 'ID Usuario "Actualizado en"', - 'validation' => [ - 'formula_price' => [ - 'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'nombre' => [ - 'max_length' => 'El campo {field} no puede exceder {param} caracteres en longitud.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'precio_max' => [ - 'decimal' => 'El campo {field} debe contener un número decimal.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'precio_min' => [ - 'decimal' => 'El campo {field} debe contener un número decimal.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'tirada_max' => [ - 'integer' => 'El campo {field} debe contener un número entero.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'tirada_min' => [ - 'integer' => 'El campo {field} debe contener un número entero.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'user_created_id' => [ - 'integer' => 'El campo {field} debe contener un número entero.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'user_update_id' => [ - 'integer' => 'El campo {field} debe contener un número entero.', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - 'validation' => [ - 'ajuste' => [ - 'decimal' => 'El campo {field} debe contener un número decimal', - 'required' => 'El campo {field} es obligatorio.', - - ], - - - ], - - -]; \ No newline at end of file diff --git a/ci4/app/Views/themes/_commonPartialsBs/select2bs5.php b/ci4/app/Views/themes/_commonPartialsBs/select2bs5.php index 5de3a76a..b88bd0bc 100644 --- a/ci4/app/Views/themes/_commonPartialsBs/select2bs5.php +++ b/ci4/app/Views/themes/_commonPartialsBs/select2bs5.php @@ -4,7 +4,7 @@ */ ?> - + endSection() ?> @@ -17,15 +17,19 @@ section('additionalInlineJs') ?> - + 'use strict'; + const select2 = $('.select2'); - $('.select2').select2({ - - }); + // Select2 + // -------------------------------------------------------------------- + if (select2.length) { + select2.each(function () { + var $this = $(this); + $this.wrap('
').select2({ + placeholder: 'Select value', + dropdownParent: $this.parent() + }); + }); + } endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupForm.php b/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupForm.php index f1740a6a..5dce7459 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupForm.php +++ b/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupForm.php @@ -1,123 +1,155 @@ include("themes/_commonPartialsBs/select2bs5") ?> -extend('themes/backend/vuexy/main/defaultlayout') ?> +extend('themes/backend/vuexy/main/defaultlayout') ?> section("content") ?> -
-
-
-
-

-
-
- -
- - - -
-
-
-
- - -
-
-
-
- - dashboard : set_value('dashboard');?> - -
-
-
-
-
-
- - -
-
-
-
-
-
-
-

+ +
+
+
+
+

+
+
+ + + + + +
+
+
+
+ +
-
-
- - -
-

- - -
- rules, $item['name'], $subitem)?'checked':''?> > - -
+
+
+
+ + dashboard : set_value('dashboard'); ?> + +
+
+
+
+
+
+ + +
+
+
+
+
+
Role Permissions
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - -
-
-

-
-
-
- - -
-

- - -
- rules, $item['name'], $subitem)?'checked':''?> > - -
+ + + +
+ + + + - - - - - + + + + + +
>> +
+ + +
+
+
+ + +
+
- +
-
-
- "btn btn-secondary float-start"]) ?> - "> -
- +
+ "btn btn-secondary float-start"]) ?> + "> +
+ +
-
- -
-
-
+
+
+
endSection() ?> section('additionalInlineJs') ?> - - $('#select_all').on('click', function () { - $(':checkbox').each(function() { + $(':checkbox').each(function() { this.checked = true; - }); + }); }); $('#remove_all').on('click', function () { $(':checkbox').each(function() { @@ -125,5 +157,4 @@ }); }); - endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupList.php b/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupList.php index 9c83a463..581b5c4c 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupList.php +++ b/ci4/app/Views/themes/backend/vuexy/form/group/viewUserGroupList.php @@ -1,72 +1,82 @@ -include('themes/_commonPartialsBs/datatables') ?> -extend('themes/backend/vuexy/main/defaultlayout') ?> -section('content'); ?> -
-
+include('themes/_commonPartialsBs/datatables') ?> +extend('themes/backend/vuexy/main/defaultlayout') ?> +section('content'); ?> +
+
+
+
+

+
+
+
+ +
+
+
+
+
+
+ add-new-roles +
+
+
+
+ +

Añadir rol si no existe

+
+
+
+
+
-
-
-

- 'btn btn-primary float-end']); ?> -
-
- + +
+
+
+
+
Total 4 users
+
+
+
+

title) ?>

+ + + +
+ ", + [ + 'class' => 'text-muted', + 'data-href' => route_to('deleteGroup', $item->id_group), + 'data-bs-toggle' => 'modal', + 'data-bs-target' => '#confirm2delete' + ]); + ?> +
+
+
+
+ +
+ +
+ - - - - */ ?> - - - - - - */ ?> - - - - - - - - id_group ?> - - */ ?> - - - - token) ?> - - - - - */ ?> - - + + -
- title) ?> - - dashboard) ?> - - created_at) ? '' : date('d/m/Y H:m:s', strtotime($item->created_at)) ?> - - updated_at) ? '' : date('d/m/Y H:m:s', strtotime($item->updated_at)) ?> - - id_group), lang('Basic.global.edit'), ['class'=>'btn btn-sm btn-warning btn-edit me-1', 'data-id'=>$item->id_group,]); ?> - 'btn btn-sm btn-danger btn-delete ms-1', 'data-href'=>route_to('deleteGroup', $item->id_group), 'data-bs-toggle'=>'modal', 'data-bs-target'=>'#confirm2delete']); ?> -
-
- -
-
-
+
+
+
+
-endSection() ?> \ No newline at end of file +endSection() ?> \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/form/login/index.php b/ci4/app/Views/themes/backend/vuexy/form/login/index.php index 91307236..17a11156 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/login/index.php +++ b/ci4/app/Views/themes/backend/vuexy/form/login/index.php @@ -71,7 +71,7 @@ aria-describedby="password" onclick="pass()" /> - +
diff --git a/ci4/app/Views/themes/backend/vuexy/form/user/_userFormItems.php b/ci4/app/Views/themes/backend/vuexy/form/user/_userFormItems.php index 3c102b53..0f58c828 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/user/_userFormItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/user/_userFormItems.php @@ -27,7 +27,7 @@ * - @@ -136,7 +136,7 @@ * blocked);?> - @@ -147,7 +147,7 @@ * email_confirmed);?> - diff --git a/ci4/app/Views/themes/backend/vuexy/login/footer.php b/ci4/app/Views/themes/backend/vuexy/login/footer.php index 2c2c86af..bd6e08c4 100644 --- a/ci4/app/Views/themes/backend/vuexy/login/footer.php +++ b/ci4/app/Views/themes/backend/vuexy/login/footer.php @@ -14,18 +14,16 @@ - - - + - + \ No newline at end of file diff --git a/ci4/app/Views/themes/backend/vuexy/login/header.php b/ci4/app/Views/themes/backend/vuexy/login/header.php index cb484cb1..d8fea562 100644 --- a/ci4/app/Views/themes/backend/vuexy/login/header.php +++ b/ci4/app/Views/themes/backend/vuexy/login/header.php @@ -58,8 +58,8 @@ if (!empty($token) && $tfa == false) { - - + + + + @@ -92,9 +94,9 @@ if (!empty($token) && $tfa == false) { "; + echo ""; } else { - echo ""; + echo ""; } ?> diff --git a/ci4/app/Views/themes/backend/vuexy/main/all_selects.php b/ci4/app/Views/themes/backend/vuexy/main/all_selects.php index 5fb63438..5a130e55 100644 --- a/ci4/app/Views/themes/backend/vuexy/main/all_selects.php +++ b/ci4/app/Views/themes/backend/vuexy/main/all_selects.php @@ -61,8 +61,8 @@ if (!empty($token) && $tfa == false) { - - + + - - - @@ -402,32 +399,23 @@ if (!empty($token) && $tfa == false) { - - - - - - - - diff --git a/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php b/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php index 321282d1..c49fefbd 100644 --- a/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php +++ b/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php @@ -138,237 +138,6 @@ if (!empty($token) && $tfa == false) { 5 - diff --git a/ci4/app/Views/themes/backend/vuexy/main/demo_view.php b/ci4/app/Views/themes/backend/vuexy/main/demo_view.php new file mode 100644 index 00000000..496f4006 --- /dev/null +++ b/ci4/app/Views/themes/backend/vuexy/main/demo_view.php @@ -0,0 +1,297 @@ +get('token') ?? ''; +$tfa = $session->get('tfa') ?? false; +$settings = $session->get('settings'); + +$picture = session()->get('picture'); +$pulse = session()->get('pulse'); +$notification = session()->get('notification'); + +if (!empty($token) && $tfa == false) { + //echo ""; +} +?> + + + + + + + + + <?= lang("App.dashboard_title") ?> - <?= $settings['title'] ?? '' ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ + + + + + +
+ + +
+

+ Safekat / + +

+
+ +
+
+
Prueba privilegios
+
+
+ + + +
+
+ +
+
+
+ +
+ + + + + + +
+
+ +
+ +
+ + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/datos web.txt b/datos web.txt index f16259d1..4213fbb2 100644 --- a/datos web.txt +++ b/datos web.txt @@ -6,5 +6,5 @@ datos web guard: email admin: jajaime.jim@gmail.com password: 1234 -FTP SK-IMN: Kqd1s#917 +FTP SK-IMN: pjS9~l138 diff --git a/httpdocs/assets/js/login.js b/httpdocs/assets/js/login.js index 3d2fc0b2..8f1dcc84 100644 --- a/httpdocs/assets/js/login.js +++ b/httpdocs/assets/js/login.js @@ -9,10 +9,10 @@ function pass(){ "use strict"; if(document.getElementById('password').type === 'text'){ document.getElementById('password').type = 'password'; - document.getElementById('btn_pass').innerHTML = ''; + document.getElementById('show_pass').innerHTML = ''; }else{ document.getElementById('password').type = 'text'; - document.getElementById('btn_pass').innerHTML = ''; + document.getElementById('show_pass').innerHTML = ''; } } function accepted(){ diff --git a/httpdocs/themes/vuexy/vendor/libs/toastr/toastr.min.js b/httpdocs/themes/vuexy/vendor/libs/toastr/toastr.min.js new file mode 100644 index 00000000..06e4814f --- /dev/null +++ b/httpdocs/themes/vuexy/vendor/libs/toastr/toastr.min.js @@ -0,0 +1,2 @@ +!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("
").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("
"),M=e("
"),B=e("
"),q=e("
"),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.4",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); +//# sourceMappingURL=toastr.js.map