Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(metadata): add optional editor hints for metadata #370

Conversation

cyrng
Copy link
Contributor

@cyrng cyrng commented Sep 3, 2024

What does this PR do ?

This PR add new properties on metadetails to allows features to display in the frontend in order to improve the UX. The features are read only mecanism, dropdown of values, calendar picker with time or not and clock picker.
There is an update in the documentation in the concept section to explain how to use it in the frontend.

https://kuzzle.atlassian.net/browse/KZLPRD-473
https://kuzzle.atlassian.net/browse/KZLPRD-474
https://kuzzle.atlassian.net/browse/KZLPRD-475

@cyrng cyrng self-assigned this Sep 3, 2024
@cyrng cyrng marked this pull request as ready for review September 3, 2024 09:12
@cyrng cyrng requested review from etrousset and rolljee and removed request for etrousset September 3, 2024 09:13
fmauNeko
fmauNeko previously approved these changes Sep 3, 2024
Copy link
Member

@etrousset etrousset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As seen with Cyril, we should separate different metadata types with spécific edition option is separate objects to avoid ending with a single metaobject with to many option matrix

interface DatetimeMetadataDetails {
date?: boolean;
time?: boolean;
timezone?: boolean;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens when timezone is false ? We don't ask for a timezone ?
If that's the case, what timezone will be inferred ? Will we process date and times as UTC or as localtime ? Client or server localtime ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

date shouldn't optional in a Datetime picker

Copy link
Contributor Author

@cyrng cyrng Sep 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I understand now that timezone must always be informed to avoid problems through your questionings. I will remove the property and set date to mandatory

@fmauNeko fmauNeko dismissed their stale review September 3, 2024 14:42

Pending question about timezone

@cyrng cyrng marked this pull request as draft September 4, 2024 12:46
@cyrng cyrng requested a review from fmauNeko September 4, 2024 14:19
lib/modules/model/types/ModelContent.ts Outdated Show resolved Hide resolved
lib/modules/model/types/ModelContent.ts Outdated Show resolved Hide resolved
lib/modules/model/types/ModelContent.ts Outdated Show resolved Hide resolved
Copy link
Member

@etrousset etrousset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see the documentation about OptionsSelectorDefinition and DatetimeDefinition fields to explain de meaning of each option, and how they intented to contrain the frontend editor for the concerned metadata values.

@cyrng cyrng force-pushed the KZLPRD-475-etq-utilisateur-jvp-avoir-une-editeur-de-metadonnee-de-type-date-ou-time branch from f44f7bf to f1c126d Compare September 16, 2024 11:57
@cyrng cyrng marked this pull request as ready for review September 17, 2024 07:09
@etrousset etrousset changed the title feat(metadata): add optional date and time propertiesin metadata details feat(metadata): add optional editdor hints for metadata Sep 18, 2024
@fmauNeko fmauNeko changed the title feat(metadata): add optional editdor hints for metadata feat(metadata): add optional editor hints for metadata Sep 18, 2024
@afondard afondard merged commit afc5129 into 2-dev Sep 18, 2024
3 checks passed
@afondard afondard deleted the KZLPRD-475-etq-utilisateur-jvp-avoir-une-editeur-de-metadonnee-de-type-date-ou-time branch September 18, 2024 12:50
github-actions bot pushed a commit that referenced this pull request Sep 18, 2024
# [2.4.0-beta.21](v2.4.0-beta.20...v2.4.0-beta.21) (2024-09-18)

### Bug Fixes

* only list asset models for the requested engine group ([#367](#367)) ([8a14207](8a14207))

### Features

* add actions to get last measures on digital twins ([#363](#363)) ([b8005a2](b8005a2))
* add search actions for the models ([#362](#362)) ([9990e57](9990e57))
* improve search model request types ([#364](#364)) ([5310ad1](5310ad1))
* **metadata:** add optional editor hints for metadata ([#370](#370)) ([afc5129](afc5129))
* **roles:** add specific roles for assets and devices ([#365](#365)) ([a01982c](a01982c))
github-actions bot pushed a commit that referenced this pull request Sep 27, 2024
# [2.4.0-dev.1](v2.3.2...v2.4.0-dev.1) (2024-09-27)

### Bug Fixes

* add specific dev branch in releaserc.js ([e11a823](e11a823))
* **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf))
* **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc))
* **assets:** migrate tenant only if user is admin ([c24f942](c24f942))
* **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13))
* catch errors when updating the mappings on startup ([#338](#338)) ([e09c5a3](e09c5a3))
* **ci:** correct github token in ci ([a5a6b69](a5a6b69))
* **ci:** fix npm glob not working anymore ([18e79aa](18e79aa))
* copy-version script ([72b5e49](72b5e49))
* correct api types ([#333](#333)) ([05c426f](05c426f))
* correct KuzzleRequest for pipes ([ef932d1](ef932d1))
* correct release script ([f02c285](f02c285))
* **device-metadata:** fetch device's metadata from assigned tenant when available ([#374](#374)) ([acfd8a0](acfd8a0))
* **device:** correct device HTTP API ([#354](#354)) ([d9fe9e1](d9fe9e1))
* **engine:** update conflicts ask return values ([0f817c3](0f817c3))
* **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd))
* improve get internal devices documents ([03ccb29](03ccb29))
* improve measure export to be usable with multiple measures in one measure ([#330](#330)) ([dab8d57](dab8d57))
* **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a))
* **models:**  list asset returns commons assets ([#345](#345)) ([2844437](2844437))
* **npm:** fix repository url ([514dc59](514dc59))
* only list asset models for the requested engine group ([#367](#367)) ([8a14207](8a14207))
* update semantic-release ([380c8b3](380c8b3))

### Features

* add actions to get last measures on digital twins ([#363](#363)) ([b8005a2](b8005a2))
* add dev builds when pushing on 2-dev ([#375](#375)) ([aa11885](aa11885))
* add group descriptions to models ([#335](#335)) ([de00fb7](de00fb7))
* add log in decoders ([#339](#339)) ([fe08b7c](fe08b7c))
* add search actions for the models ([#362](#362)) ([9990e57](9990e57))
* add tooltip model by asset model ([#341](#341)) ([865ae6d](865ae6d))
* add UTC export by default for devices and assets ([#342](#342)) ([878ca58](878ca58))
* **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787))
* **assetrole:** add link / unlink device action to asset admin role ([#357](#357)) ([febf3a6](febf3a6))
* **assets:** assets migrate tenant ([5f05101](5f05101))
* **assets:** remove assetId in upsert ([#326](#326)) ([2f286de](2f286de))
* **configuration:** allow to specify Elasticsearch index settings ([#337](#337)) ([6d22fa9](6d22fa9))
* digitaltwin exports ([#315](#315)) ([aab65af](aab65af))
* **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a))
* **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc))
* **engine:** add mappings update conflict ask call ([#340](#340)) ([5cd6aca](5cd6aca))
* implement comprehensible metadata ([#332](#332)) ([e80ef8e](e80ef8e))
* improve export ([#316](#316)) ([51db84a](51db84a))
* improve search model request types ([#364](#364)) ([5310ad1](5310ad1))
* **measure:** add device metadata to origin ([#356](#356)) ([1ed9d8b](1ed9d8b))
* **measuremodels:** add optional local names and unit to measure definitions ([#343](#343)) ([50038b2](50038b2))
* **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53))
* **metadata:** add option field readOnly to prevent editing ([#358](#358)) ([e0641b4](e0641b4))
* **metadata:** add optional editor hints for metadata ([#370](#370)) ([afc5129](afc5129))
* **metadata:** add support nested metadata properties ([#348](#348)) ([17eda8b](17eda8b))
* **metadata:** improve asset metadata ([#346](#346)) ([2eb5887](2eb5887))
* **roles:** add specific roles for assets and devices ([#365](#365)) ([a01982c](a01982c))
* upsert devices ([#355](#355)) ([c75abef](c75abef))
github-actions bot pushed a commit that referenced this pull request Oct 1, 2024
# [2.4.0](v2.3.2...v2.4.0) (2024-10-01)

### Bug Fixes

* add specific dev branch in releaserc.js ([e11a823](e11a823))
* **asset_migration:** fixes multiple assets migration and optimize ([fd546cf](fd546cf))
* **assetsGroups:** disable checkRights on impersonate ([#325](#325)) ([eaa3edc](eaa3edc))
* **assets:** migrate tenant only if user is admin ([c24f942](c24f942))
* **assetsMigrateTenant:** add type for frontend and fix admin only ([e249f13](e249f13))
* catch errors when updating the mappings on startup ([#338](#338)) ([e09c5a3](e09c5a3))
* **ci:** correct github token in ci ([a5a6b69](a5a6b69))
* **ci:** fix npm glob not working anymore ([18e79aa](18e79aa))
* copy-version script ([72b5e49](72b5e49))
* correct api types ([#333](#333)) ([05c426f](05c426f))
* correct KuzzleRequest for pipes ([ef932d1](ef932d1))
* correct release script ([f02c285](f02c285))
* **device-metadata:** fetch device's metadata from assigned tenant when available ([#374](#374)) ([acfd8a0](acfd8a0))
* **device:** correct device HTTP API ([#354](#354)) ([d9fe9e1](d9fe9e1))
* **engine:** update conflicts ask return values ([0f817c3](0f817c3))
* **export:** correct scroll in getNamedMeasures ([05fe4fd](05fe4fd))
* improve get internal devices documents ([03ccb29](03ccb29))
* improve measure export to be usable with multiple measures in one measure ([#330](#330)) ([dab8d57](dab8d57))
* **migrateTenant:** clear groups of newly created assets ([79f6a5a](79f6a5a))
* **models:**  list asset returns commons assets ([#345](#345)) ([2844437](2844437))
* **npm:** fix repository url ([514dc59](514dc59))
* only list asset models for the requested engine group ([#367](#367)) ([8a14207](8a14207))
* update semantic-release ([380c8b3](380c8b3))

### Features

* add actions to get last measures on digital twins ([#363](#363)) ([b8005a2](b8005a2))
* add dev builds when pushing on 2-dev ([#375](#375)) ([aa11885](aa11885))
* add group descriptions to models ([#335](#335)) ([de00fb7](de00fb7))
* add log in decoders ([#339](#339)) ([fe08b7c](fe08b7c))
* add search actions for the models ([#362](#362)) ([9990e57](9990e57))
* add tooltip model by asset model ([#341](#341)) ([865ae6d](865ae6d))
* add UTC export by default for devices and assets ([#342](#342)) ([878ca58](878ca58))
* **asset:** add upsert method ([#323](#323)) ([5f87787](5f87787))
* **assetrole:** add link / unlink device action to asset admin role ([#357](#357)) ([febf3a6](febf3a6))
* **assets:** assets migrate tenant ([5f05101](5f05101))
* **assets:** remove assetId in upsert ([#326](#326)) ([2f286de](2f286de))
* **configuration:** allow to specify Elasticsearch index settings ([#337](#337)) ([6d22fa9](6d22fa9))
* digitaltwin exports ([#315](#315)) ([aab65af](aab65af))
* **digitalTwin:** allow to modify mapping from application ([#322](#322)) ([89d375a](89d375a))
* **digitalTwin:** implement generic document pipes triggers ([#321](#321)) ([60a21fc](60a21fc))
* **engine:** add mappings update conflict ask call ([#340](#340)) ([5cd6aca](5cd6aca))
* implement comprehensible metadata ([#332](#332)) ([e80ef8e](e80ef8e))
* improve export ([#316](#316)) ([51db84a](51db84a))
* improve search model request types ([#364](#364)) ([5310ad1](5310ad1))
* **measure:** add device metadata to origin ([#356](#356)) ([1ed9d8b](1ed9d8b))
* **measuremodels:** add optional local names and unit to measure definitions ([#343](#343)) ([50038b2](50038b2))
* **measures:** add lastMeasuredAt on DigitalTwin ([#314](#314)) ([05b8a53](05b8a53))
* **metadata:** add option field readOnly to prevent editing ([#358](#358)) ([e0641b4](e0641b4))
* **metadata:** add optional editor hints for metadata ([#370](#370)) ([afc5129](afc5129))
* **metadata:** add support nested metadata properties ([#348](#348)) ([17eda8b](17eda8b))
* **metadata:** improve asset metadata ([#346](#346)) ([2eb5887](2eb5887))
* **roles:** add specific roles for assets and devices ([#365](#365)) ([a01982c](a01982c))
* upsert devices ([#355](#355)) ([c75abef](c75abef))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request module-model
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants