BusinessCatalogHeader.js 3.79 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 */

define(['require',
    'hbs!tmpl/business_catalog/BusinessCatalogHeader'
], function(require, tmpl) {
    'use strict';

    var BusinessCatalogHeader = Marionette.LayoutView.extend({
        template: tmpl,
        templateHelpers: function() {},
        regions: {},
        events: {},
        initialize: function(options) {
            _.extend(this, _.pick(options, 'globalVent', 'url', 'collection'));
            this.value = [];

        },
        /**
         * After Page Render createBrudCrum called.
         * @return {[type]} [description]
         */
        render: function() {
            $(this.el).html(this.template());
            var that = this;
            if (this.url) {
                var t = [];
                var splitURL = this.url.split("api/atlas/v1/taxonomies/");
                if (splitURL.length > 1) {
                    var x = splitURL[1].split("/terms/");
                }

                var href = "";
                for (var v in x) {
                    if (v == 0) {
                        href = x[v];
                        t.push({
                            value: x[v],
                            href: href
                        });
                    } else {
                        href += "/terms/" + x[v];
                        t.push({
                            value: x[v],
                            href: href
                        })
                    };
                }
                this.value = t;
            }
            this.listenTo(this.collection, 'reset', function() {
                setTimeout(function() {
                    that.createBrudCrum();
                }, 0);

            }, this);
            return this;
        },
        createBrudCrum: function() {
            var li = "",
                value = this.value,
                that = this;
            _.each(value, function(object) {
79
                li += '<li><a href="/#!/taxonomy/detailCatalog/api/atlas/v1/taxonomies/' + object.href + '?back=true">' + object.value + '</a></li>';
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
            });
            this.$('.breadcrumb').html(li);
            //this.$(".breadcrumb").asBreadcrumbs("destroy");
            this.$('.breadcrumb').asBreadcrumbs({
                namespace: 'breadcrumb',
                overflow: "left",
                dropicon: "fa fa-ellipsis-h",
                dropdown: function() {
                    return '<div class=\"dropdown\">' +
                        '<a href=\"javascript:void(0);\" class=\"' + this.namespace + '-toggle\" data-toggle=\"dropdown\"><i class=\"' + this.dropicon + '\"</i></a>' +
                        '<ul class=\"' + this.namespace + '-menu dropdown-menu popover bottom arrowPosition \" ><div class="arrow"></div></ul>' +
                        '</div>';
                },
                dropdownContent: function(a) {
                    return '<li><a href="' + a.find('a').attr('href') + '" class="dropdown-item">' + a.text() + "</a></li>";
                }
            });
        }
    });
    return BusinessCatalogHeader;
});