John Livingston 1 год назад
Родитель
Сommit
75848e3273
4 измененных файлов с 15 добавлено и 12 удалено
  1. 1 1
      .eslintrc.json
  2. 2 1
      src/headless/shared/parsers.js
  3. 2 1
      src/headless/types/shared/parsers.d.ts
  4. 10 9
      src/utils/html.js

+ 1 - 1
.eslintrc.json

@@ -90,8 +90,8 @@
         "max-depth": "error",
         "max-len": ["error", {
             "code": 120,
-            "comments": 120,
             "ignoreStrings": true,
+            "ignoreComments": true,
             "ignoreUrls": true
         }],
         "max-lines": "off",

+ 2 - 1
src/headless/shared/parsers.js

@@ -379,7 +379,8 @@ export function isArchived (original_stanza) {
  * @typedef {'list-single'|'list-multi'} XFormListTypes
  * @typedef {'jid-single'|'jid-multi'} XFormJIDTypes
  * @typedef {'text-multi'|'text-private'|'text-single'} XFormTextTypes
- * @typedef {XFormListTypes|XFormJIDTypes|XFormTextTypes|'fixed'|'boolean'|'url'|'hidden'} XFormFieldTypes
+ * @typedef {'date'|'datetime'} XFormDateTypes
+ * @typedef {XFormListTypes|XFormJIDTypes|XFormTextTypes|XFormDateTypes|'fixed'|'boolean'|'url'|'hidden'} XFormFieldTypes
  *
  * @typedef {Object} XFormField
  * @property {string} var

+ 2 - 1
src/headless/types/shared/parsers.d.ts

@@ -160,7 +160,8 @@ export type XFormCaptchaURI = {
 export type XFormListTypes = 'list-single' | 'list-multi';
 export type XFormJIDTypes = 'jid-single' | 'jid-multi';
 export type XFormTextTypes = 'text-multi' | 'text-private' | 'text-single';
-export type XFormFieldTypes = XFormListTypes | XFormJIDTypes | XFormTextTypes | 'fixed' | 'boolean' | 'url' | 'hidden';
+export type XFormDateTypes = 'date' | 'datetime';
+export type XFormFieldTypes = XFormListTypes | XFormJIDTypes | XFormTextTypes | XFormDateTypes | 'fixed' | 'boolean' | 'url' | 'hidden';
 export type XFormField = {
     var: string;
     label: string;

+ 10 - 9
src/utils/html.js

@@ -510,16 +510,17 @@ export function xFormField2TemplateResult(xfield, options = {}) {
         });
     } else if (xfield.type !== 'hidden' && (xfield.var === 'url' || xfield.var === 'uri' || isValidURL(xfield.value))) {
         return tplFormUrl(xfield);
-
-    } else {
+    } else if (xfield.type === 'datetime' || xfield.type === 'date') {
         const date = xfield.value ? dayjs(xfield.value) : null;
-        if (date?.isValid()) {
-            return tplDateInput({
-                ...default_vals,
-                ...xfield,
-                value: date.format('YYYY-MM-DDTHH:mm:ss'),
-            });
-        }
+        const value = date?.isValid()
+            ? (xfield.type === 'datetime' ? date.format('YYYY-MM-DDTHH:mm:ss') : date.format('YYYY-MM-DD'))
+            : null;
+        return tplDateInput({
+            ...default_vals,
+            ...xfield,
+            value
+        });
+    } else {
 
         return tplFormInput({
             ...default_vals,