ATLAS-3349:UI: Unable to edit AtlasServer entity with custom Required fields.fixed

Signed-off-by: Nikhil Bonte <nbonte@apache.org>
diff --git a/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js b/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
index ec06a75..5e53475 100644
--- a/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
+++ b/dashboardv2/public/js/views/entity/CreateEntityLayoutView.js
@@ -57,8 +57,7 @@
                 toggleRequired: 'input[name="toggleRequired"]',
                 assetName: "[data-id='assetName']",
                 entityInput: "[data-id='entityInput']",
-                entitySelectionBox: "[data-id='entitySelectionBox']",
-
+                entitySelectionBox: "[data-id='entitySelectionBox']"
             },
             /** ui events hash */
             events: function() {
@@ -434,23 +433,31 @@
                 that.initilizeElements();
             },
             initilizeElements: function() {
-                var that = this;
+                var that = this,
+                    $createTime = this.modal.$el.find('input[name="createTime"]'),
+                    dateObj = {
+                        "singleDatePicker": true,
+                        "showDropdowns": true,
+                        "startDate": new Date(),
+                        locale: {
+                            format: Globals.dateFormat
+                        }
+                    };
                 this.$('input[data-type="date"]').each(function() {
                     if (!$(this).data('daterangepicker')) {
-                        var dateObj = {
-                            "singleDatePicker": true,
-                            "showDropdowns": true,
-                            "startDate": new Date(),
-                            locale: {
-                                format: Globals.dateFormat
-                            }
-                        };
                         if (that.guid && this.value.length) {
                             dateObj["startDate"] = new Date(Number(this.value));
                         }
+                        if ($(this).attr('name') === "modifiedTime") {
+                            dateObj["minDate"] = $createTime.val();
+                        }
                         $(this).daterangepicker(dateObj);
                     }
                 });
+                modifiedDateObj = _.extend({}, dateObj);
+                $createTime.on('apply.daterangepicker', function(ev, picker) {
+                    that.modal.$el.find('input[name="modifiedTime"]').daterangepicker(_.extend(modifiedDateObj, { "minDate": $createTime.val() }));
+                });
                 this.initializeValidation();
                 if (this.ui.entityInputData.find('fieldset').length > 0 && this.ui.entityInputData.find('select.true,input.true').length === 0) {
                     this.requiredAllToggle(this.ui.entityInputData.find('select.true,input.true').length === 0);
@@ -588,6 +595,7 @@
                     ' data-attribute="' + isAttribute + '"' +
                     ' data-relation="' + isRelation + '"' +
                     ' placeholder="' + name + '"' +
+                    ' name="' + name + '"' +
                     ' data-id="entityInput">';
             },
             getElement: function(object) {
@@ -849,7 +857,7 @@
                     if (that.guid) {
                         var dataValue = that.entityData.get("entity").attributes[keyData],
                             entities = that.entityData.get("entity").attributes,
-                            relationshipType = that.entityData.get("entity").relationshipAttributes[keyData],
+                            relationshipType = that.entityData.get("entity").relationshipAttributes ? that.entityData.get("entity").relationshipAttributes[keyData] : null,
                             referredEntities = that.entityData.get("referredEntities"),
                             selectedValue = [],
                             select2Options = [];
diff --git a/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js b/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
index d05fe69..0532164 100644
--- a/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
+++ b/dashboardv3/public/js/views/entity/CreateEntityLayoutView.js
@@ -437,23 +437,31 @@
                 that.initilizeElements();
             },
             initilizeElements: function() {
-                var that = this;
+                var that = this,
+                    $createTime = this.modal.$el.find('input[name="createTime"]'),
+                    dateObj = {
+                        "singleDatePicker": true,
+                        "showDropdowns": true,
+                        "startDate": new Date(),
+                        locale: {
+                            format: Globals.dateFormat
+                        }
+                    };
                 this.$('input[data-type="date"]').each(function() {
                     if (!$(this).data('daterangepicker')) {
-                        var dateObj = {
-                            "singleDatePicker": true,
-                            "showDropdowns": true,
-                            "startDate": new Date(),
-                            locale: {
-                                format: Globals.dateFormat
-                            }
-                        };
                         if (that.guid && this.value.length) {
                             dateObj["startDate"] = new Date(Number(this.value));
                         }
+                        if ($(this).attr('name') === "modifiedTime") {
+                            dateObj["minDate"] = $createTime.val();
+                        }
                         $(this).daterangepicker(dateObj);
                     }
                 });
+                modifiedDateObj = _.extend({}, dateObj);
+                $createTime.on('apply.daterangepicker', function(ev, picker) {
+                    that.modal.$el.find('input[name="modifiedTime"]').daterangepicker(_.extend(modifiedDateObj, { "minDate": $createTime.val() }));
+                });
                 this.initializeValidation();
                 if (this.ui.entityInputData.find('fieldset').length > 0 && this.ui.entityInputData.find('select.true,input.true').length === 0) {
                     this.requiredAllToggle(this.ui.entityInputData.find('select.true,input.true').length === 0);
@@ -591,6 +599,7 @@
                     ' data-attribute="' + isAttribute + '"' +
                     ' data-relation="' + isRelation + '"' +
                     ' placeholder="' + name + '"' +
+                    ' name="' + name + '"' +
                     ' data-id="entityInput">';
             },
             getElement: function(object) {
@@ -854,7 +863,7 @@
                     if (that.guid) {
                         var dataValue = that.entityData.get("entity").attributes[keyData],
                             entities = that.entityData.get("entity").attributes,
-                            relationshipType = that.entityData.get("entity").relationshipAttributes[keyData],
+                            relationshipType = that.entityData.get("entity").relationshipAttributes ? that.entityData.get("entity").relationshipAttributes[keyData] : null,
                             referredEntities = that.entityData.get("referredEntities"),
                             selectedValue = [],
                             select2Options = [];