@@ -146,8 +146,7 @@ <h3>{{ (datatargetId ? "FORM.EDIT-DATATARGET" : "FORM.CREATE-NEW-DATATARGET") |
146146 matTooltipHideDelay ="2000 "
147147 matTooltipPosition ="above "
148148 matTooltipShowDelay ="600 "
149- >
150- </ fa-icon >
149+ />
151150 < input
152151 [(ngModel)] ="datatarget.openDataDkDataset.resourceTitle "
153152 [ngClass] ="{
@@ -240,19 +239,27 @@ <h3>{{ (datatargetId ? "FORM.EDIT-DATATARGET" : "FORM.CREATE-NEW-DATATARGET") |
240239 </ div >
241240 </ div >
242241
243- <!-- Keywords -->
242+ <!-- Theme -->
244243 < div class ="row mb-2 ">
245244 < div class ="form-group mt-3 col-12 ">
246245 < label class ="form-label " for ="openDataDkDataset.keywords ">
247- {{ "OPENDATADK.QUESTION.GIVE-OPENDATADK-KEYWORDS " | translate }}
246+ {{ "OPENDATADK.QUESTION.GIVE-OPENDATADK-THEME " | translate }}
248247 </ label >
248+ < fa-icon
249+ [icon] ="faQuestionCircle "
250+ [matTooltip] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-THEME-INFO' | translate "
251+ class ="form-info-icon "
252+ matTooltipHideDelay ="2000 "
253+ matTooltipPosition ="above "
254+ matTooltipShowDelay ="600 "
255+ />
249256 < mat-select
250257 [(value)] ="datatarget.openDataDkDataset.keywords "
251258 [ngClass] ="{
252259 'is-invalid': formFailedSubmit && errorFields.includes('openDataDkDataset.keywords'),
253260 'is-valid': formFailedSubmit && !errorFields.includes('openDataDkDataset.keywords')
254261 } "
255- [placeholder] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-KEYWORDS -PLACEHOLDER' | translate "
262+ [placeholder] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-THEME -PLACEHOLDER' | translate "
256263 class ="form-control "
257264 id ="openDataDkDataset.keywords "
258265 multiple
@@ -266,13 +273,111 @@ <h3>{{ (datatargetId ? "FORM.EDIT-DATATARGET" : "FORM.CREATE-NEW-DATATARGET") |
266273 </ div >
267274 </ div >
268275
276+ <!-- Keywords tags -->
277+ < div class ="row mb-2 ">
278+ < div class ="form-group mt-3 col-12 ">
279+ < label class ="form-label " for ="openDataDkDataset.keyWordTags ">
280+ {{ "OPENDATADK.QUESTION.GIVE-OPENDATADK-TAGS" | translate }}
281+ </ label >
282+ < fa-icon
283+ [icon] ="faQuestionCircle "
284+ [matTooltip] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-TAGS-INFO' | translate "
285+ class ="form-info-icon "
286+ matTooltipHideDelay ="2000 "
287+ matTooltipPosition ="above "
288+ matTooltipShowDelay ="600 "
289+ />
290+ < input
291+ [(ngModel)] ="datatarget.openDataDkDataset.keywordTags "
292+ [ngClass] ="{
293+ 'is-invalid': formFailedSubmit && errorFields.includes('openDataDkDataset.keywordTags'),
294+ 'is-valid': formFailedSubmit && !errorFields.includes('openDataDkDataset.keywordTags')
295+ } "
296+ [placeholder] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-TAGS-PLACEHOLDER' | translate "
297+ class ="form-control "
298+ id ="openDataDkDataset.keyWordTags "
299+ name ="openDataDkDataset.keyWordTags "
300+ type ="text "
301+ />
302+ </ div >
303+ </ div >
304+
305+ <!-- Update frequency -->
306+ < div class ="row mb-2 ">
307+ < div class ="form-group mt-3 col-12 ">
308+ < label class ="form-label " for ="openDataDkDataset.updateFrequency ">
309+ {{ "OPENDATADK.QUESTION.GIVE-UPDATE-FREQUENCY" | translate }}
310+ </ label >
311+ < mat-select
312+ [(value)] ="datatarget.openDataDkDataset.updateFrequency "
313+ [ngClass] ="{
314+ 'is-invalid': formFailedSubmit && errorFields.includes('openDataDkDataset.updateFrequency'),
315+ 'is-valid': formFailedSubmit && !errorFields.includes('openDataDkDataset.updateFrequency')
316+ } "
317+ [placeholder] ="'OPENDATADK.QUESTION.GIVE-UPDATE-FREQUENCY-PLACEHOLDER' | translate "
318+ class ="form-control "
319+ id ="openDataDkDataset.updateFrequency "
320+ >
321+ @for (frequency of selectableUpdateFrequencies; track frequency) {
322+ < mat-option
323+ [value] ="frequency "> {{ "OPENDATADK.QUESTION.UPDATE-FREQUENCY-OPTIONS." + frequency | translate }}
324+ </ mat-option >
325+ }
326+ </ mat-select >
327+ </ div >
328+ </ div >
329+
330+ <!-- Documentation url -->
331+ < div class ="row mb-2 ">
332+ < div class ="form-group mt-3 col-12 ">
333+ < label class ="form-label " for ="openDataDkDataset.documentationUrl ">
334+ {{ "OPENDATADK.QUESTION.GIVE-OPENDATADK-DOCUMENTATION-URL" | translate }}
335+ </ label >
336+ < fa-icon
337+ [icon] ="faQuestionCircle "
338+ [matTooltip] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-DOCUMENTATION-URL-INFO' | translate "
339+ class ="form-info-icon "
340+ matTooltipHideDelay ="2000 "
341+ matTooltipPosition ="above "
342+ matTooltipShowDelay ="600 "
343+ />
344+ < input
345+ [(ngModel)] ="datatarget.openDataDkDataset.documentationUrl "
346+ [ngClass] ="{
347+ 'is-invalid': formFailedSubmit && errorFields.includes('openDataDkDataset.documentationUrl'),
348+ 'is-valid': formFailedSubmit && !errorFields.includes('openDataDkDataset.documentationUrl')
349+ } "
350+ [placeholder] ="'OPENDATADK.QUESTION.GIVE-OPENDATADK-DOCUMENTATION-URL-PLACEHOLDER' | translate "
351+ class ="form-control "
352+ id ="openDataDkDataset.documentationUrl "
353+ name ="openDataDkDataset.documentationUrl "
354+ type ="text "
355+ />
356+ </ div >
357+ </ div >
358+
359+ <!-- Datavejviser checkmark -->
360+ < div class ="row mt-3 ">
361+ < div class ="col-12 ">
362+ < mat-checkbox [(ngModel)] ="datatarget.openDataDkDataset.dataDirectory " name ="openDataDkDataset.dataDirectory ">
363+ < p >
364+ {{ "OPENDATADK.QUESTION.DATA-DIRECTORY-DESCRIPTION" | translate }}
365+ < a
366+ href ="https://datavejviser.dk/om-datavejviser#vilkaar-for-anvendelse-af-data-og-datasaetbeskrivelser-i-datavejviseren ">
367+ Datavejviser
368+ </ a >
369+ </ p >
370+ </ mat-checkbox >
371+ </ div >
372+ </ div >
373+
269374 <!-- Terms and conditions checkmark -->
270375 < div class ="row mt-3 ">
271376 < div class ="col-12 ">
272377 < mat-checkbox [(ngModel)] ="datatarget.openDataDkDataset.acceptTerms " name ="acceptTerms ">
273378 < p >
274379 {{ "OPENDATADK.QUESTION.ACCEPT-TERMS-PART-ONE" | translate }}
275- < a href =" https://creativecommons.org/publicdomain/zero/1.0/deed.da ">
380+ < a href =" https://creativecommons.org/publicdomain/zero/1.0/deed.da " target =" _blank " >
276381 {{ "OPENDATADK.QUESTION.TERMS-AND-CONDITIONS" | translate }}
277382 </ a >
278383 </ p >
@@ -295,60 +400,60 @@ <h6 class="mt-3">{{ "QUESTION.DATATARGET.RELATIONS" | translate }}</h6>
295400 @if (devices && payloadDecoders && payloadDeviceDatatarget?.length > 0) {
296401 < table class ="table table-striped table-bordered ">
297402 < tbody >
298- @for (element of payloadDeviceDatatarget; track element; let i = $index) {
299- < tr [attr.data-index] ="i ">
300- < td >
301- < div class ="row ">
302- < mat-form-field appearance ="fill ">
303- < mat-label > {{ "QUESTION.DATATARGET.SELECT-DEVICES" | translate }}</ mat-label >
304- < mat-select
305- [(value)] ="element.iotDeviceIds "
306- [compareWith] ="payloadDevicesDropdownCompare "
307- multiple
308- name ="devices "
309- >
310- < mat-option class ="filter-option " disabled ="disabled ">
311- < button (click) ="selectAllDevices(i) " class ="mat-primary fill text-sm " mat-raised-button >
312- {{ "QUESTION.DATATARGET.SELECTALLDEVICES" | translate }}
313- </ button >
314- < button (click) ="deSelectAllDevices(i) " class ="mat-primary fill text-sm " mat-raised-button >
315- {{ "QUESTION.DATATARGET.DESELECTALLDEVICES" | translate }}
316- </ button >
317- </ mat-option >
318- @for (device of devices; track device) {
319- < mat-option [value] ="device.id "> {{ device.name }}</ mat-option >
320- }
321- </ mat-select >
322- </ mat-form-field >
323- </ div >
324- </ td >
325- < td >
326- < div class ="row ">
327- < mat-form-field appearance ="fill ">
328- < mat-label > {{ "QUESTION.DATATARGET.SELECT-PAYLOADDECODER" | translate }}</ mat-label >
329- < mat-select [(value)] ="element.payloadDecoderId " matNativeControl name ="payloadDecoderId ">
330- < mat-option [value] ="0 ">
331- {{ "QUESTION.DATATARGET.NO-PAYLOAD-DECODER-SELECTED" | translate }}
332- </ mat-option >
333- @for (payloadDecoder of payloadDecoders; track payloadDecoder) {
334- < mat-option [value] ="payloadDecoder.id ">
335- {{ payloadDecoder.name }}
403+ @for (element of payloadDeviceDatatarget; track element; let i = $index) {
404+ < tr [attr.data-index] ="i ">
405+ < td >
406+ < div class ="row ">
407+ < mat-form-field appearance ="fill ">
408+ < mat-label > {{ "QUESTION.DATATARGET.SELECT-DEVICES" | translate }}</ mat-label >
409+ < mat-select
410+ [(value)] ="element.iotDeviceIds "
411+ [compareWith] ="payloadDevicesDropdownCompare "
412+ multiple
413+ name ="devices "
414+ >
415+ < mat-option class ="filter-option " disabled ="disabled ">
416+ < button (click) ="selectAllDevices(i) " class ="mat-primary fill text-sm " mat-raised-button >
417+ {{ "QUESTION.DATATARGET.SELECTALLDEVICES" | translate }}
418+ </ button >
419+ < button (click) ="deSelectAllDevices(i) " class ="mat-primary fill text-sm " mat-raised-button >
420+ {{ "QUESTION.DATATARGET.DESELECTALLDEVICES" | translate }}
421+ </ button >
422+ </ mat-option >
423+ @for (device of devices; track device) {
424+ < mat-option [value] ="device.id "> {{ device.name }}</ mat-option >
425+ }
426+ </ mat-select >
427+ </ mat-form-field >
428+ </ div >
429+ </ td >
430+ < td >
431+ < div class ="row ">
432+ < mat-form-field appearance ="fill ">
433+ < mat-label > {{ "QUESTION.DATATARGET.SELECT-PAYLOADDECODER" | translate }}</ mat-label >
434+ < mat-select [(value)] ="element.payloadDecoderId " matNativeControl name ="payloadDecoderId ">
435+ < mat-option [value] ="0 ">
436+ {{ "QUESTION.DATATARGET.NO-PAYLOAD-DECODER-SELECTED" | translate }}
336437 </ mat-option >
337- }
338- </ mat-select >
339- </ mat-form-field >
340- </ div >
341- </ td >
342- < td >
343- < a (click) ="openDeleteDialog(i) ">
344- < div class ="text-center m-2 ">
345- < fa-icon [icon] ="faTimesCircle "> </ fa-icon >
346- < p > {{ "DATATARGET.DELETE" | translate }}</ p >
438+ @for (payloadDecoder of payloadDecoders; track payloadDecoder) {
439+ < mat-option [value] ="payloadDecoder.id ">
440+ {{ payloadDecoder.name }}
441+ </ mat-option >
442+ }
443+ </ mat-select >
444+ </ mat-form-field >
347445 </ div >
348- </ a >
349- </ td >
350- </ tr >
351- }
446+ </ td >
447+ < td >
448+ < a (click) ="openDeleteDialog(i) ">
449+ < div class ="text-center m-2 ">
450+ < fa-icon [icon] ="faTimesCircle "> </ fa-icon >
451+ < p > {{ "DATATARGET.DELETE" | translate }}</ p >
452+ </ div >
453+ </ a >
454+ </ td >
455+ </ tr >
456+ }
352457 </ tbody >
353458 </ table >
354459 }
0 commit comments