X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=js%2FCommon.js;h=c2134fa8023c70e7a2767e77d91ddac82819d7b9;hb=972bd8974a95be4fc46957a7f748e5beab1583dc;hp=405e6b483b55bf6414c0989d7f621b9faba8d4df;hpb=00a3f7588c4585022f739fa10bf8b7504639dfbf;p=civicrm-core.git diff --git a/js/Common.js b/js/Common.js index 405e6b483b..c2134fa802 100644 --- a/js/Common.js +++ b/js/Common.js @@ -591,6 +591,9 @@ if (!CRM.vars) CRM.vars = {}; }); } + /** + * @see http://wiki.civicrm.org/confluence/display/CRMDOC/crmDatepicker + */ $.fn.crmDatepicker = function(options) { return $(this).each(function() { if ($(this).is('.crm-form-date-wrapper .crm-hidden-date')) { @@ -604,8 +607,8 @@ if (!CRM.vars) CRM.vars = {}; $timeField = $(), $clearLink = $(); - if (settings.allowClear !== undefined ? settings.allowClear : !$dataField.hasClass('required')) { - $clearLink = $('') + if (settings.allowClear !== undefined ? settings.allowClear : !$dataField.is('.required, [required]')) { + $clearLink = $('') .insertAfter($dataField); } if (settings.time !== false) { @@ -624,15 +627,15 @@ if (!CRM.vars) CRM.vars = {}; $dateField = $('').insertAfter($dataField); copyAttributes($dataField, $dateField, ['placeholder', 'style', 'class', 'disabled']); $dateField.addClass('crm-form-text crm-form-date'); - settings.dateFormat = settings.dateFormat || CRM.config.dateInputFormat; - settings.changeMonth = _.includes('m', settings.dateFormat); - settings.changeYear = _.includes('y', settings.dateFormat); + settings.date = typeof settings.date === 'string' ? settings.date : CRM.config.dateInputFormat; + settings.changeMonth = _.includes('m', settings.date); + settings.changeYear = _.includes('y', settings.date); $dateField.datepicker(settings).change(updateDataField); } // Rudimentary validation. TODO: Roll into use of jQUery validate and ui.datepicker.validation function isValidDate() { try { - $.datepicker.parseDate(settings.dateFormat, $dateField.val()); + $.datepicker.parseDate(settings.date, $dateField.val()); return true; } catch (e) { return false; @@ -874,7 +877,19 @@ if (!CRM.vars) CRM.vars = {}; }) .find('input.select-row:checked').parents('tr').addClass('crm-row-selected'); $('table.crm-sortable', e.target).DataTable(); - $('table.crm-ajax-table', e.target).crmAjaxTable(); + $('table.crm-ajax-table', e.target).each(function() { + var + $table = $(this), + $accordion = $table.closest('.crm-accordion-wrapper.collapsed, .crm-collapsible.collapsed'); + // For tables hidden by collapsed accordions, wait. + if ($accordion.length) { + $accordion.one('crmAccordion:open', function() { + $table.crmAjaxTable(); + }); + } else { + $table.crmAjaxTable(); + } + }); if ($("input:radio[name=radio_ts]").size() == 1) { $("input:radio[name=radio_ts]").prop("checked", true); } @@ -905,7 +920,7 @@ if (!CRM.vars) CRM.vars = {}; } // Add resize button if ($el.parent().hasClass('crm-container') && $el.dialog('option', 'resizable')) { - $el.parent().find('.ui-dialog-titlebar').append($('