From 7e13d44ef35749b627dea1e2ff5fe985d9419ed1 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 10 Apr 2014 21:22:17 -0400 Subject: [PATCH] JS updates to support HR-337 --- js/Common.js | 15 ++++++++------- js/crm.ajax.js | 9 ++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/js/Common.js b/js/Common.js index 5a78933218..fbc0defdb6 100644 --- a/js/Common.js +++ b/js/Common.js @@ -406,17 +406,18 @@ CRM.validate = CRM.validate || { .on('crmLoad', function(e) { $('table.row-highlight', e.target) .off('.rowHighlight') - .on('change.rowHighlight', 'input.select-row, input.select-rows', function () { - var target, table = $(this).closest('table'); + .on('change.rowHighlight', 'input.select-row, input.select-rows', function (e, data) { + var filter, $table = $(this).closest('table'); if ($(this).hasClass('select-rows')) { - target = $('tbody tr', table); - $('input.select-row', table).prop('checked', $(this).prop('checked')); + filter = $(this).prop('checked') ? ':not(:checked)' : ':checked'; + $('input.select-row' + filter, $table).prop('checked', $(this).prop('checked')).trigger('change', 'master-selected'); } else { - target = $(this).closest('tr'); - $('input.select-rows', table).prop('checked', $(".select-row:not(':checked')", table).length < 1); + $(this).closest('tr').toggleClass('crm-row-selected', $(this).prop('checked')); + if (data !== 'master-selected') { + $('input.select-rows', $table).prop('checked', $(".select-row:not(':checked')", $table).length < 1); + } } - target.toggleClass('crm-row-selected', $(this).is(':checked')); }) .find('input.select-row:checked').parents('tr').addClass('crm-row-selected'); $('.crm-select2:not(.select2-offscreen, .select2-container)', e.target).crmSelect2(); diff --git a/js/crm.ajax.js b/js/crm.ajax.js index e198881ba3..a13d5dec4e 100644 --- a/js/crm.ajax.js +++ b/js/crm.ajax.js @@ -239,6 +239,9 @@ var that = this; var url = this._formatUrl(this.options.url); this.options.crmForm && $('form', this.element).ajaxFormUnbind(); + if (this._originalContent === null) { + this._originalContent = this.element.contents().detach(); + } this.options.block && $('.blockOverlay', this.element).length < 1 && this.element.block(); $.getJSON(url, function(data) { if (typeof(data) != 'object' || typeof(data.content) != 'string') { @@ -246,11 +249,7 @@ return; } data.url = url; - that.element.trigger('crmBeforeLoad', data); - if (that._originalContent === null) { - that._originalContent = that.element.contents().detach(); - } - that.element.html(data.content); + that.element.trigger('crmBeforeLoad', data).html(data.content); that._handleOrderLinks(); that.element.trigger('crmLoad', data); that.options.crmForm && that.element.trigger('crmFormLoad', data); -- 2.25.1