terrier-engine 4.4.35 → 4.5.0
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.
- package/data-dive/dives/group-editor.ts +8 -3
- package/package.json +1 -1
- package/terrier/forms.ts +36 -1
- package/terrier/gen/badges.ts +734 -0
- package/terrier/glyps.ts +12 -1
- package/terrier/images/badges/badge-accounts_payable-handling.svg +48 -0
- package/terrier/images/badges/badge-accounts_receivable-handling.svg +50 -0
- package/terrier/images/badges/badge-applicator_license-admin.svg +54 -0
- package/terrier/images/badges/badge-autopay-admin.svg +46 -0
- package/terrier/images/badges/badge-autopay-handling.svg +46 -0
- package/terrier/images/badges/badge-bats-admin.svg +47 -0
- package/terrier/images/badges/badge-bats-management.svg +45 -0
- package/terrier/images/badges/badge-bats-ops.svg +47 -0
- package/terrier/images/badges/badge-bats-sales.svg +47 -0
- package/terrier/images/badges/badge-clypboard_hardware-admin.svg +70 -0
- package/terrier/images/badges/badge-clypboard_project-admin.svg +51 -0
- package/terrier/images/badges/badge-clypmart-admin.svg +58 -0
- package/terrier/images/badges/badge-commercial-admin.svg +56 -0
- package/terrier/images/badges/badge-commercial-management.svg +54 -0
- package/terrier/images/badges/badge-commercial-ops.svg +56 -0
- package/terrier/images/badges/badge-commercial-sales.svg +56 -0
- package/terrier/images/badges/badge-compliance-admin.svg +51 -0
- package/terrier/images/badges/badge-contracts-admin.svg +54 -0
- package/terrier/images/badges/badge-contracts-reporting.svg +52 -0
- package/terrier/images/badges/badge-copesan-admin.svg +45 -0
- package/terrier/images/badges/badge-credit_card-admin.svg +55 -0
- package/terrier/images/badges/badge-customer_call-handling.svg +49 -0
- package/terrier/images/badges/badge-customer_text-handling.svg +59 -0
- package/terrier/images/badges/badge-employee_data-admin.svg +49 -0
- package/terrier/images/badges/badge-employee_data-handling.svg +49 -0
- package/terrier/images/badges/badge-employee_data-reporting.svg +47 -0
- package/terrier/images/badges/badge-finance-admin.svg +49 -0
- package/terrier/images/badges/badge-finance-reporting.svg +47 -0
- package/terrier/images/badges/badge-fleet-admin.svg +58 -0
- package/terrier/images/badges/badge-fumigation-admin.svg +56 -0
- package/terrier/images/badges/badge-fumigation-management.svg +54 -0
- package/terrier/images/badges/badge-fumigation-ops.svg +56 -0
- package/terrier/images/badges/badge-information_technology-admin.svg +51 -0
- package/terrier/images/badges/badge-information_technology-management.svg +49 -0
- package/terrier/images/badges/badge-irrigation-admin.svg +51 -0
- package/terrier/images/badges/badge-irrigation-management.svg +49 -0
- package/terrier/images/badges/badge-irrigation-ops.svg +51 -0
- package/terrier/images/badges/badge-irrigation-sales.svg +51 -0
- package/terrier/images/badges/badge-landscape-admin.svg +50 -0
- package/terrier/images/badges/badge-landscape-management.svg +48 -0
- package/terrier/images/badges/badge-landscape-ops.svg +50 -0
- package/terrier/images/badges/badge-landscape-sales.svg +50 -0
- package/terrier/images/badges/badge-marketing-admin.svg +59 -0
- package/terrier/images/badges/badge-mergers_and_acquisitions-admin.svg +47 -0
- package/terrier/images/badges/badge-mergers_and_acquisitions-reporting.svg +45 -0
- package/terrier/images/badges/badge-multi_housing-admin.svg +61 -0
- package/terrier/images/badges/badge-multi_housing-management.svg +59 -0
- package/terrier/images/badges/badge-multi_housing-ops.svg +61 -0
- package/terrier/images/badges/badge-multi_housing-sales.svg +61 -0
- package/terrier/images/badges/badge-payroll-admin.svg +48 -0
- package/terrier/images/badges/badge-payroll-reporting.svg +46 -0
- package/terrier/images/badges/badge-pest-admin.svg +48 -0
- package/terrier/images/badges/badge-pest-management.svg +46 -0
- package/terrier/images/badges/badge-pest-ops.svg +48 -0
- package/terrier/images/badges/badge-pest-sales.svg +48 -0
- package/terrier/images/badges/badge-pro-admin.svg +60 -0
- package/terrier/images/badges/badge-pro-management.svg +58 -0
- package/terrier/images/badges/badge-pro-ops.svg +60 -0
- package/terrier/images/badges/badge-pro-sales.svg +60 -0
- package/terrier/images/badges/badge-program-admin.svg +45 -0
- package/terrier/images/badges/badge-proposals-handling.svg +51 -0
- package/terrier/images/badges/badge-residential-admin.svg +53 -0
- package/terrier/images/badges/badge-residential-management.svg +51 -0
- package/terrier/images/badges/badge-residential-ops.svg +53 -0
- package/terrier/images/badges/badge-residential-sales.svg +53 -0
- package/terrier/images/badges/badge-sales-management.svg +46 -0
- package/terrier/images/badges/badge-sales-reporting.svg +46 -0
- package/terrier/images/badges/badge-scripts-admin.svg +50 -0
- package/terrier/images/badges/badge-scripts-reporting.svg +48 -0
- package/terrier/images/badges/badge-termite-admin.svg +48 -0
- package/terrier/images/badges/badge-termite-management.svg +46 -0
- package/terrier/images/badges/badge-termite-ops.svg +48 -0
- package/terrier/images/badges/badge-termite-sales.svg +48 -0
- package/terrier/images/badges/badge-wildlife-admin.svg +45 -0
- package/terrier/images/badges/badge-wildlife-management.svg +43 -0
- package/terrier/images/badges/badge-wildlife-ops.svg +45 -0
- package/terrier/images/badges/badge-wildlife-sales.svg +45 -0
- package/terrier/images/optimized/badge-accounts_payable.svg +1 -0
- package/terrier/images/optimized/badge-accounts_receivable.svg +1 -0
- package/terrier/images/optimized/badge-applicator_license.svg +1 -0
- package/terrier/images/optimized/badge-autopay.svg +1 -0
- package/terrier/images/optimized/badge-bats.svg +1 -0
- package/terrier/images/optimized/badge-clypboard_hardware.svg +1 -0
- package/terrier/images/optimized/badge-clypboard_project.svg +1 -0
- package/terrier/images/optimized/badge-clypmart.svg +1 -0
- package/terrier/images/optimized/badge-commercial.svg +1 -0
- package/terrier/images/optimized/badge-compliance.svg +1 -0
- package/terrier/images/optimized/badge-contracts.svg +1 -0
- package/terrier/images/optimized/badge-copesan.svg +1 -0
- package/terrier/images/optimized/badge-credit_card.svg +1 -0
- package/terrier/images/optimized/badge-customer_call.svg +1 -0
- package/terrier/images/optimized/badge-customer_text.svg +1 -0
- package/terrier/images/optimized/badge-employee_data.svg +1 -0
- package/terrier/images/optimized/badge-finance.svg +1 -0
- package/terrier/images/optimized/badge-fleet.svg +1 -0
- package/terrier/images/optimized/badge-fumigation.svg +1 -0
- package/terrier/images/optimized/badge-information_technology.svg +1 -0
- package/terrier/images/optimized/badge-irrigation.svg +1 -0
- package/terrier/images/optimized/badge-landscape.svg +1 -0
- package/terrier/images/optimized/badge-marketing.svg +1 -0
- package/terrier/images/optimized/badge-mergers_and_acquisitions.svg +1 -0
- package/terrier/images/optimized/badge-multi_housing.svg +1 -0
- package/terrier/images/optimized/badge-payroll.svg +1 -0
- package/terrier/images/optimized/badge-pest.svg +1 -0
- package/terrier/images/optimized/badge-pro.svg +1 -0
- package/terrier/images/optimized/badge-program.svg +1 -0
- package/terrier/images/optimized/badge-proposals.svg +1 -0
- package/terrier/images/optimized/badge-residential.svg +1 -0
- package/terrier/images/optimized/badge-sales.svg +1 -0
- package/terrier/images/optimized/badge-scripts.svg +1 -0
- package/terrier/images/optimized/badge-termite.svg +1 -0
- package/terrier/images/optimized/badge-wildlife.svg +1 -0
- package/terrier/images/optimized/badge_role-admin.svg +1 -0
- package/terrier/images/optimized/badge_role-handling.svg +1 -0
- package/terrier/images/optimized/badge_role-management.svg +1 -0
- package/terrier/images/optimized/badge_role-ops.svg +1 -0
- package/terrier/images/optimized/badge_role-reporting.svg +1 -0
- package/terrier/images/optimized/badge_role-sales.svg +1 -0
- package/terrier/images/raw/badge-accounts_payable.svg +22 -0
- package/terrier/images/raw/badge-accounts_receivable.svg +24 -0
- package/terrier/images/raw/badge-applicator_license.svg +28 -0
- package/terrier/images/raw/badge-autopay.svg +20 -0
- package/terrier/images/raw/badge-bats.svg +19 -0
- package/terrier/images/raw/badge-clypboard_hardware.svg +44 -0
- package/terrier/images/raw/badge-clypboard_project.svg +25 -0
- package/terrier/images/raw/badge-clypmart.svg +37 -0
- package/terrier/images/raw/badge-commercial.svg +43 -0
- package/terrier/images/raw/badge-compliance.svg +26 -0
- package/terrier/images/raw/badge-contracts.svg +28 -0
- package/terrier/images/raw/badge-copesan.svg +19 -0
- package/terrier/images/raw/badge-credit_card.svg +29 -0
- package/terrier/images/raw/badge-customer_call.svg +26 -0
- package/terrier/images/raw/badge-customer_text.svg +33 -0
- package/terrier/images/raw/badge-employee_data.svg +23 -0
- package/terrier/images/raw/badge-finance.svg +23 -0
- package/terrier/images/raw/badge-fleet.svg +32 -0
- package/terrier/images/raw/badge-fumigation.svg +30 -0
- package/terrier/images/raw/badge-information_technology.svg +25 -0
- package/terrier/images/raw/badge-irrigation.svg +28 -0
- package/terrier/images/raw/badge-landscape.svg +24 -0
- package/terrier/images/raw/badge-marketing.svg +34 -0
- package/terrier/images/raw/badge-mergers_and_acquisitions.svg +22 -0
- package/terrier/images/raw/badge-multi_housing.svg +72 -0
- package/terrier/images/raw/badge-payroll.svg +22 -0
- package/terrier/images/raw/badge-pest.svg +22 -0
- package/terrier/images/raw/badge-pro.svg +34 -0
- package/terrier/images/raw/badge-program.svg +19 -0
- package/terrier/images/raw/badge-proposals.svg +25 -0
- package/terrier/images/raw/badge-residential.svg +29 -0
- package/terrier/images/raw/badge-sales.svg +22 -0
- package/terrier/images/raw/badge-scripts.svg +24 -0
- package/terrier/images/raw/badge-termite.svg +22 -0
- package/terrier/images/raw/badge-wildlife.svg +19 -0
- package/terrier/images/raw/badge_role-admin.svg +35 -0
- package/terrier/images/raw/badge_role-handling.svg +35 -0
- package/terrier/images/raw/badge_role-management.svg +35 -0
- package/terrier/images/raw/badge_role-ops.svg +35 -0
- package/terrier/images/raw/badge_role-reporting.svg +35 -0
- package/terrier/images/raw/badge_role-sales.svg +35 -0
- package/terrier/parts/glyp-picker.ts +98 -0
- package/terrier/parts/terrier-form-part.ts +4 -1
|
@@ -38,10 +38,15 @@ class GroupForm extends TerrierPart<{ group: UnpersistedDdDiveGroup }> {
|
|
|
38
38
|
// for (const type of DdDiveEnumFields.visibility)
|
|
39
39
|
// })
|
|
40
40
|
})
|
|
41
|
-
row.div('.
|
|
42
|
-
col.label().text("
|
|
43
|
-
this.fields.
|
|
41
|
+
row.div('.shrink', col => {
|
|
42
|
+
col.label().text("Icon")
|
|
43
|
+
this.fields.renderGlypField(col, 'icon')
|
|
44
44
|
})
|
|
45
|
+
|
|
46
|
+
})
|
|
47
|
+
parent.div(row => {
|
|
48
|
+
row.label().text("Description")
|
|
49
|
+
this.fields.textArea(row, 'description_raw')
|
|
45
50
|
})
|
|
46
51
|
}
|
|
47
52
|
|
package/package.json
CHANGED
package/terrier/forms.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import {Field, FormFields, FormPartData, InputType, KeyOfType, SelectOptions} from "tuff-core/forms"
|
|
2
|
-
import {strings} from "tuff-core"
|
|
2
|
+
import {logging, messages, strings} from "tuff-core"
|
|
3
3
|
import {DbErrors} from "./db-client"
|
|
4
4
|
import {PartTag} from "tuff-core/parts"
|
|
5
5
|
import {InputTag, InputTagAttrs} from "tuff-core/html"
|
|
6
6
|
import TerrierPart from "./parts/terrier-part"
|
|
7
|
+
import GlypPicker from "./parts/glyp-picker"
|
|
8
|
+
import Glyps from "./glyps"
|
|
9
|
+
|
|
10
|
+
const log = new logging.Logger("TerrierForms")
|
|
7
11
|
|
|
8
12
|
////////////////////////////////////////////////////////////////////////////////
|
|
9
13
|
// Options
|
|
@@ -35,6 +39,8 @@ export class TerrierFormFields<T extends FormPartData> extends FormFields<T> {
|
|
|
35
39
|
|
|
36
40
|
errors?: DbErrors<T>
|
|
37
41
|
|
|
42
|
+
pickGlypKey = messages.typedKey<{ key: KeyOfType<T, string | undefined> & string }>()
|
|
43
|
+
|
|
38
44
|
/**
|
|
39
45
|
* You must pass a `TerrierPart` so that we can render the error bubble with it.
|
|
40
46
|
* @param part
|
|
@@ -44,6 +50,18 @@ export class TerrierFormFields<T extends FormPartData> extends FormFields<T> {
|
|
|
44
50
|
constructor(part: TerrierPart<any>, data: T, errors?: DbErrors<T>) {
|
|
45
51
|
super(part, data)
|
|
46
52
|
this.errors = errors
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
this.part.onClick(this.pickGlypKey, m => {
|
|
56
|
+
log.info(`Pick glyp for ${m.data.key}`)
|
|
57
|
+
const key = m.data.key as KeyOfType<T, string | undefined>
|
|
58
|
+
const current = this.data[key]
|
|
59
|
+
const onPicked = (icon?: string) => {
|
|
60
|
+
this.data[key] = icon as any // TODO: figure out how to better make typescript happy
|
|
61
|
+
this.part.dirty()
|
|
62
|
+
}
|
|
63
|
+
part.app.showModal(GlypPicker.Modal, {icon: current, onPicked})
|
|
64
|
+
})
|
|
47
65
|
}
|
|
48
66
|
|
|
49
67
|
protected input<Key extends KeyOfType<T, any> & string>(parent: PartTag, type: InputType, name: Key, serializerType: {
|
|
@@ -66,6 +84,23 @@ export class TerrierFormFields<T extends FormPartData> extends FormFields<T> {
|
|
|
66
84
|
(this.part as TerrierPart<any>).renderErrorBubble(parent, this.errors)
|
|
67
85
|
}
|
|
68
86
|
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Render a readonly field for a glyp icon value that shows the glyp picker when clicked.
|
|
90
|
+
* @param parent where to render the field
|
|
91
|
+
* @param key the data key where the icon value is stored
|
|
92
|
+
*/
|
|
93
|
+
renderGlypField<Key extends KeyOfType<T, string> & string>(parent: PartTag, key: Key) {
|
|
94
|
+
const value = this.data[key]
|
|
95
|
+
parent.a('.tt-readonly-field', field => {
|
|
96
|
+
if (value?.length) {
|
|
97
|
+
field.i(value)
|
|
98
|
+
field.div().text(Glyps.displayName(value))
|
|
99
|
+
} else {
|
|
100
|
+
field.div().text("Pick Icon")
|
|
101
|
+
}
|
|
102
|
+
}).emitClick(this.pickGlypKey, {key})
|
|
103
|
+
}
|
|
69
104
|
}
|
|
70
105
|
|
|
71
106
|
|