@dative-gpi/foundation-core-components 1.0.69 → 1.0.71-groupings-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/components/autocompletes/FSAutocompleteChart.vue +15 -8
  2. package/components/autocompletes/FSAutocompleteDashboard.vue +14 -6
  3. package/components/autocompletes/FSAutocompleteDashboardOrganisation.vue +7 -1
  4. package/components/autocompletes/FSAutocompleteDataCategory.vue +11 -5
  5. package/components/autocompletes/FSAutocompleteDataDefinition.vue +7 -1
  6. package/components/autocompletes/FSAutocompleteGroup.vue +7 -1
  7. package/components/autocompletes/FSAutocompleteGrouping.vue +105 -0
  8. package/components/autocompletes/FSAutocompleteLocation.vue +6 -0
  9. package/components/autocompletes/FSAutocompleteManufacturer.vue +8 -0
  10. package/components/autocompletes/FSAutocompleteModel.vue +9 -1
  11. package/components/autocompletes/FSAutocompleteOrganisationType.vue +7 -1
  12. package/components/autocompletes/FSAutocompleteRole.vue +14 -6
  13. package/components/autocompletes/FSAutocompleteServiceAccountRoleOrganisation.vue +7 -1
  14. package/components/autocompletes/FSAutocompleteUserOrganisation.vue +9 -1
  15. package/components/customProperties/FSMetaField.vue +35 -40
  16. package/components/customProperties/FSMetaFormContent.vue +4 -3
  17. package/components/customProperties/FSMetaHistory.vue +2 -2
  18. package/components/customProperties/helpers.ts +57 -165
  19. package/components/entities/FSBaseEntitiesList.vue +12 -2
  20. package/components/entities/FSDialogSelectEntities.vue +19 -2
  21. package/components/entities/FSEntityField.vue +68 -13
  22. package/components/entities/FSSelectEntitiesList.vue +40 -7
  23. package/components/explorers/FSBaseDevicesExplorer.vue +322 -0
  24. package/components/explorers/FSBaseFoldersExplorer.vue +99 -20
  25. package/components/fields/FSMagicConfigField.vue +171 -0
  26. package/components/fields/FSMagicField.vue +214 -0
  27. package/components/lists/FSDataTable.vue +22 -16
  28. package/components/lists/alerts/FSBaseAlertsList.vue +96 -106
  29. package/components/lists/alerts/FSButtonAcknowledgeAlert.vue +4 -4
  30. package/components/lists/authTokens/FSBaseAuthTokensList.vue +6 -4
  31. package/components/lists/chartOrganisationTypes/FSBaseChartOrganisationTypesList.vue +97 -34
  32. package/components/lists/chartOrganisations/FSBaseChartOrganisationsList.vue +98 -34
  33. package/components/lists/charts/FSBaseChartsList.vue +153 -64
  34. package/components/lists/comments/FSBaseCommentsList.vue +39 -23
  35. package/components/lists/connectivityScenarios/FSBaseConnectivityScenariosList.vue +128 -0
  36. package/components/lists/dashboardOrganisationTypes/FSBaseDashboardOrganisationTypesList.vue +41 -8
  37. package/components/lists/dashboards/FSBaseDashboardsList.vue +76 -16
  38. package/components/lists/dashboards/FSSimpleDashboardsList.vue +33 -7
  39. package/components/lists/dataCategories/FSBaseDataCategoriesList.vue +8 -6
  40. package/components/lists/dataDefinitions/FSBaseDataDefinitionsList.vue +8 -5
  41. package/components/lists/deviceOrganisations/FSBaseDeviceOrganisationsList.vue +70 -44
  42. package/components/lists/folders/FSBaseFoldersList.vue +27 -15
  43. package/components/lists/groupings/FSBaseGroupingsList.vue +125 -0
  44. package/components/lists/groups/FSBaseGroupsList.vue +13 -9
  45. package/components/lists/locations/FSBaseLocationsList.vue +17 -13
  46. package/components/lists/models/FSBaseModelsList.vue +10 -5
  47. package/components/lists/playlists/FSSimplePlaylistsList.vue +44 -0
  48. package/components/lists/roleOrganisationTypes/FSBaseRoleOrganisationTypesList.vue +6 -5
  49. package/components/lists/roleOrganisations/FSBaseRoleOrganisationsList.vue +6 -5
  50. package/components/lists/scenarioOrganisationTypes/FSBaseScenarioOrganisationTypesList.vue +45 -8
  51. package/components/lists/scenarioOrganisations/FSBaseScenarioOrganisationsList.vue +45 -7
  52. package/components/lists/scenarios/FSBaseScenariosList.vue +121 -86
  53. package/components/lists/serviceAccountOrganisations/FSBaseServiceAccountOrganisationsList.vue +10 -7
  54. package/components/lists/serviceAccountRoleOrganisations/{FSBaseServiceAccountRoleOrganisations.vue → FSBaseServiceAccountRoleOrganisationsList.vue} +6 -5
  55. package/components/lists/userOrganisations/FSBaseUserOrganisationsList.vue +10 -7
  56. package/components/lists/userOrganisations/FSChipUserOrganisationsList.vue +61 -0
  57. package/components/selects/FSPlotPerSelector.vue +94 -16
  58. package/components/tiles/FSChartTile.vue +71 -0
  59. package/components/tiles/FSDashboardOrganisationTile.vue +3 -3
  60. package/components/tiles/FSDashboardOrganisationTypeTile.vue +3 -3
  61. package/components/tiles/FSDashboardShallowTile.vue +3 -3
  62. package/components/tiles/FSDeviceOrganisationTile.vue +3 -3
  63. package/components/tiles/FSFolderTile.vue +7 -5
  64. package/components/tiles/FSGroupTile.vue +3 -3
  65. package/components/tiles/FSLocationTile.vue +5 -3
  66. package/components/tiles/FSModelTile.vue +64 -0
  67. package/components/tiles/FSServiceAccountOrganisationTile.vue +3 -3
  68. package/components/tiles/FSUserOrganisationTile.vue +3 -3
  69. package/components/treeviews/FSTreeViewGroup.vue +7 -1
  70. package/package.json +9 -9
  71. package/utils/dashboards.ts +4 -4
  72. package/utils/index.ts +0 -1
  73. package/utils/roles.ts +3 -3
  74. package/utils/users.ts +3 -3
  75. package/components/selects/FSAggregationSelector.vue +0 -51
  76. package/components/selects/FSAxisTypeSelector.vue +0 -48
  77. package/components/selects/FSDisplayAsSelector.vue +0 -52
  78. package/components/selects/FSFilterTypeSelector.vue +0 -53
  79. package/components/selects/FSHeatmapRuleSelector.vue +0 -52
  80. package/components/selects/FSOperationOnSelector.vue +0 -51
  81. package/components/selects/FSPlanningTypeSelector.vue +0 -51
  82. package/components/selects/FSSelectEntityType.vue +0 -59
  83. package/components/selects/FSSerieTypeSelector.vue +0 -51
  84. package/utils/charts.ts +0 -137
@@ -2,7 +2,7 @@
2
2
  <FSDataTable
3
3
  :loading="fetchingServiceAccountRoleOrganisations"
4
4
  :items="serviceAccountRoleOrganisations"
5
- :showSelect="$props.editable"
5
+ :selectable="$props.selectable"
6
6
  :tableCode="$props.tableCode"
7
7
  :itemTo="$props.itemTo"
8
8
  :modelValue="$props.modelValue"
@@ -44,7 +44,7 @@
44
44
  >
45
45
  <FSTagGroup
46
46
  variant="slide"
47
- :editable="false"
47
+ :showRemove="false"
48
48
  :tags="item.tags"
49
49
  />
50
50
  </template>
@@ -78,8 +78,9 @@ export default defineComponent({
78
78
  },
79
79
  props: {
80
80
  tableCode: {
81
- type: String,
82
- required: true
81
+ type: String as PropType<string | null>,
82
+ required: false,
83
+ default: null
83
84
  },
84
85
  serviceAccountRoleOrganisationsFilters: {
85
86
  type: Object as PropType<ServiceAccountRoleOrganisationFilters | null>,
@@ -90,7 +91,7 @@ export default defineComponent({
90
91
  type: Function as PropType<(item: ServiceAccountRoleOrganisationInfos) => Partial<RouteLocation>>,
91
92
  required: false
92
93
  },
93
- editable: {
94
+ selectable: {
94
95
  type: Boolean,
95
96
  required: false,
96
97
  default: true
@@ -3,7 +3,7 @@
3
3
  :items="userOrganisations"
4
4
  :itemTo="$props.itemTo"
5
5
  :loading="fetchingUserOrganisations"
6
- :showSelect="$props.editable"
6
+ :selectable="$props.selectable"
7
7
  :tableCode="$props.tableCode"
8
8
  :modelValue="$props.modelValue"
9
9
  @update:modelValue="$emit('update:modelValue', $event)"
@@ -33,6 +33,7 @@
33
33
  height="32px"
34
34
  width="32px"
35
35
  :imageId="item.imageId"
36
+ :thumbnail="true"
36
37
  />
37
38
  </template>
38
39
  <template
@@ -54,7 +55,7 @@
54
55
  >
55
56
  <FSTagGroup
56
57
  variant="slide"
57
- :editable="false"
58
+ :showRemove="false"
58
59
  :tags="item.tags"
59
60
  />
60
61
  </template>
@@ -77,11 +78,12 @@
77
78
  </FSSpan>
78
79
  </template>
79
80
  <template
80
- #item.tile="{ item, toggleSelect }"
81
+ #item.tile="{ index, item, toggleSelect }"
81
82
  >
82
83
  <FSUserOrganisationTileUI
84
+ :key="index"
83
85
  :to="$props.itemTo && $props.itemTo(item)"
84
- :editable="$props.editable"
86
+ :selectable="$props.selectable"
85
87
  :modelValue="isSelected(item.id)"
86
88
  @update:modelValue="toggleSelect(item)"
87
89
  v-bind="item"
@@ -120,8 +122,9 @@ export default defineComponent({
120
122
  },
121
123
  props: {
122
124
  tableCode: {
123
- type: String,
124
- required: true
125
+ type: String as PropType<string | null>,
126
+ required: false,
127
+ default: null
125
128
  },
126
129
  userOrganisationsFilters: {
127
130
  type: Object as PropType<UserOrganisationFilters | null>,
@@ -132,7 +135,7 @@ export default defineComponent({
132
135
  type: Function as PropType<(item: UserOrganisationInfos) => Partial<RouteLocation>>,
133
136
  required: false
134
137
  },
135
- editable: {
138
+ selectable: {
136
139
  type: Boolean,
137
140
  required: false,
138
141
  default: true
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <FSRow
3
+ v-if="fetching"
4
+ >
5
+ <FSLoader
6
+ v-for="i in 4"
7
+ :key="i"
8
+ variant="chip"
9
+ height="12px"
10
+ />
11
+ </FSRow>
12
+ <FSChipGroup
13
+ v-else
14
+ :color="ColorEnum.Light"
15
+ :labels="userOrganisations?.map(u => u.name)"
16
+ v-bind="$attrs"
17
+ />
18
+ </template>
19
+
20
+ <script lang="ts">
21
+ import { defineComponent, watch, type PropType } from "vue";
22
+
23
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
24
+ import { useUserOrganisations } from "@dative-gpi/foundation-core-services/composables";
25
+
26
+ import FSRow from "@dative-gpi/foundation-shared-components/components/FSRow.vue";
27
+ import FSLoader from "@dative-gpi/foundation-shared-components/components/FSLoader.vue";
28
+ import FSChipGroup from "@dative-gpi/foundation-shared-components/components/FSChipGroup.vue";
29
+
30
+ export default defineComponent({
31
+ name: "FSChipUserOrganisationsList",
32
+ components: {
33
+ FSChipGroup,
34
+ FSLoader,
35
+ FSRow
36
+ },
37
+ props: {
38
+ userOrganisationIds: {
39
+ type: Array as PropType<string[]>,
40
+ required: false
41
+ }
42
+ },
43
+ setup(props) {
44
+ const {getMany: fetchUserOrganisations, fetching, entities: userOrganisations} = useUserOrganisations();
45
+
46
+ watch(() => props.userOrganisationIds, async () => {
47
+ if(props.userOrganisationIds && props.userOrganisationIds.length > 0){
48
+ fetchUserOrganisations({
49
+ userOrganisationsIds: props.userOrganisationIds
50
+ });
51
+ }
52
+ }, {immediate: true});
53
+
54
+ return {
55
+ userOrganisations,
56
+ ColorEnum,
57
+ fetching
58
+ };
59
+ }
60
+ });
61
+ </script>
@@ -1,50 +1,128 @@
1
1
  <template>
2
- <FSAutocompleteField
3
- :label="label ?? $tr('ui.common.plot-per','Plot per')"
4
- :items="plotPerItems"
5
- :modelValue="modelValue"
6
- @update:modelValue="$emit('update:modelValue', $event)"
2
+ <FSRow
7
3
  v-bind="$attrs"
8
- />
4
+ >
5
+ <FSAutocompleteField
6
+ v-if="$props.showSelector"
7
+ :hideHeader="$props.hideHeader"
8
+ :clearable="$props.clearable"
9
+ :label="label ?? $tr('ui.common.plot-per','Plot per')"
10
+ :items="plotPerItems"
11
+ v-bind="$props.plotPerSelectorProps"
12
+ v-model="actualPlotPer"
13
+ />
14
+ <FSAutocompleteGrouping
15
+ v-if="actualPlotPer === PlotPer.Grouping && showGroupingAutocomplete"
16
+ :hideHeader="$props.hideHeader"
17
+ :clearable="$props.clearable"
18
+ :toggleSetDisabled="true"
19
+ v-bind="$props.groupingAutocompleteProps"
20
+ v-model="actualGroupingId"
21
+ />
22
+ </FSRow>
9
23
  </template>
10
24
 
11
25
  <script lang="ts">
12
- import { computed, defineComponent, type PropType } from "vue";
26
+ import { computed, defineComponent, ref, watch, type PropType } from "vue";
13
27
 
14
- import {PlotPer} from "@dative-gpi/foundation-shared-domain/enums";
28
+ import { PlotPer } from "@dative-gpi/foundation-shared-domain/enums";
15
29
 
16
- import FSAutocompleteField from "@dative-gpi/foundation-shared-components/components/fields/FSAutocompleteField.vue";
30
+ import { getEnumEntries } from "@dative-gpi/foundation-shared-domain/tools";
31
+ import { plotPerLabel } from "@dative-gpi/foundation-shared-components/tools";
17
32
 
18
- import {plotPerLabel, getEnumEntries} from "../../utils";
33
+ import FSAutocompleteField from "@dative-gpi/foundation-shared-components/components/fields/FSAutocompleteField.vue";
34
+ import FSAutocompleteGrouping from "@dative-gpi/foundation-core-components/components/autocompletes/FSAutocompleteGrouping.vue";
19
35
 
20
36
  export default defineComponent({
21
37
  components: {
22
- FSAutocompleteField
38
+ FSAutocompleteField,
39
+ FSAutocompleteGrouping
23
40
  },
24
41
  props: {
25
42
  modelValue: {
26
- type: Number as PropType<PlotPer>,
27
- required: false
43
+ type: Object as PropType<{ plotPer: PlotPer, groupingId: string | null }>,
44
+ required: false,
45
+ default: () => ({ plotPer: PlotPer.None, groupingId: null })
46
+ },
47
+ allowedPlotPers: {
48
+ type: Array as PropType<PlotPer[]>,
49
+ required: false,
50
+ default: null
51
+ },
52
+ plotPerSelectorProps: {
53
+ type: Object as PropType<Record<string, any>>,
54
+ required: false,
55
+ default: () => ({})
56
+ },
57
+ groupingAutocompleteProps: {
58
+ type: Object as PropType<Record<string, any>>,
59
+ required: false,
60
+ default: () => ({})
28
61
  },
29
62
  label: {
30
63
  type: String,
31
64
  required: false
65
+ },
66
+ hideHeader: {
67
+ type: Boolean,
68
+ required: false,
69
+ default: false
70
+ },
71
+ clearable: {
72
+ type: Boolean,
73
+ required: false,
74
+ default: false
75
+ },
76
+ showSelector: {
77
+ type: Boolean,
78
+ required: false,
79
+ default: true
80
+ },
81
+ showGroupingAutocomplete: {
82
+ type: Boolean,
83
+ required: false,
84
+ default: true
32
85
  }
33
86
  },
34
87
  emits: ['update:modelValue'],
35
- setup() {
88
+ setup(props, { emit }) {
89
+ const actualPlotPer = ref(PlotPer.None);
90
+ const actualGroupingId = ref<string | null>(null)
36
91
 
37
92
  const plotPerItems = computed(()=>{
93
+ if (props.allowedPlotPers != null) {
94
+ return props.allowedPlotPers.map((f)=>{
95
+ return {
96
+ id: f,
97
+ label: plotPerLabel(f)
98
+ }
99
+ })
100
+ }
38
101
  return getEnumEntries(PlotPer).filter(f=>f.value != PlotPer.None).map((f)=>{
39
102
  return {
40
103
  id: f.value,
41
104
  label: plotPerLabel(f.value)
42
105
  }
43
- })
106
+ });
107
+ });
108
+
109
+ watch(() => props.modelValue, (newVal) => {
110
+ actualPlotPer.value = newVal?.plotPer ?? plotPerItems.value[0].id;
111
+ actualGroupingId.value = newVal?.groupingId ?? null;
112
+ }, { immediate: true });
113
+
114
+ watch([actualPlotPer, actualGroupingId], () => {
115
+ emit('update:modelValue', {
116
+ plotPer: actualPlotPer.value,
117
+ groupingId: actualGroupingId.value
118
+ });
44
119
  });
45
120
 
46
121
  return {
47
- plotPerItems
122
+ actualGroupingId,
123
+ actualPlotPer,
124
+ plotPerItems,
125
+ PlotPer
48
126
  }
49
127
  }
50
128
  })
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <FSChartTileUI
3
+ v-if="chart"
4
+ :label="chart.label"
5
+ :icon="chart.icon"
6
+ :type="chart.chartType"
7
+ :scope="chart.scope"
8
+ :imageId="chart.imageId"
9
+ v-bind="$attrs"
10
+ />
11
+ </template>
12
+
13
+ <script lang="ts">
14
+ import { computed, defineComponent, type PropType, watch } from "vue";
15
+
16
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
17
+ import { chartIcon } from "@dative-gpi/foundation-shared-components/tools";
18
+
19
+ import { useChartOrganisation, useChartOrganisationType } from "@dative-gpi/foundation-core-services/composables";
20
+ import { ApplicationScope } from "@dative-gpi/foundation-shared-domain/enums";
21
+
22
+ import FSChartTileUI from "@dative-gpi/foundation-shared-components/components/tiles/FSChartTileUI.vue";
23
+
24
+ export default defineComponent({
25
+ name: "FSChartTile",
26
+ components: {
27
+ FSChartTileUI
28
+ },
29
+ props: {
30
+ chartId: {
31
+ type: String,
32
+ required: true
33
+ },
34
+ scope: {
35
+ type: Object as PropType<ApplicationScope | number>,
36
+ required : true
37
+ }
38
+ },
39
+ setup(props) {
40
+ const { get : fetchChartOrganisationType, entity : chartOrganisationType } = useChartOrganisationType();
41
+ const { get : fetchChartOrganisation, entity : chartOrganisation } = useChartOrganisation();
42
+
43
+ const chart = computed(() => {
44
+ if (props.scope == ApplicationScope.Organisation) {
45
+ return chartOrganisation.value;
46
+ }
47
+ else if (props.scope == ApplicationScope.OrganisationType) {
48
+ return chartOrganisationType.value;
49
+ }
50
+ else {
51
+ return null
52
+ }
53
+ });
54
+
55
+ watch(() => [props.chartId, props.scope], () => {
56
+ if (props.scope == ApplicationScope.Organisation) {
57
+ fetchChartOrganisation(props.chartId);
58
+ }
59
+ else if (props.scope == ApplicationScope.OrganisationType) {
60
+ fetchChartOrganisationType(props.chartId)
61
+ }
62
+ }, {immediate : true})
63
+
64
+ return {
65
+ ColorEnum,
66
+ chart,
67
+ chartIcon
68
+ };
69
+ }
70
+ });
71
+ </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="$props.modelValue"
6
6
  @update:modelValue="(value) => $emit('update:modelValue', value)"
7
7
  />
@@ -11,7 +11,7 @@
11
11
  :icon="entity.icon"
12
12
  :label="entity.label"
13
13
  :imageId="entity.imageId"
14
- :editable="$props.editable"
14
+ :selectable="$props.selectable"
15
15
  :bottomColor="entity.colors"
16
16
  :modelValue="$props.modelValue"
17
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
  required: false,
44
44
  default: false
45
45
  },
46
- editable: {
46
+ selectable: {
47
47
  type: Boolean,
48
48
  required: false,
49
49
  default: true
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="$props.modelValue"
6
6
  @update:modelValue="(value) => $emit('update:modelValue', value)"
7
7
  />
@@ -11,7 +11,7 @@
11
11
  :icon="entity.icon"
12
12
  :label="entity.label"
13
13
  :imageId="entity.imageId"
14
- :editable="$props.editable"
14
+ :selectable="$props.selectable"
15
15
  :bottomColor="entity.colors"
16
16
  :modelValue="$props.modelValue"
17
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
  required: false,
44
44
  default: false
45
45
  },
46
- editable: {
46
+ selectable: {
47
47
  type: Boolean,
48
48
  required: false,
49
49
  default: true
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="$props.modelValue"
6
6
  @update:modelValue="(value) => $emit('update:modelValue', value)"
7
7
  />
@@ -11,7 +11,7 @@
11
11
  :code="entity.code"
12
12
  :label="entity.label"
13
13
  :imageId="entity.imageId"
14
- :editable="$props.editable"
14
+ :selectable="$props.selectable"
15
15
  :bottomColor="entity.colors"
16
16
  :modelValue="$props.modelValue"
17
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
  required: false,
44
44
  default: false
45
45
  },
46
- editable: {
46
+ selectable: {
47
47
  type: Boolean,
48
48
  required: false,
49
49
  default: true
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="$props.modelValue"
6
6
  @update:modelValue="$emit('update:modelValue', $event)"
7
7
  />
@@ -15,7 +15,7 @@
15
15
  :deviceAlerts="entity.alerts"
16
16
  :modelStatuses="entity.modelStatuses"
17
17
  :deviceStatuses="entity.status?.statuses"
18
- :editable="$props.editable"
18
+ :selectable="$props.selectable"
19
19
  :alertTo="$props.alertTo"
20
20
  :modelValue="$props.modelValue"
21
21
  @update:modelValue="$emit('update:modelValue', $event)"
@@ -47,7 +47,7 @@ export default defineComponent({
47
47
  required: false,
48
48
  default: false
49
49
  },
50
- editable: {
50
+ selectable: {
51
51
  type: Boolean,
52
52
  required: false,
53
53
  default: true
@@ -1,18 +1,20 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="$props.modelValue"
6
6
  @update:modelValue="(value) => $emit('update:modelValue', value)"
7
7
  />
8
8
  <FSFolderTileUI
9
9
  v-else-if="entity"
10
- :label="entity.label"
11
10
  :code="entity.code"
12
- :bottomColor="entity.colors"
13
11
  :icon="entity.icon"
12
+ :label="entity.label"
14
13
  :imageId="entity.imageId"
15
- :editable="$props.editable"
14
+ :bottomColor="entity.colors"
15
+ :recursiveFoldersIds="entity.recursiveFoldersIds"
16
+ :recursiveDashboardsIds="entity.recursiveDashboardsIds"
17
+ :selectable="$props.selectable"
16
18
  :modelValue="$props.modelValue"
17
19
  @update:modelValue="(value) => $emit('update:modelValue', value)"
18
20
  v-bind="$attrs"
@@ -43,7 +45,7 @@ export default defineComponent({
43
45
  required: false,
44
46
  default: false
45
47
  },
46
- editable: {
48
+ selectable: {
47
49
  type: Boolean,
48
50
  required: false,
49
51
  default: true
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="modelValue"
6
6
  @update:modelValue="(value) => $emit('update:modelValue', value)"
7
7
  />
@@ -12,7 +12,7 @@
12
12
  :code="entity.code"
13
13
  :recursiveGroupsIds="entity.recursiveGroupsIds"
14
14
  :recursiveDeviceOrganisationsIds="entity.recursiveDeviceOrganisationsIds"
15
- :editable="$props.editable"
15
+ :selectable="$props.selectable"
16
16
  :modelValue="modelValue"
17
17
  @update:modelValue="(value) => $emit('update:modelValue', value)"
18
18
  v-bind="$attrs"
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
  required: false,
44
44
  default: false
45
45
  },
46
- editable: {
46
+ selectable: {
47
47
  type: Boolean,
48
48
  required: false,
49
49
  default: true
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="modelValue"
6
6
  @update:modelValue="(value) => $emit('update:modelValue', value)"
7
7
  />
@@ -11,8 +11,9 @@
11
11
  :label="entity.label"
12
12
  :code="entity.code"
13
13
  :color="entity.color"
14
+ :address="entity.address.placeLabel"
14
15
  :deviceCount="entity.deviceOrganisationsCount"
15
- :editable="$props.editable"
16
+ :selectable="$props.selectable"
16
17
  :modelValue="modelValue"
17
18
  @update:modelValue="(value) => $emit('update:modelValue', value)"
18
19
  v-bind="$attrs"
@@ -43,12 +44,13 @@ export default defineComponent({
43
44
  required: false,
44
45
  default: false
45
46
  },
46
- editable: {
47
+ selectable: {
47
48
  type: Boolean,
48
49
  required: false,
49
50
  default: true
50
51
  }
51
52
  },
53
+ emits: ['update:modelValue'],
52
54
  setup(props) {
53
55
  const { get, getting, entity } = useLocation();
54
56
 
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <FSLoadTile
3
+ v-if="getting"
4
+ :selectable="$props.selectable"
5
+ :modelValue="modelValue"
6
+ @update:modelValue="(value) => $emit('update:modelValue', value)"
7
+ />
8
+ <FSModelTileUI
9
+ v-else-if="entity"
10
+ :imageId="entity.imageId"
11
+ :label="entity.label"
12
+ :code="entity.code"
13
+ :selectable="$props.selectable"
14
+ :modelValue="modelValue"
15
+ @update:modelValue="(value) => $emit('update:modelValue', value)"
16
+ v-bind="$attrs"
17
+ />
18
+ </template>
19
+
20
+ <script lang="ts">
21
+ import { defineComponent, watch } from "vue";
22
+
23
+ import { useModel } from "@dative-gpi/foundation-core-services/composables";
24
+
25
+ import FSModelTileUI from "@dative-gpi/foundation-shared-components/components/tiles/FSModelTileUI.vue";
26
+ import FSLoadTile from "@dative-gpi/foundation-shared-components/components/tiles/FSLoadTile.vue";
27
+
28
+ export default defineComponent({
29
+ name: "FSModelTile",
30
+ components: {
31
+ FSModelTileUI,
32
+ FSLoadTile
33
+ },
34
+ props: {
35
+ modelId: {
36
+ type: String,
37
+ required: true
38
+ },
39
+ modelValue: {
40
+ type: Boolean,
41
+ required: false,
42
+ default: false
43
+ },
44
+ selectable: {
45
+ type: Boolean,
46
+ required: false,
47
+ default: true
48
+ }
49
+ },
50
+ emits: ['update:modelValue'],
51
+ setup(props) {
52
+ const { get, getting, entity } = useModel();
53
+
54
+ watch(() => props.modelId, () => {
55
+ get(props.modelId);
56
+ }, { immediate: true });
57
+
58
+ return {
59
+ getting,
60
+ entity
61
+ };
62
+ }
63
+ });
64
+ </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSLoadTile
3
3
  v-if="getting"
4
- :editable="$props.editable"
4
+ :selectable="$props.selectable"
5
5
  :modelValue="modelValue"
6
6
  @update:modelValue="$emit('update:modelValue', $event)"
7
7
  />
@@ -11,7 +11,7 @@
11
11
  :label="entity.label"
12
12
  :roleLabel="entity.roleLabel"
13
13
  :roleIcon="entity.roleIcon"
14
- :editable="$props.editable"
14
+ :selectable="$props.selectable"
15
15
  :modelValue="modelValue"
16
16
  @update:modelValue="$emit('update:modelValue', $event)"
17
17
  v-bind="$attrs"
@@ -42,7 +42,7 @@ export default defineComponent({
42
42
  required: false,
43
43
  default: false
44
44
  },
45
- editable: {
45
+ selectable: {
46
46
  type: Boolean,
47
47
  required: false,
48
48
  default: true