Commit c3e1eee6c9ee8e8ac956791d28b3db980bd241a6

Authored by Volodymyr Babak
1 parent aa947644

Fixed createdTime storage. Fixed copy edge secret and key button

... ... @@ -98,6 +98,7 @@ public abstract class AbstractEdgeEntity<T extends Edge> extends BaseSqlEntity<T
98 98 if (edge.getId() != null) {
99 99 this.setUuid(edge.getId().getId());
100 100 }
  101 + this.setCreatedTime(edge.getCreatedTime());
101 102 if (edge.getTenantId() != null) {
102 103 this.tenantId = edge.getTenantId().getId();
103 104 }
... ... @@ -119,6 +120,7 @@ public abstract class AbstractEdgeEntity<T extends Edge> extends BaseSqlEntity<T
119 120
120 121 public AbstractEdgeEntity(EdgeEntity edgeEntity) {
121 122 this.setId(edgeEntity.getId());
  123 + this.setCreatedTime(edgeEntity.getCreatedTime());
122 124 this.tenantId = edgeEntity.getTenantId();
123 125 this.customerId = edgeEntity.getCustomerId();
124 126 this.rootRuleChainId = edgeEntity.getRootRuleChainId();
... ... @@ -149,7 +151,7 @@ public abstract class AbstractEdgeEntity<T extends Edge> extends BaseSqlEntity<T
149 151
150 152 protected Edge toEdge() {
151 153 Edge edge = new Edge(new EdgeId(getUuid()));
152   - edge.setCreatedTime(Uuids.unixTimestamp(getUuid()));
  154 + edge.setCreatedTime(createdTime);
153 155 if (tenantId != null) {
154 156 edge.setTenantId(new TenantId(tenantId));
155 157 }
... ...
... ... @@ -132,56 +132,50 @@
132 132 [required]="true"
133 133 [entityType]="entityType.EDGE">
134 134 </tb-entity-subtype-autocomplete>
135   - <div fxLayout="row" [fxShow]="edgeScope === 'tenant'">
136   - <fieldset fxFlex>
137   - <div class="tb-hint" [innerHTML]="'edge.edge-license-key-hint' | translate"></div>
138   - <mat-form-field class="mat-block">
139   - <mat-label translate>edge.edge-license-key</mat-label>
140   - <input matInput formControlName="edgeLicenseKey" required>
141   - <mat-error *ngIf="entityForm.get('edgeLicenseKey').hasError('required')">
142   - {{ 'edge.edge-license-key-required' | translate }}
143   - </mat-error>
144   - </mat-form-field>
145   - </fieldset>
146   - </div>
147   - <div fxLayout="row" [fxShow]="edgeScope === 'tenant'">
148   - <fieldset fxFlex>
149   - <div translate class="tb-hint">edge.cloud-endpoint-hint</div>
150   - <mat-form-field class="mat-block">
151   - <mat-label translate>edge.cloud-endpoint</mat-label>
152   - <input matInput formControlName="cloudEndpoint" required>
153   - <mat-error *ngIf="entityForm.get('cloudEndpoint').hasError('required')">
154   - {{ 'edge.cloud-endpoint-required' | translate }}
155   - </mat-error>
156   - </mat-form-field>
157   - </fieldset>
158   - </div>
159   - <div fxLayout="row" [fxShow]="edgeScope === 'tenant'">
160   - <fieldset fxFlex disabled>
161   - <mat-form-field class="mat-block" fxFlex>
162   - <mat-label translate>edge.edge-key</mat-label>
163   - <input matInput formControlName="routingKey">
164   - </mat-form-field>
165   - </fieldset>
166   - <button mat-button mat-icon-button type="button" ngxClipboard (cbOnSuccess)="onEdgeInfoCopied('key')"
167   - [cbContent]="entityForm?.get('routingKey').value"
168   - matTooltip="{{'edge.copy-edge-key' | translate}}">
169   - <mat-icon svgIcon="mdi:clipboard-arrow-left"></mat-icon>
170   - </button>
  135 + <div [fxShow]="edgeScope === 'tenant'">
  136 + <div class="tb-hint" [innerHTML]="'edge.edge-license-key-hint' | translate"></div>
  137 + <mat-form-field class="mat-block">
  138 + <mat-label translate>edge.edge-license-key</mat-label>
  139 + <input matInput formControlName="edgeLicenseKey" required>
  140 + <mat-error *ngIf="entityForm.get('edgeLicenseKey').hasError('required')">
  141 + {{ 'edge.edge-license-key-required' | translate }}
  142 + </mat-error>
  143 + </mat-form-field>
171 144 </div>
172   - <div fxLayout="row" [fxShow]="edgeScope === 'tenant'">
173   - <fieldset fxFlex disabled>
174   - <mat-form-field class="mat-block" fxFlex>
175   - <mat-label translate>edge.edge-secret</mat-label>
176   - <input matInput formControlName="secret">
177   - </mat-form-field>
178   - </fieldset>
179   - <button mat-button mat-icon-button type="button" ngxClipboard (cbOnSuccess)="onEdgeInfoCopied('secret')"
180   - [cbContent]="entityForm?.get('secret').value"
181   - matTooltip="{{'edge.copy-edge-secret' | translate}}">
182   - <mat-icon svgIcon="mdi:clipboard-arrow-left"></mat-icon>
183   - </button>
  145 + <div [fxShow]="edgeScope === 'tenant'">
  146 + <div translate class="tb-hint">edge.cloud-endpoint-hint</div>
  147 + <mat-form-field class="mat-block">
  148 + <mat-label translate>edge.cloud-endpoint</mat-label>
  149 + <input matInput formControlName="cloudEndpoint" required>
  150 + <mat-error *ngIf="entityForm.get('cloudEndpoint').hasError('required')">
  151 + {{ 'edge.cloud-endpoint-required' | translate }}
  152 + </mat-error>
  153 + </mat-form-field>
184 154 </div>
  155 + </fieldset>
  156 + <div fxLayout="row" [fxShow]="edgeScope === 'tenant'">
  157 + <mat-form-field class="mat-block" fxFlex>
  158 + <mat-label translate>edge.edge-key</mat-label>
  159 + <input matInput formControlName="routingKey">
  160 + </mat-form-field>
  161 + <button mat-button mat-icon-button type="button" ngxClipboard (cbOnSuccess)="onEdgeInfoCopied('key')"
  162 + [cbContent]="entityForm?.get('routingKey').value"
  163 + matTooltip="{{'edge.copy-edge-key' | translate}}">
  164 + <mat-icon svgIcon="mdi:clipboard-arrow-left"></mat-icon>
  165 + </button>
  166 + </div>
  167 + <div fxLayout="row" [fxShow]="edgeScope === 'tenant'">
  168 + <mat-form-field class="mat-block" fxFlex>
  169 + <mat-label translate>edge.edge-secret</mat-label>
  170 + <input matInput formControlName="secret">
  171 + </mat-form-field>
  172 + <button mat-button mat-icon-button type="button" ngxClipboard (cbOnSuccess)="onEdgeInfoCopied('secret')"
  173 + [cbContent]="entityForm?.get('secret').value"
  174 + matTooltip="{{'edge.copy-edge-secret' | translate}}">
  175 + <mat-icon svgIcon="mdi:clipboard-arrow-left"></mat-icon>
  176 + </button>
  177 + </div>
  178 + <fieldset [disabled]="(isLoading$ | async) || !isEdit">
185 179 <mat-form-field class="mat-block">
186 180 <mat-label translate>edge.label</mat-label>
187 181 <input matInput formControlName="label">
... ...
... ... @@ -69,15 +69,15 @@ export class EdgeComponent extends EntityComponent<EdgeInfo> {
69 69 }
70 70
71 71 buildForm(entity: EdgeInfo): FormGroup {
72   - return this.fb.group(
  72 + const form = this.fb.group(
73 73 {
74 74 name: [entity ? entity.name : '', [Validators.required]],
75 75 type: [entity?.type ? entity.type : 'default', [Validators.required]],
76 76 label: [entity ? entity.label : ''],
77 77 cloudEndpoint: [null, [Validators.required]],
78 78 edgeLicenseKey: ['', [Validators.required]],
79   - routingKey: guid(),
80   - secret: this.generateSecret(20),
  79 + routingKey: this.fb.control({ value: entity ? entity.routingKey : null, disabled: true }),
  80 + secret: this.fb.control({ value: entity ? entity.secret : null, disabled: true }),
81 81 additionalInfo: this.fb.group(
82 82 {
83 83 description: [entity && entity.additionalInfo ? entity.additionalInfo.description : '']
... ... @@ -85,6 +85,8 @@ export class EdgeComponent extends EntityComponent<EdgeInfo> {
85 85 )
86 86 }
87 87 );
  88 + this.checkIsNewEdge(entity, form);
  89 + return form;
88 90 }
89 91
90 92 updateForm(entity: EdgeInfo) {
... ... @@ -100,6 +102,20 @@ export class EdgeComponent extends EntityComponent<EdgeInfo> {
100 102 description: entity.additionalInfo ? entity.additionalInfo.description : ''
101 103 }
102 104 });
  105 + this.checkIsNewEdge(entity, this.entityForm);
  106 + }
  107 +
  108 + updateFormState() {
  109 + super.updateFormState();
  110 + this.entityForm.get('routingKey').disable({ emitEvent: false });
  111 + this.entityForm.get('secret').disable({ emitEvent: false });
  112 + }
  113 +
  114 + private checkIsNewEdge(entity: EdgeInfo, form: FormGroup) {
  115 + if (entity && !entity.id) {
  116 + form.get('routingKey').patchValue(guid(), { emitEvent: false });
  117 + form.get('secret').patchValue(this.generateSecret(20), { emitEvent: false });
  118 + }
103 119 }
104 120
105 121 onEdgeIdCopied($event) {
... ...