| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | define([ "require", "hbs!tmpl/site/SideNavLayoutView_tmpl", "utils/Utils", "utils/Globals", "utils/UrlLinks" ], function(require, tmpl, Utils, Globals, UrlLinks) {    "use strict";    var SideNavLayoutView = Marionette.LayoutView.extend({        template: tmpl,        regions: {            RTagLayoutView: "#r_tagLayoutView",            RSearchLayoutView: "#r_searchLayoutView",            RGlossaryLayoutView: "#r_glossaryLayoutView"        },        ui: {            tabs: ".tabs li a"        },        templateHelpers: function() {            return {                apiBaseUrl: UrlLinks.apiBaseUrl            };        },        events: function() {            var events = {};            return events["click " + this.ui.tabs] = function(e) {                var urlString = "", elementName = $(e.currentTarget).data(), tabStateUrls = Globals.saveApplicationState.tabState, urlStateObj = Utils.getUrlState, hashUrl = Utils.getUrlState.getQueryUrl().hash;                urlStateObj.isTagTab() ? hashUrl != tabStateUrls.tagUrl && (Globals.saveApplicationState.tabState.tagUrl = hashUrl) : urlStateObj.isSearchTab() && hashUrl != tabStateUrls.searchUrl && (Globals.saveApplicationState.tabState.searchUrl = hashUrl),                 "tab-classification" == elementName.name ? urlString = tabStateUrls.tagUrl : "tab-search" == elementName.name ? urlString = tabStateUrls.searchUrl : "tab-glossary" == elementName.name && (urlString = tabStateUrls.glossaryUrl),                 Utils.setUrl({                    url: urlString,                    mergeBrowserUrl: !1,                    trigger: !0,                    updateTabState: !0                });            }, events;        },        initialize: function(options) {            this.options = options;        },        onRender: function() {            this.renderTagLayoutView(), this.renderSearchLayoutView(), this.renderGlossaryLayoutView(),             this.selectTab();        },        renderTagLayoutView: function() {            var that = this;            require([ "views/tag/TagLayoutView" ], function(TagLayoutView) {                that.RTagLayoutView.show(new TagLayoutView(_.extend(that.options, {                    collection: that.options.classificationDefCollection                })));            });        },        renderSearchLayoutView: function() {            var that = this;            require([ "views/search/SearchLayoutView" ], function(SearchLayoutView) {                that.RSearchLayoutView.show(new SearchLayoutView(that.options));            });        },        renderGlossaryLayoutView: function() {            var that = this;            require([ "views/glossary/GlossaryLayoutView" ], function(GlossaryLayoutView) {                that.RGlossaryLayoutView.show(new GlossaryLayoutView(that.options));            });        },        selectTab: function() {            var that = this, activeTab = function(options) {                var view = options.view;                that.$(".tabs").find('li a[aria-controls="tab-' + view + '"]').parents("li").addClass("active").siblings().removeClass("active"),                 that.$(".tab-content").find("div#tab-" + view).addClass("active").siblings().removeClass("active");            };            if (Utils.getUrlState.isSearchTab() || Utils.getUrlState.isInitial()) activeTab({                view: "search"            }); else if (Utils.getUrlState.isTagTab()) activeTab({                view: "classification"            }); else if (Utils.getUrlState.isGlossaryTab()) activeTab({                view: "glossary"            }); else if (Utils.getUrlState.isDetailPage()) {                var queryParams = Utils.getUrlState.getQueryParams(), view = "search";                queryParams && queryParams.from && ("classification" == queryParams.from ? view = "tag" : "glossary" == queryParams.from && (view = "glossary")),                 activeTab({                    view: view                });            }        }    });    return SideNavLayoutView;});
 |