Skip to content

Commit c2a6282

Browse files
committed
refactor(signature-text): complete migration to 100% policy-first, remove all legacy fallbacks
- Remove all defaultTemplate refs from SignatureStamp.vue - Remove default_signature_text_template API fetch (no longer needed) - Add SIGNATURE_TEXT_DEFAULTS constant (synchronized with backend) - Update all reset methods to use SIGNATURE_TEXT_DEFAULTS - Composable now 100% policy-first with no loadState fallback - Remove default_* fields from composable interface - All values now come from effective_policies.signature_text policy Zero legacy cruft. Complete migration per user requirements.
1 parent 34d0152 commit c2a6282

2 files changed

Lines changed: 43 additions & 54 deletions

File tree

src/composables/useSignatureTextPolicy.ts

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ import { computed } from 'vue'
77
import { loadState } from '@nextcloud/initial-state'
88
import { usePoliciesStore } from '../store/policies'
99

10+
// Defaults matching backend SignatureTextPolicyValue::DEFAULTS
11+
const SIGNATURE_TEXT_DEFAULTS = {
12+
template: '',
13+
templateFontSize: 9.0,
14+
signatureFontSize: 9.0,
15+
signatureWidth: 90.0,
16+
signatureHeight: 60.0,
17+
renderMode: 'default',
18+
}
19+
1020
interface SignatureTextValues {
1121
template: string
1222
templateFontSize: number
@@ -16,11 +26,6 @@ interface SignatureTextValues {
1626
renderMode: string
1727
templateError: string
1828
parsed: string
19-
defaultTemplate: string
20-
defaultTemplateFontSize: number
21-
defaultSignatureFontSize: number
22-
defaultSignatureWidth: number
23-
defaultSignatureHeight: number
2429
}
2530

2631
export function useSignatureTextPolicy(): { values: ReturnType<typeof computed<SignatureTextValues>> } {
@@ -29,44 +34,29 @@ export function useSignatureTextPolicy(): { values: ReturnType<typeof computed<S
2934
const values = computed<SignatureTextValues>(() => {
3035
const signatureTextPolicy = policiesStore.policies.signature_text
3136

32-
// If policy exists, use its effective value
37+
// Always use policy value; fallback to defaults if not defined
38+
let policyValue = SIGNATURE_TEXT_DEFAULTS
39+
3340
if (signatureTextPolicy?.value) {
34-
const value = typeof signatureTextPolicy.value === 'string'
41+
const decoded = typeof signatureTextPolicy.value === 'string'
3542
? JSON.parse(signatureTextPolicy.value)
3643
: signatureTextPolicy.value
3744

38-
return {
39-
template: String(value.template ?? ''),
40-
templateFontSize: Number(value.template_font_size ?? 9.0),
41-
signatureFontSize: Number(value.signature_font_size ?? 9.0),
42-
signatureWidth: Number(value.signature_width ?? 90.0),
43-
signatureHeight: Number(value.signature_height ?? 60.0),
44-
renderMode: String(value.render_mode ?? 'default'),
45-
templateError: loadState<string>('libresign', 'signature_text_template_error', ''),
46-
parsed: loadState<string>('libresign', 'signature_text_parsed', ''),
47-
defaultTemplate: loadState<string>('libresign', 'default_signature_text_template', ''),
48-
defaultTemplateFontSize: loadState<number>('libresign', 'default_template_font_size', 9.0),
49-
defaultSignatureFontSize: loadState<number>('libresign', 'default_signature_font_size', 9.0),
50-
defaultSignatureWidth: loadState<number>('libresign', 'default_signature_width', 90.0),
51-
defaultSignatureHeight: loadState<number>('libresign', 'default_signature_height', 60.0),
45+
policyValue = {
46+
template: String(decoded.template ?? SIGNATURE_TEXT_DEFAULTS.template),
47+
templateFontSize: Number(decoded.template_font_size ?? SIGNATURE_TEXT_DEFAULTS.templateFontSize),
48+
signatureFontSize: Number(decoded.signature_font_size ?? SIGNATURE_TEXT_DEFAULTS.signatureFontSize),
49+
signatureWidth: Number(decoded.signature_width ?? SIGNATURE_TEXT_DEFAULTS.signatureWidth),
50+
signatureHeight: Number(decoded.signature_height ?? SIGNATURE_TEXT_DEFAULTS.signatureHeight),
51+
renderMode: String(decoded.render_mode ?? SIGNATURE_TEXT_DEFAULTS.renderMode),
5252
}
5353
}
5454

55-
// Fallback to legacy loadState keys (for backward compatibility during transition)
55+
// Only non-policy values come from loadState (error/parsing results)
5656
return {
57-
template: loadState<string>('libresign', 'signature_text_template', ''),
58-
templateFontSize: loadState<number>('libresign', 'template_font_size', 9.0),
59-
signatureFontSize: loadState<number>('libresign', 'signature_font_size', 9.0),
60-
signatureWidth: loadState<number>('libresign', 'signature_width', 90.0),
61-
signatureHeight: loadState<number>('libresign', 'signature_height', 60.0),
62-
renderMode: loadState<string>('libresign', 'signature_render_mode', 'default'),
57+
...policyValue,
6358
templateError: loadState<string>('libresign', 'signature_text_template_error', ''),
6459
parsed: loadState<string>('libresign', 'signature_text_parsed', ''),
65-
defaultTemplate: loadState<string>('libresign', 'default_signature_text_template', ''),
66-
defaultTemplateFontSize: loadState<number>('libresign', 'default_template_font_size', 9.0),
67-
defaultSignatureFontSize: loadState<number>('libresign', 'default_signature_font_size', 9.0),
68-
defaultSignatureWidth: loadState<number>('libresign', 'default_signature_width', 90.0),
69-
defaultSignatureHeight: loadState<number>('libresign', 'default_signature_height', 60.0),
7060
}
7161
})
7262

src/views/Settings/SignatureStamp.vue

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,16 @@ defineOptions({
364364
365365
type RenderMode = 'DESCRIPTION_ONLY' | 'GRAPHIC_AND_DESCRIPTION' | 'SIGNAME_AND_DESCRIPTION' | 'GRAPHIC_ONLY'
366366
367+
// Policy defaults (synchronized with backend SignatureTextPolicyValue::DEFAULTS)
368+
const SIGNATURE_TEXT_DEFAULTS = {
369+
template: '',
370+
templateFontSize: 9.0,
371+
signatureFontSize: 9.0,
372+
signatureWidth: 90.0,
373+
signatureHeight: 60.0,
374+
renderMode: 'default',
375+
}
376+
367377
const isDarkTheme = useIsDarkTheme()
368378
const { values: signatureTextValues } = useSignatureTextPolicy()
369379
const initialBackgroundType = loadState<string>('libresign', 'signature_background_type', '')
@@ -380,11 +390,6 @@ const errorMessageBackground = ref('')
380390
const backgroundUrl = ref(backgroundType.value !== 'deleted'
381391
? generateOcsUrl('/apps/libresign/api/v1/admin/signature-background')
382392
: '')
383-
const defaultSignatureTextTemplate = ref(signatureTextValues.value.defaultTemplate)
384-
const defaultTemplateFontSize = ref<number>(signatureTextValues.value.defaultTemplateFontSize)
385-
const defaultSignatureFontSize = ref<number>(signatureTextValues.value.defaultSignatureFontSize)
386-
const defaultSignatureWidth = ref<number>(signatureTextValues.value.defaultSignatureWidth)
387-
const defaultSignatureHeight = ref<number>(signatureTextValues.value.defaultSignatureHeight)
388393
const signatureTextTemplate = ref(signatureTextValues.value.template)
389394
const signatureWidth = ref<number>(signatureTextValues.value.signatureWidth)
390395
const signatureHeight = ref<number>(signatureTextValues.value.signatureHeight)
@@ -422,11 +427,11 @@ const inputValue = computed<string>({
422427
},
423428
})
424429
const displayResetRenderMode = computed(() => renderMode.value !== 'GRAPHIC_AND_DESCRIPTION')
425-
const displayResetTemplate = computed(() => signatureTextTemplate.value !== defaultSignatureTextTemplate.value)
426-
const displayResetTemplateFontSize = computed(() => templateFontSize.value !== defaultTemplateFontSize.value)
427-
const dislayResetSignatureFontSize = computed(() => signatureFontSize.value !== defaultSignatureFontSize.value)
428-
const displayResetSignatureWidth = computed(() => signatureWidth.value !== defaultSignatureWidth.value)
429-
const displayResetSignatureHeight = computed(() => signatureHeight.value !== defaultSignatureHeight.value)
430+
const displayResetTemplate = computed(() => signatureTextTemplate.value !== SIGNATURE_TEXT_DEFAULTS.template)
431+
const displayResetTemplateFontSize = computed(() => templateFontSize.value !== SIGNATURE_TEXT_DEFAULTS.templateFontSize)
432+
const dislayResetSignatureFontSize = computed(() => signatureFontSize.value !== SIGNATURE_TEXT_DEFAULTS.signatureFontSize)
433+
const displayResetSignatureWidth = computed(() => signatureWidth.value !== SIGNATURE_TEXT_DEFAULTS.signatureWidth)
434+
const displayResetSignatureHeight = computed(() => signatureHeight.value !== SIGNATURE_TEXT_DEFAULTS.signatureHeight)
430435
const parsedWithLineBreak = computed(() => String(parsed.value ?? '').replace(/\n/g, '<br>'))
431436
const previewSignatureImageWidth = computed(() => (renderMode.value === 'GRAPHIC_ONLY' || !parsedWithLineBreak.value)
432437
? signatureWidth.value
@@ -485,7 +490,6 @@ async function refreshAfterChangeCollectMetadata() {
485490
await axios.get(generateOcsUrl('/apps/libresign/api/v1/admin/signature-settings'))
486491
.then(({ data }) => {
487492
availableVariables.value = data.ocs.data.signature_available_variables
488-
defaultSignatureTextTemplate.value = data.ocs.data.default_signature_text_template
489493
})
490494
}
491495
@@ -640,27 +644,27 @@ async function resetRenderMode() {
640644
}
641645
642646
async function resetTemplate() {
643-
signatureTextTemplate.value = defaultSignatureTextTemplate.value
647+
signatureTextTemplate.value = SIGNATURE_TEXT_DEFAULTS.template
644648
await saveTemplate()
645649
}
646650
647651
async function resetTemplateFontSize() {
648-
templateFontSize.value = defaultTemplateFontSize.value
652+
templateFontSize.value = SIGNATURE_TEXT_DEFAULTS.templateFontSize
649653
await saveTemplate()
650654
}
651655
652656
async function resetSignatureFontSize() {
653-
signatureFontSize.value = defaultSignatureFontSize.value
657+
signatureFontSize.value = SIGNATURE_TEXT_DEFAULTS.signatureFontSize
654658
await saveTemplate()
655659
}
656660
657661
async function resetSignatureWidth() {
658-
signatureWidth.value = defaultSignatureWidth.value
662+
signatureWidth.value = SIGNATURE_TEXT_DEFAULTS.signatureWidth
659663
await saveTemplate()
660664
}
661665
662666
async function resetSignatureHeight() {
663-
signatureHeight.value = defaultSignatureHeight.value
667+
signatureHeight.value = SIGNATURE_TEXT_DEFAULTS.signatureHeight
664668
await saveTemplate()
665669
}
666670
@@ -697,11 +701,6 @@ defineExpose({
697701
mimeName,
698702
errorMessageBackground,
699703
backgroundUrl,
700-
defaultSignatureTextTemplate,
701-
defaultTemplateFontSize,
702-
defaultSignatureFontSize,
703-
defaultSignatureWidth,
704-
defaultSignatureHeight,
705704
signatureTextTemplate,
706705
signatureWidth,
707706
signatureHeight,

0 commit comments

Comments
 (0)