merge newui branch

This commit is contained in:
Gani Georgiev committed 2026-04-18 16:50:39 +03:00
1 parent 58f605e90c
commit 4c44044c0c
804 files changed
+58660 -56663

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
import { onrecordduplicate } from "./onrecordduplicate";
import { settings } from "./settings";
import { view } from "./view";
window.app = window.app || {};
window.app.fieldTypes = window.app.fieldTypes || {};
window.app.fieldTypes.autodate = {
icon: "ri-calendar-check-line",
label: "Autodate",
settings,
view,
onrecordduplicate,
dummyData: (f, forSubmit = false) => {
if (forSubmit) {
return undefined; // hide
}
return new Date().toISOString().replaceAll("T", " ");
},
};
@@ -0,0 +1,8 @@
// {
// field: {},
// originalRecord: {},
// clone: {},
// }
export function onrecordduplicate(props) {
delete props.clone[props.field.name];
}
+74
View File
@@ -0,0 +1,74 @@
// {
// originalCollection: undefined,
// collection: undefined,
// field
// get fieldIndex: int/-1,
// get originalField: undefined
// }
export function settings(props) {
const ON_CREATE = 1;
const ON_UPDATE = 2;
const ON_CREATE_UPDATE = 3;
const options = [
{ label: "Create", value: ON_CREATE },
{ label: "Update", value: ON_UPDATE },
{ label: "Create/Update", value: ON_CREATE_UPDATE },
];
function getOptionFromField(field) {
if (field.onCreate && field.onUpdate) {
return ON_CREATE_UPDATE;
}
if (field.onUpdate) {
return ON_UPDATE;
}
return ON_CREATE;
}
function updateField(option) {
switch (option) {
case ON_CREATE:
props.field.onCreate = true;
props.field.onUpdate = false;
break;
case ON_UPDATE:
props.field.onCreate = false;
props.field.onUpdate = true;
break;
case ON_CREATE_UPDATE:
props.field.onCreate = true;
props.field.onUpdate = true;
break;
}
}
const local = store({
isDropdownOpen: false,
});
return app.components.fieldSettings(props, {
header: t.div(
{
className: "field header-select autodate-select",
ariaDescription: app.attrs.tooltip("Auto set on", "left"),
onmount: () => {
// init default value
updateField(getOptionFromField(props.field));
},
},
app.components.select({
required: true,
options: options,
disabled: () => props.originalCollection?.system,
value: () => getOptionFromField(props.field),
onchange: (opts) => updateField(opts?.[0]?.value),
ondropdowntoggle: (e) => {
local.isDropdownOpen = e.newState == "open";
},
}),
),
});
}
+14
View File
@@ -0,0 +1,14 @@
// {
// record: undefined,
// field: undefined,
// short: false,
// }
export function view(props) {
return t.div(
{ className: "record-field-view field-type-autodate" },
app.components.formattedDate({
value: () => props.record[props.field.name],
short: () => props.short,
}),
);
}