X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=js%2Fcrm.ajax.js;h=39f7c85ef9aa29d3c196f69d2c9094bd90aafcb3;hb=a2e8bd35b14a8237cd6e972a7ea731118b773ae5;hp=aabfd28f3aaf6b55edaf3d9d651258039ee65b8f;hpb=85166123261df1053abb22779e254a929242a3ec;p=civicrm-core.git diff --git a/js/crm.ajax.js b/js/crm.ajax.js index aabfd28f3a..39f7c85ef9 100644 --- a/js/crm.ajax.js +++ b/js/crm.ajax.js @@ -22,8 +22,12 @@ mode = CRM.config && CRM.config.isFrontend ? 'front' : 'back'; } query = query || ''; - var url, - frag = path.split('?'); + var url, frag, hash = ''; + if (path.indexOf('#') > -1) { + hash = '#' + path.split('#')[1]; + path = path.split('#')[0]; + } + frag = path.split('?'); // Encode url path only if slashes in placeholder were also encoded if (tplURL[mode].indexOf('civicrm/placeholder-url-path') >= 0) { url = tplURL[mode].replace('civicrm/placeholder-url-path', frag[0]); @@ -39,7 +43,7 @@ if (frag[1]) { url += (url.indexOf('?') < 0 ? '?' : '&') + frag[1]; } - return url; + return url + hash; }; $.fn.crmURL = function () { @@ -487,7 +491,7 @@ if (settings.openInline) { settings.autoClose = $el.crmSnippet('isOriginalUrl'); $(this).off('.openInline').on('click.openInline', settings.openInline, function(e) { - if ($(this).is(exclude + ', .crm-popup')) { + if ($(this).is(exclude + ', .crm-popup, [target=crm-popup]')) { return; } if ($(this).hasClass('open-inline-noreturn')) { @@ -507,6 +511,7 @@ var $el = $(this), label = $el.is('input') ? $el.attr('value') : $el.text(), identifier = $el.attr('name') || $el.attr('href'); + $el.attr('tabindex', '-1'); if (!identifier || identifier === '#' || $.inArray(identifier, added) < 0) { var $icon = $el.find('.icon, .crm-i'), button = {'data-identifier': identifier, text: label, click: function() { @@ -522,7 +527,7 @@ added.push(identifier); } // display:none causes the form to not submit when pressing "enter" - $el.parents(buttonContainers).css({height: 0, padding: 0, margin: 0, overflow: 'hidden'}); + $el.parents(buttonContainers).css({height: 0, padding: 0, margin: 0, overflow: 'hidden'}).attr('aria-hidden', 'true'); }); $el.dialog('option', 'buttons', buttons); } @@ -594,7 +599,7 @@ $(function($) { $('body') - .on('click', 'a.crm-popup', CRM.popup) + .on('click', 'a.crm-popup, a[target=crm-popup]', CRM.popup) // Close unsaved dialog messages .on('dialogopen', function(e) { $('.alert.unsaved-dialog .ui-notify-cross', '#crm-notification-container').click();