From 35c4049174e15d5525dbc1cac2ba3ec39a133ebe Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 24 Feb 2025 10:23:02 -0600 Subject: [PATCH] Add LinkValues.TO_RECORD_FROM_TABLE_DYNAMIC and FileDownloadValues.DOWNLOAD_URL_DYNAMIC --- .../model/metadata/fields/AdornmentType.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/AdornmentType.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/AdornmentType.java index 29982aad..9fb76f41 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/AdornmentType.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/AdornmentType.java @@ -23,8 +23,12 @@ package com.kingsrook.qqq.backend.core.model.metadata.fields; import java.io.Serializable; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.Objects; import com.kingsrook.qqq.backend.core.model.metadata.possiblevalues.PossibleValueEnum; import com.kingsrook.qqq.backend.core.utils.Pair; +import com.kingsrook.qqq.backend.core.utils.ValueUtils; import com.kingsrook.qqq.backend.core.utils.collections.MapBuilder; @@ -48,14 +52,14 @@ public enum AdornmentType ////////////////////////////////////////////////////////////////////////// - /******************************************************************************* ** *******************************************************************************/ public interface LinkValues { - String TARGET = "target"; - String TO_RECORD_FROM_TABLE = "toRecordFromTable"; + String TARGET = "target"; + String TO_RECORD_FROM_TABLE = "toRecordFromTable"; + String TO_RECORD_FROM_TABLE_DYNAMIC = "toRecordFromTableDynamic"; } @@ -72,6 +76,8 @@ public enum AdornmentType String SUPPLEMENTAL_PROCESS_NAME = "supplementalProcessName"; String SUPPLEMENTAL_CODE_REFERENCE = "supplementalCodeReference"; + String DOWNLOAD_URL_DYNAMIC = "downloadUrlDynamic"; + //////////////////////////////////////////////////// // use these two together, as in: // // FILE_NAME_FORMAT = "Order %s Packing Slip.pdf" // @@ -79,6 +85,17 @@ public enum AdornmentType //////////////////////////////////////////////////// String FILE_NAME_FORMAT = "fileNameFormat"; String FILE_NAME_FORMAT_FIELDS = "fileNameFormatFields"; + + /*************************************************************************** + ** + ***************************************************************************/ + static String makeFieldDownloadUrl(String tableName, Serializable primaryKey, String fieldName, String fileName) + { + return ("/data/" + tableName + "/" + + URLEncoder.encode(Objects.requireNonNullElse(ValueUtils.getValueAsString(primaryKey), ""), StandardCharsets.UTF_8) + "/" + + fieldName + "/" + + URLEncoder.encode(Objects.requireNonNullElse(fileName, ""), StandardCharsets.UTF_8)); + } }