| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | 
							- define([ "require", "backbone", "hbs!tmpl/entity/EntityBusinessMetaDataView_tmpl", "views/entity/EntityBusinessMetaDataItemView", "models/VEntity", "utils/Utils", "utils/Messages", "utils/Enums", "utils/CommonViewFunction", "moment", "utils/Globals" ], function(require, Backbone, EntityBusinessMetaDataView_tmpl, EntityBusinessMetaDataItemView, VEntity, Utils, Messages, Enums, CommonViewFunction, moment, Globals) {
 
-     "use strict";
 
-     return Backbone.Marionette.CompositeView.extend({
 
-         _viewName: "EntityBusinessMetaDataView",
 
-         template: EntityBusinessMetaDataView_tmpl,
 
-         childView: EntityBusinessMetaDataItemView,
 
-         childViewContainer: "[data-id='itemView']",
 
-         childViewOptions: function() {
 
-             return {
 
-                 editMode: this.editMode,
 
-                 entity: this.entity,
 
-                 businessMetadataCollection: this.businessMetadataCollection,
 
-                 enumDefCollection: this.enumDefCollection
 
-             };
 
-         },
 
-         templateHelpers: function() {
 
-             return {
 
-                 readOnlyEntity: this.readOnlyEntity
 
-             };
 
-         },
 
-         ui: {
 
-             addItem: "[data-id='addItem']",
 
-             addBusinessMetadata: "[data-id='addBusinessMetadata']",
 
-             saveBusinessMetadata: "[data-id='saveBusinessMetadata']",
 
-             businessMetadataTree: "[data-id='businessMetadataTree']",
 
-             cancel: "[data-id='cancel']",
 
-             businessMetadataHeader: ".businessMetaDataPanel .panel-heading.main-parent"
 
-         },
 
-         events: function() {
 
-             var events = {};
 
-             return events["click " + this.ui.addItem] = "createNameElement", events["click " + this.ui.addBusinessMetadata] = "onAddBusinessMetadata", 
 
-             events["click " + this.ui.saveBusinessMetadata] = "onSaveBusinessMetadata", events["click " + this.ui.cancel] = "onCancel", 
 
-             events["click " + this.ui.businessMetadataHeader] = "onHeaderClick", events;
 
-         },
 
-         initialize: function(options) {
 
-             var that = this;
 
-             _.extend(this, _.pick(options, "entity", "businessMetadataCollection", "enumDefCollection", "guid", "fetchCollection")), 
 
-             this.editMode = !1, this.readOnlyEntity = Enums.entityStateReadOnly[this.entity.status], 
 
-             this.$("editBox").hide(), this.actualCollection = new Backbone.Collection(_.map(this.entity.businessAttributes, function(val, key) {
 
-                 var foundBusinessMetadata = that.businessMetadataCollection[key];
 
-                 return foundBusinessMetadata && _.each(val, function(aVal, aKey) {
 
-                     var foundAttr = _.find(foundBusinessMetadata, function(o) {
 
-                         return o.name === aKey;
 
-                     });
 
-                     foundAttr && (val[aKey] = {
 
-                         value: aVal,
 
-                         typeName: foundAttr.typeName
 
-                     });
 
-                 }), _.extend({}, val, {
 
-                     __internal_UI_businessMetadataName: key
 
-                 });
 
-             })), this.collection = new Backbone.Collection(), this.entityModel = new VEntity();
 
-         },
 
-         onHeaderClick: function() {
 
-             var that = this;
 
-             $(".businessMetaDataPanel").on("hidden.bs.collapse", function(e) {
 
-                 that.ui.cancel.hide(), that.ui.saveBusinessMetadata.hide(), that.ui.addBusinessMetadata.show(), 
 
-                 that.editMode = !1, that.ui.businessMetadataTree.show(), that.$(".editBox").hide(), 
 
-                 that.updateToActualData(), that.collection && 0 === that.collection.length ? that.ui.addBusinessMetadata.text("Add") : that.ui.addBusinessMetadata.text("Edit");
 
-             });
 
-         },
 
-         updateToActualData: function(options) {
 
-             var silent = options && options.silent || !1;
 
-             this.collection.reset($.extend(!0, [], this.actualCollection.toJSON()), {
 
-                 silent: silent
 
-             });
 
-         },
 
-         onAddBusinessMetadata: function() {
 
-             this.ui.addBusinessMetadata.hide(), this.ui.saveBusinessMetadata.show(), this.ui.cancel.show(), 
 
-             this.editMode = !0, this.ui.businessMetadataTree.hide(), this.$(".editBox").show(), 
 
-             this.updateToActualData({
 
-                 silent: !0
 
-             }), 0 === this.collection.length ? this.createNameElement() : this.collection.trigger("reset"), 
 
-             this.panelOpenClose();
 
-         },
 
-         onCancel: function() {
 
-             this.ui.cancel.hide(), this.ui.saveBusinessMetadata.hide(), this.ui.addBusinessMetadata.show(), 
 
-             this.editMode = !1, this.ui.businessMetadataTree.show(), this.$(".editBox").hide(), 
 
-             this.updateToActualData(), this.panelOpenClose();
 
-         },
 
-         panelOpenClose: function() {
 
-             var collection = this.editMode ? this.collection : this.actualCollection, headingEl = this.$el.find(".panel-heading.main-parent");
 
-             collection && 0 === collection.length ? this.ui.addBusinessMetadata.text("Add") : (this.ui.addBusinessMetadata.text("Edit"), 
 
-             headingEl.hasClass("collapsed") && headingEl.click());
 
-         },
 
-         validate: function() {
 
-             var validation = !0;
 
-             return this.$el.find('.custom-col-1[data-id="value"] [data-key]').each(function(el) {
 
-                 var val = $(this).val(), elIsSelect2 = $(this).hasClass("select2-hidden-accessible");
 
-                 _.isString(val) && (val = val.trim()), _.isEmpty(val) ? (validation && (validation = !1), 
 
-                 elIsSelect2 ? $(this).siblings(".select2").find(".select2-selection").attr("style", "border-color : red !important") : $(this).css("borderColor", "red")) : elIsSelect2 ? $(this).siblings(".select2").find(".select2-selection").attr("style", "") : $(this).css("borderColor", "");
 
-             }), validation;
 
-         },
 
-         onSaveBusinessMetadata: function() {
 
-             var that = this;
 
-             if (this.validate()) {
 
-                 var nData = this.generateData();
 
-                 return 0 === this.actualCollection.length && _.isEmpty(nData) ? void this.onCancel() : void this.entityModel.saveBusinessMetadataEntity(this.guid, {
 
-                     data: JSON.stringify(nData),
 
-                     type: "POST",
 
-                     success: function(data) {
 
-                         Utils.notifySuccess({
 
-                             content: "一个或多个业务元数据属性" + Messages.getAbbreviationMsg(!0, "editSuccessMessage")
 
-                         }), that.entity.businessAttributes = data, that.ui.businessMetadataTree.html(""), 
 
-                         that.editMode = !1, that.fetchCollection(), that.onCancel();
 
-                     },
 
-                     complete: function(model, response) {}
 
-                 });
 
-             }
 
-         },
 
-         generateData: function() {
 
-             var finalObj = {};
 
-             return this.collection.forEach(function(model) {
 
-                 if (!model.has("addAttrButton")) {
 
-                     var businessMetadataName = model.get("__internal_UI_businessMetadataName"), modelObj = model.toJSON();
 
-                     _.each(modelObj, function(o, k) {
 
-                         return "isNew" === k || "__internal_UI_businessMetadataName" === k ? void delete modelObj[k] : void (_.isObject(o) && void 0 !== o.value && (modelObj[k] = o.value));
 
-                     }), void 0 !== businessMetadataName && (finalObj[businessMetadataName] ? finalObj[businessMetadataName] = _.extend(finalObj[businessMetadataName], modelObj) : finalObj[businessMetadataName] = modelObj);
 
-                 }
 
-             }), _.isEmpty(finalObj) && this.actualCollection.forEach(function(model) {
 
-                 var businessMetadataName = model.get("__internal_UI_businessMetadataName");
 
-                 businessMetadataName && (finalObj[businessMetadataName] = {});
 
-             }), finalObj;
 
-         },
 
-         createNameElement: function(options) {
 
-             var modelObj = {
 
-                 isNew: !0
 
-             };
 
-             this.collection.unshift(modelObj);
 
-         },
 
-         renderBusinessMetadata: function() {
 
-             var that = this, li = "";
 
-             this.actualCollection.forEach(function(obj) {
 
-                 var attrLi = "";
 
-                 _.each(obj.attributes, function(val, key) {
 
-                     if ("__internal_UI_businessMetadataName" !== key) {
 
-                         var newVal = val;
 
-                         _.isObject(val) && !_.isUndefinedNull(val.value) && (newVal = val.value, newVal.length > 0 && val.typeName.indexOf("date") > -1 && (newVal = _.map(newVal, function(dates) {
 
-                             return Utils.formatDate({
 
-                                 date: dates,
 
-                                 zone: !1,
 
-                                 dateFormat: Globals.dateFormat
 
-                             });
 
-                         })), "date" === val.typeName && (newVal = Utils.formatDate({
 
-                             date: newVal,
 
-                             zone: !1,
 
-                             dateFormat: Globals.dateFormat
 
-                         }))), attrLi += "<tr><td class='business-metadata-detail-attr-key'>" + _.escape(key) + " (" + _.escape(val.typeName) + ")</td><td>" + _.escape(newVal) + "</td></tr>";
 
-                     }
 
-                 }), li += that.associateAttributePanel(obj, attrLi);
 
-             });
 
-             var html = li;
 
-             "" === html && this.readOnlyEntity === !1 && (html = '<div class="col-md-12"> 尚未有业务元数据被创建。如果向创建业务元数据,请点击 <a href="javascript:void(0)" data-id="addBusinessMetadata">这里</a></div>'),
 
-             this.ui.businessMetadataTree.html(html);
 
-         },
 
-         associateAttributePanel: function(obj, tableBody) {
 
-             return '<div class="panel panel-default custom-panel expand_collapse_panel-icon no-border business-metadata-detail-attr"><div class="panel-heading" data-toggle="collapse" href="#' + _.escape(obj.get("__internal_UI_businessMetadataName")) + '" aria-expanded="true" style="width: 90%;"><h4 class="panel-title"> <a>' + _.escape(obj.get("__internal_UI_businessMetadataName")) + '</a></h4><div class="btn-group pull-left"> <button type="button" title="折叠"><i class="ec-icon fa"></i></button></div></div><div id="' + _.escape(obj.get("__internal_UI_businessMetadataName")) + '" class="panel-collapse collapse in"><div class="panel-body"><table class="table bold-key">' + tableBody + "</table></div></div></div>";
 
-         },
 
-         onRender: function() {
 
-             this.actualCollection && this.actualCollection.length && (this.$el.find(".panel-heading.main-parent").removeClass("collapsed").attr("aria-expanded", "true"), 
 
-             this.$el.find("#businessMetadataCollapse").addClass("in").removeAttr("style"), this.ui.addBusinessMetadata.text("Edit")), 
 
-             this.renderBusinessMetadata();
 
-         }
 
-     });
 
- });
 
 
  |