-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_grid_config_fields.sh
More file actions
executable file
·102 lines (89 loc) · 3.4 KB
/
Copy pathcreate_grid_config_fields.sh
File metadata and controls
executable file
·102 lines (89 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/bash
# Script to create all Grid_Config__c fields
cd "$(dirname "$0")"
FIELDS_DIR="force-app/main/default/objects/Grid_Config__c/fields"
# Create checkbox fields
create_checkbox() {
local field_name=$1
local label=$2
local default_value=${3:-false}
cat > "$FIELDS_DIR/${field_name}.field-meta.xml" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>${field_name}</fullName>
<defaultValue>${default_value}</defaultValue>
<label>${label}</label>
<trackTrending>false</trackTrending>
<type>Checkbox</type>
</CustomField>
EOF
}
# Create text fields
create_text() {
local field_name=$1
local label=$2
local length=${3:-80}
cat > "$FIELDS_DIR/${field_name}.field-meta.xml" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>${field_name}</fullName>
<label>${label}</label>
<length>${length}</length>
<required>false</required>
<trackTrending>false</trackTrending>
<type>Text</type>
<unique>false</unique>
</CustomField>
EOF
}
# Create number fields
create_number() {
local field_name=$1
local label=$2
local precision=${3:-18}
local scale=${4:-0}
local default_value=$5
cat > "$FIELDS_DIR/${field_name}.field-meta.xml" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
<fullName>${field_name}</fullName>
${default_value:+<defaultValue>${default_value}</defaultValue>}
<label>${label}</label>
<precision>${precision}</precision>
<required>false</required>
<scale>${scale}</scale>
<trackTrending>false</trackTrending>
<type>Number</type>
<unique>false</unique>
</CustomField>
EOF
}
# Grid Settings Fields
create_text "Parent_Field_API_Name__c" "Parent Field API Name"
create_checkbox "Allow_Inline_Edit__c" "Allow Inline Edit" "true"
create_checkbox "Enable_Mass_Update__c" "Enable Mass Update" "true"
create_checkbox "Enable_Row_Actions__c" "Enable Row Actions" "true"
create_number "Sort_Level__c" "Sort Level" 18 0 "1"
create_number "Columns_To_Freeze__c" "Columns To Freeze" 18 0 "0"
create_number "Table_View_Load_Size__c" "Table View Load Size" 18 0 "25"
# Grid Behavior Flags
create_checkbox "Enable_Partial_Save__c" "Enable Partial Save"
create_checkbox "Enable_Load_All__c" "Enable Load All"
create_checkbox "Enable_Quick_Reset__c" "Enable Quick Reset"
create_checkbox "Enable_Conditional_Highlighting__c" "Enable Conditional Highlighting"
# UI Customization
create_checkbox "Show_Object_Name__c" "Show Object Name" "true"
create_checkbox "Show_Object_Icon__c" "Show Object Icon" "true"
create_text "Custom_Icon__c" "Custom Icon"
create_checkbox "Use_Default_Border__c" "Use Default Border" "true"
create_number "Row_Border_Thickness__c" "Row Border Thickness" 3 1 "0.5"
create_number "Column_Border_Thickness__c" "Column Border Thickness" 3 1 "0.5"
# Feature Flags
create_checkbox "Enable_Auto_Refresh__c" "Enable Auto Refresh"
create_number "Auto_Refresh_Interval__c" "Auto Refresh Interval (seconds)" 18 0 "30"
create_checkbox "Enable_Group_By__c" "Enable Group By"
create_text "Group_By_Field__c" "Group By Field"
create_checkbox "Enable_Kanban__c" "Enable Kanban"
create_text "Kanban_Field__c" "Kanban Field"
create_checkbox "Enable_Charts__c" "Enable Charts"
echo "All Grid_Config__c fields created successfully!"