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', 'edx-ui-toolkit/js/dropdown-menu/dropdown-menu-view', 'jquery.ui', 'jquery.leanModal', 'jquery.form', 'jquery.smoothScroll' ], function( domReady, $, _, gettext, NotificationView, PromptView, DateUtils, ModuleUtils, IframeUtils, DropdownMenuView ) { var $body; domReady(function() { var dropdownMenuView; $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}); } // Initiate the edx tool kit dropdown menu if ($('.js-header-user-menu').length) { dropdownMenuView = new DropdownMenuView({ el: '.js-header-user-menu' }); dropdownMenuView.postRender(); } }); 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()