horizon/horizon/static/horizon/js/horizon.extensible_header.js
Tatiana Ovchinnikova 807a33e1c8 Update ESLint devDependencies in package.json
This patch updates outdated JavaScript dev dependencies.

The latest ESLint version adds rules changes. Some rules are disabled
to prevent checks failures, some minor issues are fixed.

Change-Id: I01c5ccb5c8f7ceb827a3978157b4d76805d259c1
2020-12-16 12:20:10 -06:00

66 lines
2.3 KiB
JavaScript

/**
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
/* Core functionality related to extensible header sections. */
horizon.extensible_header = {
populate: function() {
var $path = $(location).attr('pathname');
var $url = $(location).attr('href');
$url = $url.replace($path, $(window).attr('WEBROOT') + 'header/');
horizon.ajax.queue({
url: $url,
success: function(data) {
$('#extensible-header').replaceWith($(data));
selected = horizon.cookies.get('selected_header');
if (selected && $('#header-list #' + selected).length) {
$old_primary = $('#primary-extensible-header > a');
$new_primary = $('#header-list #' + selected);
$old_primary.insertAfter($new_primary);
$new_primary.first().appendTo($('#primary-extensible-header'));
}
function swap() {
$old_primary = $('#primary-extensible-header > a');
$new_primary = $(this);
horizon.cookies.put("selected_header", $new_primary.attr('id'), {path:'/'});
$old_primary.insertAfter($new_primary);
$new_primary.appendTo($('#primary-extensible-header'));
$new_primary.off('click', swap);
$old_primary.on('click', swap);
}
$('#header-list .extensible-header-section').on('click', swap);
},
error: function(jqXHR) {
if (jqXHR.status !== 401 && jqXHR.status !== 403) {
// error is raised with status of 0 when ajax query is cancelled
// due to new page request
if (jqXHR.status !== 0) {
horizon.alert("info", gettext("Failed to populate extensible header."));
}
}
}
});
return true;
}
};
horizon.addInitFunction(function() {
// trigger extensible header section query on page load
horizon.extensible_header.populate();
});