require(["domReady", "jquery", "underscore", "gettext", "common/js/components/views/feedback_notification", "common/js/components/views/feedback_prompt", "js/utils/date_utils", "js/utils/module", "js/utils/handle_iframe_binding", "jquery.ui", "jquery.leanModal", "jquery.form", "jquery.smoothScroll"], function(domReady, $, _, gettext, NotificationView, PromptView, DateUtils, ModuleUtils, IframeUtils) { var $body; domReady(function() { $body = $('body'); $body.on('click', '.embeddable-xml-input', function() { $(this).select(); }); $body.addClass('js'); // alerts/notifications - manual close $('.action-alert-close, .alert.has-actions .nav-actions a').bind('click', hideAlert); $('.action-notification-close').bind('click', hideNotification); // nav - dropdown related $body.click(function(e) { $('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown'); $('.nav-dd .nav-item .title').removeClass('is-selected'); }); $('.nav-dd .nav-item, .filterable-column .nav-item').click(function(e) { $subnav = $(this).find('.wrapper-nav-sub'); $title = $(this).find('.title'); if ($subnav.hasClass('is-shown')) { $subnav.removeClass('is-shown'); $title.removeClass('is-selected'); } else { $('.nav-dd .nav-item .title').removeClass('is-selected'); $('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown'); $title.addClass('is-selected'); $subnav.addClass('is-shown'); // if propagation is not stopped, the event will bubble up to the // body element, which will close the dropdown. e.stopPropagation(); } }); // general link management - new window/tab $('a[rel="external"]:not([title])').attr('title', gettext('This link will open in a new browser window/tab')); $('a[rel="external"]').attr('target', '_blank'); // general link management - lean modal window $('a[rel="modal"]').attr('title', gettext('This link will open in a modal window')).leanModal({ overlay: 0.50, closeButton: '.action-modal-close' }); $('.action-modal-close').click(function(e) { (e).preventDefault(); }); // general link management - smooth scrolling page links $('a[rel*="view"][href^="#"]').bind('click', smoothScrollLink); IframeUtils.iframeBinding(); // disable ajax caching in IE so that backbone fetches work if ($.browser.msie) { $.ajaxSetup({ cache: false }); } }); function smoothScrollLink(e) { (e).preventDefault(); $.smoothScroll({ offset: -200, easing: 'swing', speed: 1000, scrollElement: null, scrollTarget: $(this).attr('href') }); } function smoothScrollTop(e) { (e).preventDefault(); $.smoothScroll({ offset: -200, easing: 'swing', speed: 1000, scrollElement: null, scrollTarget: $('#view-top') }); } function hideNotification(e) { (e).preventDefault(); $(this).closest('.wrapper-notification').removeClass('is-shown').addClass('is-hiding').attr('aria-hidden', 'true'); } function hideAlert(e) { (e).preventDefault(); $(this).closest('.wrapper-alert').removeClass('is-shown'); } }); // end require()