background-position: 0 -25px;
}
+.crm-container .crm-button-disabled,
+.crm-container .crm-button.crm-button-disabled,
+.crm-container .ui-dialog-buttonset .ui-button[disabled],
.crm-container input.crm-form-submit[disabled],
.crm-container input[type=button][disabled],
.crm-container .crm-button[disabled] {
background-position: top left;
}
+.crm-container .crm-button-disabled input[disabled] {
+ opacity: 1;
+}
+
.crm-container .ui-dialog-buttonpane {
background: linear-gradient(to bottom, #f2f2f2 0%,#ffffff 35%);
}
return !!$(e.target).closest('.ui-dialog, .ui-datepicker, .select2-drop, .cke_dialog').length;
};
+ // Implements jQuery hook.prop
+ $.propHooks.disabled = {
+ set: function (el, value, name) {
+ // Sync button enabled status with wrapper css
+ if ($(el).is('span.crm-button > input.crm-form-submit')) {
+ $(el).parent().toggleClass('crm-button-disabled', !!value);
+ }
+ // Sync button enabled status with dialog button
+ if ($(el).is('.ui-dialog input.crm-form-submit')) {
+ $(el).closest('.ui-dialog').find('.ui-dialog-buttonset button[data-identifier='+ $(el).attr('name') +']').prop('disabled', !!value);
+ }
+ }
+ };
+
/**
* Populate a select list, overwriting the existing options except for the placeholder.
* @param select jquery selector - 1 or more select elements
{assign var='html' value=$form.buttons.$key.html}
{/if}
{crmGetAttribute html=$html attr='crm-icon' assign='icon'}
- <span class="crm-button crm-button-type-{$key|crmBtnType} crm-button{$key}{if $icon} crm-icon-button{/if}"{if $buttonStyle} style="{$buttonStyle}"{/if}>
+ {crmGetAttribute html=$html attr='disabled' assign='disabled'}
+ <span class="crm-button crm-button-type-{$key|crmBtnType} crm-button{$key}{if $icon} crm-icon-button{/if}{if $disabled} crm-button-disabled{/if}"{if $buttonStyle} style="{$buttonStyle}"{/if}>
{if $icon}<span class="crm-button-icon ui-icon-{$icon}"> </span>{/if}
{$html}
</span>