mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°3541 Add event listener to enable/disable loading state for buttons block
This commit is contained in:
26
js/components/button.js
Normal file
26
js/components/button.js
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2022 Combodo SARL
|
||||
*
|
||||
* This file is part of iTop.
|
||||
*
|
||||
* iTop is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* iTop is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
*/
|
||||
|
||||
;
|
||||
// Apply a listener to <body> element so we don't havec to create one for every button on the page
|
||||
$('body').on('enter_loading_state.button.itop', '[data-role="ibo-button"]', function(){
|
||||
$(this).addClass('ibo-is-loading').prop('disabled', true);
|
||||
})
|
||||
.on('leave_loading_state.button.itop', '[data-role="ibo-button"]', function(){
|
||||
$(this).removeClass('ibo-is-loading').prop('disabled', false);
|
||||
});
|
||||
@@ -35,7 +35,11 @@ class Button extends UIBlock
|
||||
public const BLOCK_CODE = 'ibo-button';
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/button/layout';
|
||||
public const DEFAULT_JS_TEMPLATE_REL_PATH = 'base/components/button/layout';
|
||||
|
||||
public const DEFAULT_JS_FILES_REL_PATH = [
|
||||
'js/components/button.js',
|
||||
];
|
||||
public const REQUIRES_ANCESTORS_DEFAULT_JS_FILES = true;
|
||||
|
||||
// Specific constants
|
||||
/** @var string ENUM_ACTION_TYPE_REGULAR */
|
||||
public const ENUM_ACTION_TYPE_REGULAR = 'regular';
|
||||
|
||||
@@ -31,6 +31,7 @@ class ButtonJS extends Button
|
||||
{
|
||||
// Overloaded constants
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/button/buttonjs';
|
||||
public const REQUIRES_ANCESTORS_DEFAULT_JS_FILES = true;
|
||||
|
||||
// Specific constants
|
||||
/** @var string ENUM_TYPE_BUTTON */
|
||||
|
||||
@@ -31,6 +31,7 @@ class ButtonURL extends Button
|
||||
{
|
||||
// Overloaded constants
|
||||
public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/button/buttonurl';
|
||||
public const REQUIRES_ANCESTORS_DEFAULT_JS_FILES = true;
|
||||
|
||||
// Specific constants
|
||||
/** @var string ENUM_TARGET_BLANK */
|
||||
|
||||
Reference in New Issue
Block a user