summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-06-09 03:19:04 +0300
committerMichael Lando <ml636r@att.com>2017-06-09 03:19:04 +0300
commited64b5edff15e702493df21aa3230b81593e6133 (patch)
treea4cb01fdaccc34930a8db403a3097c0d1e40914b /catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal
parent280f8015d06af1f41a3ef12e8300801c7a5e0d54 (diff)
[SDC-29] catalog 1707 rebase commit.
Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal')
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view-model.ts97
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view.html74
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal.less63
3 files changed, 234 insertions, 0 deletions
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view-model.ts b/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view-model.ts
new file mode 100644
index 0000000000..48aa47fdd0
--- /dev/null
+++ b/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view-model.ts
@@ -0,0 +1,97 @@
+'use strict';
+import {DataTypesService} from "app/services/data-types-service";
+import {PropertyModel, InputPropertyBase, Component} from "app/models";
+import {IPropertyFormBaseViewScope, PropertyFormBaseView} from "../base-property-form/property-form-base-model";
+import {PROPERTY_TYPES} from "app/utils/constants";
+
+interface ISelectDataTypeViewModelScope extends IPropertyFormBaseViewScope {
+ selectedPropertiesName:string;
+ dataTypesService:DataTypesService;
+ path:string;
+ isTypeDataType:boolean;
+ myValue:any;
+ isReadOnly:boolean;
+}
+
+export class SelectDataTypeViewModel extends PropertyFormBaseView {
+
+ static '$inject' = [
+ '$scope',
+ '$templateCache',
+ '$uibModalInstance',
+ '$injector',
+ 'originalProperty',
+ 'component',
+ 'filteredProperties',
+ 'Sdc.Services.DataTypesService',
+ 'propertiesMap',
+ '$q'
+ ];
+
+ constructor(protected $scope:ISelectDataTypeViewModelScope,
+ protected $templateCache:ng.ITemplateCacheService,
+ protected $uibModalInstance:ng.ui.bootstrap.IModalServiceInstance,
+ protected $injector:ng.auto.IInjectorService,
+ protected originalProperty:PropertyModel,
+ protected component:Component,
+ protected filteredProperties:Array<PropertyModel>,
+ protected DataTypesService:DataTypesService,
+ private propertiesMap:Array<InputPropertyBase>,
+ private $q:ng.IQService) {
+ super($scope, $uibModalInstance, $injector, originalProperty, component, filteredProperties, DataTypesService);
+
+ this.$templateCache.put("select-datatype-modal-view.html", require('app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view.html'));
+ this.$scope.innerViewSrcUrl = "select-datatype-modal-view.html";
+ this.initChildScope();
+ }
+
+ //scope methods
+ save(isNeedToCloseModal):ng.IPromise<boolean> {
+ let deferred = this.$q.defer();
+ this.$scope.property.propertiesName = this.DataTypesService.selectedPropertiesName;
+ this.$scope.property.input = this.DataTypesService.selectedInput;
+ this.$scope.property.isAlreadySelected = true;
+ this.$uibModalInstance.close(this.$scope.property);
+ deferred.resolve(true);
+ return deferred.promise;
+ };
+
+ private initForNotSimpleType = ():void => {
+ let property = this.$scope.property;
+ this.$scope.isTypeDataType = this.DataTypesService.isDataTypeForPropertyType(this.$scope.property);
+ if (property.type && this.$scope.simpleTypes.indexOf(property.type) == -1) {
+ if (!(property.value || property.defaultValue)) {
+ switch (property.type) {
+ case PROPERTY_TYPES.MAP:
+ this.$scope.myValue = {'': null};
+ break;
+ case PROPERTY_TYPES.LIST:
+ this.$scope.myValue = [];
+ break;
+ default:
+ this.$scope.myValue = {};
+ }
+ } else {
+ this.$scope.myValue = JSON.parse(property.value || property.defaultValue);
+ }
+ }
+ };
+
+ //remove selection property on the modal
+ private removeSelected = ():void => {
+ this.DataTypesService.selectedPropertiesName = null;
+ this.DataTypesService.selectedInput = null;
+ };
+
+ private initChildScope = ():void => {
+ //scope properties
+ this.$scope.forms = {};
+ this.$scope.path = this.$scope.property.name;
+ this.$scope.isArrowsDisabled = true;
+ this.DataTypesService.alreadySelectedProperties = this.propertiesMap;
+ this.$scope.dataTypesService = this.DataTypesService;
+ this.$scope.isReadOnly = true;
+ this.initForNotSimpleType();
+ this.removeSelected();
+ }
+}
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view.html b/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view.html
new file mode 100644
index 0000000000..acb0f292ff
--- /dev/null
+++ b/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal-view.html
@@ -0,0 +1,74 @@
+<!--<div>selectedPropertiesName - {{dataTypesService.selectedPropertiesName}}</div>-->
+<!--<div>selectedInput - {{dataTypesService.selectedInput}}</div>-->
+
+<div data-ng-if="dataTypes" class="default-value-section i-sdc-form-item">
+ <label class="i-sdc-form-label">Default Value</label>
+ <div data-ng-if="isTypeDataType">
+ <select-fields-structure value-obj-ref="myValue"
+ type-name="property.type"
+ parent-form-obj="forms.editForm"
+ fields-prefix-name="currentPropertyIndex"
+ read-only="true"
+ default-value="{{getDefaultValue()}}"
+ path="{{property.name}}"
+ is-parent-already-input="false"
+ expand-by-default="true"></select-fields-structure>
+
+ </div>
+ <div data-ng-if="!isTypeDataType" ng-switch="property.type">
+ <div ng-switch-when="map">
+
+ <select-type-map value-obj-ref="myValue"
+ schema-property="property.schema.property"
+ parent-form-obj="forms.editForm"
+ fields-prefix-name="currentPropertyIndex"
+ read-only="true"
+ default-value="{{getDefaultValue()}}"
+ max-length="maxLength"></select-type-map>
+ </div>
+ <div ng-switch-when="list">
+ <select-type-list value-obj-ref="myValue"
+ schema-property="property.schema.property"
+ parent-form-obj="forms.editForm"
+ fields-prefix-name="currentPropertyIndex"
+ read-only="true"
+ default-value="{{getDefaultValue()}}"
+ max-length="maxLength"></select-type-list>
+ </div>
+ <div ng-switch-default>
+ <div class="i-sdc-form-item" data-ng-class="{error:(forms.editForm.value.$dirty && forms.editForm.value.$invalid)}">
+ <input class="i-sdc-form-input"
+ data-tests-id="defaultvalue"
+ ng-if="!((property.simpleType||property.type) == 'boolean')"
+ data-ng-maxlength="maxLength"
+ data-ng-disabled="isReadOnly"
+ maxlength="{{maxLength}}"
+ data-ng-model="property.value"
+ type="text"
+ name="value"
+ data-ng-pattern="getValidationPattern((property.simpleType||property.type))"
+ data-ng-model-options="{ debounce: 200 }"
+ data-ng-change="('json'==property.type && forms.editForm.value.$setValidity('pattern', validateJson(property.value)))
+ ||(!forms.editForm.value.$error.pattern && ('integer'==property.type && forms.editForm.value.$setValidity('pattern', validateIntRange(property.value)) || onValueChange()))"
+ data-ng-change=""
+ autofocus />
+ <select class="i-sdc-form-select"
+ data-tests-id="booleantype"
+ ng-if="(property.simpleType||property.type) == 'boolean'"
+ data-ng-disabled="isReadOnly"
+ name="value"
+ data-ng-change="onValueChange()"
+ data-ng-model="property.value">
+ <option value="true">true</option>
+ <option value="false">false</option>
+ </select>
+
+ <div class="input-error" data-ng-show="forms.editForm.value.$dirty && forms.editForm.value.$invalid">
+ <span ng-show="forms.editForm.value.$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Property' }"></span>
+ <span ng-show="forms.editForm.value.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '{{maxLength}}' }"></span>
+ <span ng-show="forms.editForm.value.$error.pattern" translate="PROPERTY_EDIT_PATTERN"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal.less b/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal.less
new file mode 100644
index 0000000000..15e30af4ee
--- /dev/null
+++ b/catalog-ui/src/app/view-models/forms/property-forms/select-datatype-modal/select-datatype-modal.less
@@ -0,0 +1,63 @@
+.sdc-edit-property-container {
+ .scrollbar-container{
+ height: 415px;
+ width: 830px;
+ .perfect-scrollbar;
+ }
+
+ form{
+ width: 813px;
+ [name="description"]{
+ min-height:50px;
+ }
+ }
+
+ .sdc-modal-top-bar{
+ height: 40px;
+ .sdc-modal-top-bar-buttons {
+ float: right;
+
+ > span:not(.delimiter){
+ vertical-align: middle;
+ .hand;
+
+ &.sprite-new {
+ text-indent: 100%;
+ }
+ &.disabled, &:hover.disabled {
+ pointer-events: none;
+ }
+ }
+
+ .delete-btn{
+ margin-right: 6px;
+ }
+
+ .left-arrow{
+ margin-right: 8px;
+ }
+
+ .delimiter {
+ height: 20px;
+ width: 1px;
+ background-color: #959595;
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 10px;
+ }
+ }
+ }
+
+ .w-sdc-form-note {
+ .h_9;
+ display: block;
+ position: relative;
+ top: 13px;
+ }
+
+ .default-value-section{
+ border-top: solid 1px @main_color_a;
+ padding-top: 15px;
+ margin-top: 15px;
+ }
+}