profoundjs 6.2.0 → 6.4.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/htdocs/fusionchartsxt/js/maps/fusioncharts.india.js +2 -1
- package/htdocs/fusionchartsxt/js/maps/fusioncharts.jammuandkashmir.js +8 -2
- package/htdocs/fusionchartsxt/js/maps/fusioncharts.ladakh.js +238 -0
- package/htdocs/fusionchartsxt/js/pui-fusioncharts.js +368 -53
- package/htdocs/profoundui/proddata/css/logic.css +21 -2
- package/htdocs/profoundui/proddata/css/profoundui.css +16 -0
- package/htdocs/profoundui/proddata/js/designer.js +3862 -3846
- package/htdocs/profoundui/proddata/js/key_management.js +3 -3
- package/htdocs/profoundui/proddata/js/rich-display-react-component.js +5 -5
- package/htdocs/profoundui/proddata/js/rich-display-vue-component.js +3 -3
- package/htdocs/profoundui/proddata/js/runtime.js +1234 -1230
- package/htdocs/profoundui/proddata/js/soapclient.js +22 -22
- package/index.js +4 -4
- package/package.json +2 -1
- package/profound.jse +1 -1
- package/setup/call.js +1 -1
- package/setup/completeInstall.js +51 -56
- package/setup/convertStartJS.js +40 -30
- package/setup/encrypt_client_file.js +4 -0
- package/setup/install.js +1 -1
- package/setup/install_utils.js +44 -30
- package/setup/lic_client.js +1 -1
- package/setup/modules/papisamples/.noderun/settings.json +5 -0
- package/setup/modules/papisamples/APISample.api.json +313 -0
- package/setup/modules/papisamples/APISample.js +55 -0
- package/setup/modules/papisamples/APISample.json +751 -0
- package/setup/modules/papisamples/README.md +17 -0
- package/setup/modules/papisamples/hobbyshop.csv +6 -0
- package/setup/modules/papisamples/readCSVFile.js +136 -0
- package/setup/pjsdist.savf +0 -0
- package/setup/plugins/mathoperation.js +84 -0
- package/setup/removeExtraComponents.js +4 -6
- package/setup/setup.js +50 -14
|
@@ -0,0 +1,751 @@
|
|
|
1
|
+
{
|
|
2
|
+
"text": "",
|
|
3
|
+
"logic": {
|
|
4
|
+
"load local apiurl button click": {
|
|
5
|
+
"steps": [
|
|
6
|
+
{
|
|
7
|
+
"text": "Set widget value",
|
|
8
|
+
"answers": {
|
|
9
|
+
"plugin": "Client-side:set-widget-value",
|
|
10
|
+
"widget": "tbURL",
|
|
11
|
+
"preview": "",
|
|
12
|
+
"value": "\"/run/papisamples/wsapi/apisample\"",
|
|
13
|
+
"comment": "Sets the URL to the API file path in case it is removed for reasons unknown "
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"get button click": {
|
|
19
|
+
"steps": [
|
|
20
|
+
{
|
|
21
|
+
"text": "Retrieve API URL",
|
|
22
|
+
"answers": {
|
|
23
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
24
|
+
"widget": "tbURL",
|
|
25
|
+
"preview": "",
|
|
26
|
+
"client_variable": "URL",
|
|
27
|
+
"comment": ""
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"text": "Retrieve Row ID",
|
|
32
|
+
"answers": {
|
|
33
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
34
|
+
"widget": "tbRowID",
|
|
35
|
+
"preview": "",
|
|
36
|
+
"client_variable": "rowID",
|
|
37
|
+
"comment": ""
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"text": "GET API request",
|
|
42
|
+
"answers": {
|
|
43
|
+
"plugin": "Client-side:client-side-code",
|
|
44
|
+
"code": "/**\r\n * Take the client-side variables set in previous steps, and request for one or more rows.\r\n */\r\nconst requestParms = {\r\n method: \"GET\",\r\n url: URL,\r\n headers: { \"content-type\": \"text/HTML\" },\r\n suppressAlert: true,\r\n params: {\r\n rowid: rowID\r\n },\r\n handler: function(response) {\r\n if (response.error) {\r\n pui.set(\"errorMsg\", response.error);\r\n pui.set(\"tbResult\", \"\");\r\n }\r\n else {\r\n pui.set(\"errorMsg\", \"\");\r\n pui.set(\"tbResult\", JSON.stringify(response.result, null, 2));\r\n // Populate the grid by calling methods that are defined in the screen's \"onload\" event.\r\n papisamples.clearGrid();\r\n papisamples.fillGrid(response.result);\r\n }\r\n }\r\n};\r\n\r\n// Set request window with generated API call:\r\npui.set(\"tbRequest\", `${requestParms.method} - ${requestParms.url}\r\nrowid: ${requestParms.params.rowid}`);\r\n// Send the request.\r\najaxJSON(requestParms);\r\n",
|
|
45
|
+
"comment": "Calls the Sample API file and retrieve data from the CSV file"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"post button click": {
|
|
51
|
+
"steps": [
|
|
52
|
+
{
|
|
53
|
+
"text": "Retrieve API URL",
|
|
54
|
+
"answers": {
|
|
55
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
56
|
+
"widget": "tbURL",
|
|
57
|
+
"preview": "",
|
|
58
|
+
"client_variable": "URL",
|
|
59
|
+
"comment": ""
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"text": "Retrieve Row ID",
|
|
64
|
+
"answers": {
|
|
65
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
66
|
+
"widget": "tbRowID",
|
|
67
|
+
"preview": "",
|
|
68
|
+
"client_variable": "rowID",
|
|
69
|
+
"comment": ""
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"text": "POST API request",
|
|
74
|
+
"answers": {
|
|
75
|
+
"plugin": "Client-side:client-side-code",
|
|
76
|
+
"code": "/**\r\n * POST Button Clicked.\r\n * Client-side code, runs in the browser. This step gets wrapped inside a function that the client-side framework calls\r\n * when a button is clicked.\r\n */\r\nconst postData = {\r\n rowid: rowID,\r\n pname: getElementValue(\"tbProdName\"),\r\n price: getElementValue(\"tbPrice\"),\r\n quantity: getElementValue(\"tbQuantity\")\r\n};\r\n\r\nconst requestParms = {\r\n method: \"POST\",\r\n url: URL,\r\n headers: { \"content-type\": \"application/json\" },\r\n suppressAlert: true,\r\n postData: JSON.stringify(postData),\r\n // Handle a response for the POST operation, which may have added a record to the grid.\r\n // There are currently no client-side APIs to add grid records; thus, the page must be reloaded\r\n // before new records can be seen. Store the response data into widgets that get submitted,\r\n // and then the reloaded page will have the results and or message.\r\n handler: function(response) {\r\n pui.set(\"tbResult\", \"\");\r\n pui.set(\"message\", \"\");\r\n pui.set(\"txtPostResults\", \"\");\r\n pui.set(\"txtPostMessage\", \"\");\r\n if (typeof response.result === \"object\" && response.result !== null) {\r\n // Store the result and message into widgets that get submitted.\r\n pui.set(\"txtPostResults\", JSON.stringify(response.result, null, 2));\r\n if (typeof response.msg === \"string\" && response.msg.length > 0) {\r\n pui.set(\"txtPostMessage\", response.msg);\r\n }\r\n // Submit the screen to reload it.\r\n pui.click();\r\n }\r\n else if (response.error) {\r\n // Show the error message\r\n pui.set(\"message\", response.error);\r\n }\r\n else {\r\n // Show the unexpected response.\r\n pui.set(\"message\", \"Unexpected response\");\r\n pui.set(\"tbResult\", JSON.stringify(response, null, 2));\r\n }\r\n }\r\n};\r\n\r\n// Set request window with generated API call:\r\npui.set(\"tbRequest\", `${requestParms.method} - ${requestParms.url}\r\nrowid: ${postData.rowid}\r\npname: ${postData.pname}\r\nprice: ${postData.price}\r\nquantity: ${postData.quantity}`);\r\n// Start the request.\r\najaxJSON(requestParms);\r\n",
|
|
77
|
+
"comment": "Calls the Sample API file and adds new data into the CSV file"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"put button click": {
|
|
83
|
+
"steps": [
|
|
84
|
+
{
|
|
85
|
+
"text": "Retrieve API URL",
|
|
86
|
+
"answers": {
|
|
87
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
88
|
+
"widget": "tbURL",
|
|
89
|
+
"preview": "",
|
|
90
|
+
"client_variable": "URL",
|
|
91
|
+
"comment": ""
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"text": "Retrieve Row ID",
|
|
96
|
+
"answers": {
|
|
97
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
98
|
+
"widget": "tbRowID",
|
|
99
|
+
"preview": "",
|
|
100
|
+
"client_variable": "rowID",
|
|
101
|
+
"comment": ""
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"text": "PUT API request",
|
|
106
|
+
"answers": {
|
|
107
|
+
"plugin": "Client-side:client-side-code",
|
|
108
|
+
"code": "/**\r\n * PUT Button Clicked.\r\n * Client-side code, runs in the browser. This step gets wrapped inside a function that the client-side framework calls\r\n * when a button is clicked.\r\n */\r\nconst requestParms = {\r\n method: \"PUT\",\r\n url: URL,\r\n headers: { \"content-type\": \"text/HTML\" },\r\n suppressAlert: true,\r\n params: {\r\n rowid: rowID,\r\n pname: getElementValue(\"tbProdName\"),\r\n price: getElementValue(\"tbPrice\"),\r\n quantity: getElementValue(\"tbQuantity\")\r\n },\r\n // The handler is defined in the screen's \"onload\" event.\r\n handler: papisamples.handleJSONResponse\r\n};\r\n\r\n// Set request window with generated API call:\r\npui.set(\"tbRequest\", `${requestParms.method} - ${requestParms.url}\r\nrowid: ${requestParms.params.rowid}\r\npname: ${requestParms.params.pname}\r\nprice: ${requestParms.params.price}\r\nquantity: ${requestParms.params.quantity}`);\r\n// Start the request.\r\najaxJSON(requestParms);\r\n",
|
|
109
|
+
"comment": "Calls the Sample API file and updates data from a specific row in the CSV file"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"delete button click": {
|
|
115
|
+
"steps": [
|
|
116
|
+
{
|
|
117
|
+
"text": "Retrieve API URL",
|
|
118
|
+
"answers": {
|
|
119
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
120
|
+
"widget": "tbURL",
|
|
121
|
+
"preview": "",
|
|
122
|
+
"client_variable": "URL",
|
|
123
|
+
"comment": ""
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"text": "Retrieve Row ID",
|
|
128
|
+
"answers": {
|
|
129
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
130
|
+
"widget": "tbRowID",
|
|
131
|
+
"preview": "",
|
|
132
|
+
"client_variable": "rowID",
|
|
133
|
+
"comment": ""
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"text": "Retrieve Product Name",
|
|
138
|
+
"answers": {
|
|
139
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
140
|
+
"widget": "tbProdName",
|
|
141
|
+
"preview": "",
|
|
142
|
+
"client_variable": "prodName",
|
|
143
|
+
"comment": ""
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"text": "Retrieve Price",
|
|
148
|
+
"answers": {
|
|
149
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
150
|
+
"widget": "tbPrice",
|
|
151
|
+
"preview": "",
|
|
152
|
+
"client_variable": "prodPrice",
|
|
153
|
+
"comment": ""
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"text": "Retrieve Quantity",
|
|
158
|
+
"answers": {
|
|
159
|
+
"plugin": "Client-side:retrieve-widget-value",
|
|
160
|
+
"widget": "tbQuantity",
|
|
161
|
+
"preview": "",
|
|
162
|
+
"client_variable": "pcount",
|
|
163
|
+
"comment": ""
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"text": "DELETE API Request",
|
|
168
|
+
"answers": {
|
|
169
|
+
"plugin": "Client-side:client-side-code",
|
|
170
|
+
"code": "/**\r\n * Delete Button Clicked.\r\n * Client-side code, runs in the browser. This step gets wrapped inside a function that the client-side framework calls\r\n * when a button is clicked.\r\n */\r\n// Query comes from values in two other widgets.\r\n\r\n// Make the request and expect a JSON response.\r\nvar requestParms = {\r\n method: \"DELETE\",\r\n url: URL,\r\n headers: {\"content-type\": 'text/HTML'},\r\n suppressAlert: true,\r\n params: {\r\n rowid: rowID,\r\n pname: prodName,\r\n price: prodPrice,\r\n quantity: pcount\r\n },\r\n // The handler is defined in the screen's \"onload\" event.\r\n handler: papisamples.handleJSONResponse\r\n};\r\n\r\n// Set request window with generated API call:\r\npui.set(\"tbRequest\",`${requestParms.method} - ${requestParms.url}\r\nrowid: ${requestParms.params.rowid}\r\npname: ${requestParms.params.pname}\r\nprice: ${requestParms.params.price}\r\nquantity: ${requestParms.params.quantity}`);\r\n// Start the request.\r\najaxJSON(requestParms);\r\n",
|
|
171
|
+
"comment": "Calls the Sample API file and deletes specified row data from the CSV file"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"formats": [
|
|
178
|
+
{
|
|
179
|
+
"screen": {
|
|
180
|
+
"record format name": "mainscreen",
|
|
181
|
+
"onload": "if (typeof papisamples !== \"object\" || papisamples === null){\n papisamples = {};\n}\n\n/**\n * Clear the grid records.\n * Expect this code to be initiated by clicking on GET, POST, PUT, or DELETE buttons.\n */\npapisamples.clearGrid = function(){\n var gridUI = getObj(\"grShopUI\");\n var i, count = gridUI.grid.getRecordCount();\n\n for (i = 1; i <= count; i++){\n gridUI.grid.setDataValue(i,\"ID\",\" \");\n gridUI.grid.setDataValue(i,\"Name\",\" \");\n gridUI.grid.setDataValue(i,\"Price\",\" \");\n gridUI.grid.setDataValue(i,\"Quantity\",\" \");\n }\n};\n\n/**\n * Populate the grid with data from the parameter object.\n * Expect this code to be initiated by clicking on GET, POST, PUT, or DELETE buttons.\n * @param {Object} result An array of objects or a single record object.\n */\npapisamples.fillGrid = function(result){\n var gridUI = getObj(\"grShopUI\");\n\n if (Array.isArray(result)){\n result.forEach(function(item,index){\n gridUI.grid.setDataValue(index+1,\"ID\",item.ID);\n gridUI.grid.setDataValue(index+1,\"Name\",item.Name);\n gridUI.grid.setDataValue(index+1,\"Price\",item.Price);\n gridUI.grid.setDataValue(index+1,\"Quantity\",item.Quantity); \n });\n }\n else if (typeof result === \"object\" && result !== null){\n gridUI.grid.setDataValue(1,\"ID\",result.ID);\n gridUI.grid.setDataValue(1,\"Name\",result.Name);\n gridUI.grid.setDataValue(1,\"Price\",result.Price);\n gridUI.grid.setDataValue(1,\"Quantity\",result.Quantity);\n }\n};\n\n/**\n * Define a handler for calls to ajaxJSON when the expected response contains\n * either an error or a result property.\n * Set either the error field or the result field, and populate the grid.\n */\npapisamples.handleJSONResponse = function(response){\n pui.set(\"message\", \"\");\n pui.set(\"tbResult\", \"\");\n if (typeof response.result === \"object\" && response.result !== null){\n // Show the result\n pui.set(\"tbResult\", JSON.stringify(response.result, null, 2));\n if (typeof response.msg === \"string\" && response.msg.length > 0){\n pui.set(\"message\", response.msg);\n }\n papisamples.clearGrid();\n papisamples.fillGrid(response.result);\n }\n else if (response.error) {\n // Show the error message\n pui.set(\"message\", response.error);\n }\n else {\n pui.set(\"message\", \"Unexpected response\");\n pui.set(\"tbResult\", JSON.stringify(response, null, 2));\n }\n};\n"
|
|
182
|
+
},
|
|
183
|
+
"items": [
|
|
184
|
+
{
|
|
185
|
+
"id": "Layout1",
|
|
186
|
+
"field type": "layout",
|
|
187
|
+
"css class": "blueprint-panel",
|
|
188
|
+
"left": "calc(50% - 417px)",
|
|
189
|
+
"top": "10px",
|
|
190
|
+
"template": "css panel",
|
|
191
|
+
"header text": "API Sample App",
|
|
192
|
+
"header theme": "blueprint-dark-header",
|
|
193
|
+
"body theme": "blueprint-white-body",
|
|
194
|
+
"height": "940px",
|
|
195
|
+
"width": "835px",
|
|
196
|
+
"z index": "8",
|
|
197
|
+
"css class 2": "blueprint-defaults"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"id": "GraphicButton1",
|
|
201
|
+
"field type": "graphic button",
|
|
202
|
+
"css class": "pui-solid-button-no",
|
|
203
|
+
"left": "calc(50% + 375px)",
|
|
204
|
+
"top": "15px",
|
|
205
|
+
"width": "25px",
|
|
206
|
+
"icon position": "left",
|
|
207
|
+
"css class 2": "blueprint-defaults",
|
|
208
|
+
"icon": "material:clear",
|
|
209
|
+
"height": "25px",
|
|
210
|
+
"response": {
|
|
211
|
+
"fieldName": "exit",
|
|
212
|
+
"customTrue": "",
|
|
213
|
+
"customFalse": "",
|
|
214
|
+
"dataType": "indicator",
|
|
215
|
+
"formatting": "Indicator",
|
|
216
|
+
"indFormat": "1 / 0"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "tbRequest",
|
|
221
|
+
"field type": "html container",
|
|
222
|
+
"left": "150px",
|
|
223
|
+
"top": "595px",
|
|
224
|
+
"width": "660px",
|
|
225
|
+
"height": "90px",
|
|
226
|
+
"html": {
|
|
227
|
+
"fieldName": "tbRequest",
|
|
228
|
+
"trimLeading": "false",
|
|
229
|
+
"trimTrailing": "true",
|
|
230
|
+
"blankFill": "false",
|
|
231
|
+
"rjZeroFill": "false",
|
|
232
|
+
"dataType": "string",
|
|
233
|
+
"formatting": "Text",
|
|
234
|
+
"textTransform": "none",
|
|
235
|
+
"designValue": "[tbRequest]"
|
|
236
|
+
},
|
|
237
|
+
"inline style": "border: solid 1px #ccc;",
|
|
238
|
+
"white space": "pre",
|
|
239
|
+
"overflow y": "auto",
|
|
240
|
+
"layout": "Layout1",
|
|
241
|
+
"container": "1"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"id": "btGet",
|
|
245
|
+
"field type": "button",
|
|
246
|
+
"css class": "button",
|
|
247
|
+
"value": "GET",
|
|
248
|
+
"left": "20px",
|
|
249
|
+
"top": "445px",
|
|
250
|
+
"width": "115px",
|
|
251
|
+
"height": "25px",
|
|
252
|
+
"onclick": {
|
|
253
|
+
"routine": "get button click",
|
|
254
|
+
"designValue": "get button click"
|
|
255
|
+
},
|
|
256
|
+
"layout": "Layout1",
|
|
257
|
+
"container": "1"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"id": "tbPost",
|
|
261
|
+
"field type": "button",
|
|
262
|
+
"css class": "button",
|
|
263
|
+
"value": "POST",
|
|
264
|
+
"left": "20px",
|
|
265
|
+
"top": "485px",
|
|
266
|
+
"height": "25px",
|
|
267
|
+
"width": "115px",
|
|
268
|
+
"onclick": {
|
|
269
|
+
"routine": "post button click",
|
|
270
|
+
"designValue": "post button click"
|
|
271
|
+
},
|
|
272
|
+
"description": "Append a record",
|
|
273
|
+
"layout": "Layout1",
|
|
274
|
+
"container": "1"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": "tbPut",
|
|
278
|
+
"field type": "button",
|
|
279
|
+
"css class": "button",
|
|
280
|
+
"value": "PUT",
|
|
281
|
+
"left": "20px",
|
|
282
|
+
"top": "525px",
|
|
283
|
+
"height": "25px",
|
|
284
|
+
"width": "115px",
|
|
285
|
+
"onclick": {
|
|
286
|
+
"routine": "put button click",
|
|
287
|
+
"designValue": "put button click"
|
|
288
|
+
},
|
|
289
|
+
"layout": "Layout1",
|
|
290
|
+
"container": "1"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "tbDelete",
|
|
294
|
+
"field type": "button",
|
|
295
|
+
"css class": "button",
|
|
296
|
+
"value": "DELETE",
|
|
297
|
+
"left": "20px",
|
|
298
|
+
"top": "565px",
|
|
299
|
+
"height": "25px",
|
|
300
|
+
"width": "115px",
|
|
301
|
+
"onclick": {
|
|
302
|
+
"routine": "delete button click",
|
|
303
|
+
"designValue": "delete button click"
|
|
304
|
+
},
|
|
305
|
+
"layout": "Layout1",
|
|
306
|
+
"container": "1"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"id": "lb2",
|
|
310
|
+
"field type": "output field",
|
|
311
|
+
"css class": "label",
|
|
312
|
+
"value": "Request Query Generated:",
|
|
313
|
+
"left": "150px",
|
|
314
|
+
"top": "570px",
|
|
315
|
+
"width": "185px",
|
|
316
|
+
"layout": "Layout1",
|
|
317
|
+
"container": "1"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"id": "tbURL",
|
|
321
|
+
"field type": "textbox",
|
|
322
|
+
"css class": "input",
|
|
323
|
+
"left": "150px",
|
|
324
|
+
"top": "445px",
|
|
325
|
+
"width": "665px",
|
|
326
|
+
"height": "25px",
|
|
327
|
+
"value": {
|
|
328
|
+
"fieldName": "tbURL",
|
|
329
|
+
"trimLeading": "false",
|
|
330
|
+
"trimTrailing": "true",
|
|
331
|
+
"blankFill": "false",
|
|
332
|
+
"rjZeroFill": "false",
|
|
333
|
+
"dataType": "string",
|
|
334
|
+
"formatting": "Text",
|
|
335
|
+
"textTransform": "none",
|
|
336
|
+
"designValue": "[tbURL]"
|
|
337
|
+
},
|
|
338
|
+
"read only": "true",
|
|
339
|
+
"layout": "Layout1",
|
|
340
|
+
"container": "1"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"id": "lb1",
|
|
344
|
+
"field type": "output field",
|
|
345
|
+
"css class": "label",
|
|
346
|
+
"value": "Request URL:",
|
|
347
|
+
"left": "150px",
|
|
348
|
+
"top": "415px",
|
|
349
|
+
"width": "95px",
|
|
350
|
+
"layout": "Layout1",
|
|
351
|
+
"container": "1"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"id": "divAPIRows",
|
|
355
|
+
"field type": "layout",
|
|
356
|
+
"left": "150px",
|
|
357
|
+
"top": "480px",
|
|
358
|
+
"template": "simple container",
|
|
359
|
+
"height": "85px",
|
|
360
|
+
"width": "670px",
|
|
361
|
+
"layout": "Layout1",
|
|
362
|
+
"container": "1"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"id": "tbLocalURL",
|
|
366
|
+
"field type": "button",
|
|
367
|
+
"css class": "button",
|
|
368
|
+
"value": "Load local API URL",
|
|
369
|
+
"left": "625px",
|
|
370
|
+
"top": "410px",
|
|
371
|
+
"height": "25px",
|
|
372
|
+
"width": "190px",
|
|
373
|
+
"onclick": {
|
|
374
|
+
"routine": "load local apiurl button click",
|
|
375
|
+
"designValue": "load local apiurl button click"
|
|
376
|
+
},
|
|
377
|
+
"visibility": "hidden",
|
|
378
|
+
"layout": "Layout1",
|
|
379
|
+
"container": "1"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"id": "lb8",
|
|
383
|
+
"field type": "output field",
|
|
384
|
+
"css class": "label",
|
|
385
|
+
"value": "Result:",
|
|
386
|
+
"left": "15px",
|
|
387
|
+
"top": "720px",
|
|
388
|
+
"width": "50px",
|
|
389
|
+
"layout": "Layout1",
|
|
390
|
+
"container": "1"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"id": "tbResult",
|
|
394
|
+
"field type": "html container",
|
|
395
|
+
"left": "15px",
|
|
396
|
+
"top": "750px",
|
|
397
|
+
"html": {
|
|
398
|
+
"fieldName": "tbResults",
|
|
399
|
+
"trimLeading": "false",
|
|
400
|
+
"trimTrailing": "true",
|
|
401
|
+
"blankFill": "false",
|
|
402
|
+
"rjZeroFill": "false",
|
|
403
|
+
"dataType": "string",
|
|
404
|
+
"formatting": "Text",
|
|
405
|
+
"textTransform": "none",
|
|
406
|
+
"designValue": "[tbResults]"
|
|
407
|
+
},
|
|
408
|
+
"white space": "pre",
|
|
409
|
+
"width": "795px",
|
|
410
|
+
"height": "135px",
|
|
411
|
+
"overflow y": "auto",
|
|
412
|
+
"font family": "Monospace",
|
|
413
|
+
"layout": "Layout1",
|
|
414
|
+
"container": "1"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"id": "grShopUI",
|
|
418
|
+
"field type": "grid",
|
|
419
|
+
"css class": "crystal-grid",
|
|
420
|
+
"left": "15px",
|
|
421
|
+
"top": "15px",
|
|
422
|
+
"number of rows": "14",
|
|
423
|
+
"number of columns": "4",
|
|
424
|
+
"column widths": "103,386,176,137",
|
|
425
|
+
"column headings": "ID,Product Name,Price,Quantity",
|
|
426
|
+
"header height": "28",
|
|
427
|
+
"row height": "26",
|
|
428
|
+
"height": "366px",
|
|
429
|
+
"width": "803px",
|
|
430
|
+
"record format name": "grHobbyShop",
|
|
431
|
+
"scrollbar": "sliding",
|
|
432
|
+
"onrowclick": "let grid = getObj(\"grShopUI\").grid;\n\n// Set the value of the textboxes in the form below the grid with the record data.\npui.set(\"tbRowID\", grid.getDataValue(row, \"ID\"));\npui.set(\"tbPrice\", grid.getDataValue(row, \"Price\"));\npui.set(\"tbProdName\", grid.getDataValue(row, \"Name\"));\npui.set(\"tbQuantity\", grid.getDataValue(row, \"Quantity\"));\n",
|
|
433
|
+
"row selection": "single",
|
|
434
|
+
"layout": "Layout1",
|
|
435
|
+
"container": "1"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"id": "labelMsg",
|
|
439
|
+
"field type": "output field",
|
|
440
|
+
"css class": "label",
|
|
441
|
+
"value": "Message:",
|
|
442
|
+
"left": "15px",
|
|
443
|
+
"top": "690px",
|
|
444
|
+
"width": "110px",
|
|
445
|
+
"text align": "left",
|
|
446
|
+
"layout": "Layout1",
|
|
447
|
+
"container": "1"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"id": "message",
|
|
451
|
+
"field type": "output field",
|
|
452
|
+
"value": {
|
|
453
|
+
"fieldName": "message",
|
|
454
|
+
"trimLeading": "false",
|
|
455
|
+
"trimTrailing": "true",
|
|
456
|
+
"blankFill": "false",
|
|
457
|
+
"rjZeroFill": "false",
|
|
458
|
+
"dataType": "string",
|
|
459
|
+
"formatting": "Text",
|
|
460
|
+
"textTransform": "none",
|
|
461
|
+
"designValue": "[message]"
|
|
462
|
+
},
|
|
463
|
+
"left": "140px",
|
|
464
|
+
"top": "690px",
|
|
465
|
+
"width": "660px",
|
|
466
|
+
"layout": "Layout1",
|
|
467
|
+
"container": "1"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"id": "txtPostMessage",
|
|
471
|
+
"field type": "textbox",
|
|
472
|
+
"css class": "input",
|
|
473
|
+
"value": {
|
|
474
|
+
"fieldName": "postMessage",
|
|
475
|
+
"trimLeading": "false",
|
|
476
|
+
"trimTrailing": "true",
|
|
477
|
+
"blankFill": "false",
|
|
478
|
+
"rjZeroFill": "false",
|
|
479
|
+
"dataType": "string",
|
|
480
|
+
"formatting": "Text",
|
|
481
|
+
"textTransform": "none",
|
|
482
|
+
"designValue": "[postMessage]"
|
|
483
|
+
},
|
|
484
|
+
"left": "735px",
|
|
485
|
+
"top": "695px",
|
|
486
|
+
"width": "70px",
|
|
487
|
+
"description": "Needed so the message from POST persists after a screen submit",
|
|
488
|
+
"visibility": "hidden",
|
|
489
|
+
"layout": "Layout1",
|
|
490
|
+
"container": "1"
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"id": "txtPostResults",
|
|
494
|
+
"field type": "textbox",
|
|
495
|
+
"css class": "input",
|
|
496
|
+
"value": {
|
|
497
|
+
"fieldName": "postResults",
|
|
498
|
+
"trimLeading": "false",
|
|
499
|
+
"trimTrailing": "true",
|
|
500
|
+
"blankFill": "false",
|
|
501
|
+
"rjZeroFill": "false",
|
|
502
|
+
"dataType": "string",
|
|
503
|
+
"formatting": "Text",
|
|
504
|
+
"textTransform": "none",
|
|
505
|
+
"designValue": "[postResults]"
|
|
506
|
+
},
|
|
507
|
+
"left": "735px",
|
|
508
|
+
"top": "715px",
|
|
509
|
+
"description": "Needed so the results from POST persists after a screen submit",
|
|
510
|
+
"visibility": "hidden",
|
|
511
|
+
"width": "80px",
|
|
512
|
+
"layout": "Layout1",
|
|
513
|
+
"container": "1"
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"id": "tbRowID",
|
|
517
|
+
"field type": "textbox",
|
|
518
|
+
"css class": "input",
|
|
519
|
+
"left": "100px",
|
|
520
|
+
"top": "15px",
|
|
521
|
+
"width": "130px",
|
|
522
|
+
"height": "20px",
|
|
523
|
+
"value": {
|
|
524
|
+
"fieldName": "rowID",
|
|
525
|
+
"dataLength": "25",
|
|
526
|
+
"trimLeading": "false",
|
|
527
|
+
"trimTrailing": "true",
|
|
528
|
+
"blankFill": "false",
|
|
529
|
+
"rjZeroFill": "false",
|
|
530
|
+
"dataType": "varchar",
|
|
531
|
+
"formatting": "Text",
|
|
532
|
+
"textTransform": "none",
|
|
533
|
+
"designValue": "[rowID]"
|
|
534
|
+
},
|
|
535
|
+
"layout": "divAPIRows",
|
|
536
|
+
"container": "1"
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"id": "lb3",
|
|
540
|
+
"field type": "output field",
|
|
541
|
+
"css class": "label",
|
|
542
|
+
"value": "Row ID:",
|
|
543
|
+
"left": "-60px",
|
|
544
|
+
"top": "15px",
|
|
545
|
+
"width": "150px",
|
|
546
|
+
"layout": "divAPIRows",
|
|
547
|
+
"container": "1"
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"id": "tbProdName",
|
|
551
|
+
"field type": "textbox",
|
|
552
|
+
"css class": "input",
|
|
553
|
+
"left": "380px",
|
|
554
|
+
"top": "15px",
|
|
555
|
+
"width": "270px",
|
|
556
|
+
"height": "20px",
|
|
557
|
+
"value": {
|
|
558
|
+
"fieldName": "pname",
|
|
559
|
+
"dataLength": "25",
|
|
560
|
+
"trimLeading": "false",
|
|
561
|
+
"trimTrailing": "true",
|
|
562
|
+
"blankFill": "false",
|
|
563
|
+
"rjZeroFill": "false",
|
|
564
|
+
"dataType": "varchar",
|
|
565
|
+
"formatting": "Text",
|
|
566
|
+
"textTransform": "none",
|
|
567
|
+
"designValue": "[pname]"
|
|
568
|
+
},
|
|
569
|
+
"layout": "divAPIRows",
|
|
570
|
+
"container": "1"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"id": "lb4",
|
|
574
|
+
"field type": "output field",
|
|
575
|
+
"css class": "label",
|
|
576
|
+
"value": "Product Name:",
|
|
577
|
+
"left": "255px",
|
|
578
|
+
"top": "15px",
|
|
579
|
+
"width": "110px",
|
|
580
|
+
"layout": "divAPIRows",
|
|
581
|
+
"container": "1"
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"id": "tbPrice",
|
|
585
|
+
"field type": "textbox",
|
|
586
|
+
"css class": "input",
|
|
587
|
+
"left": "100px",
|
|
588
|
+
"top": "45px",
|
|
589
|
+
"height": "20px",
|
|
590
|
+
"width": "130px",
|
|
591
|
+
"value": {
|
|
592
|
+
"fieldName": "pprice",
|
|
593
|
+
"dataLength": "10",
|
|
594
|
+
"decPos": "0",
|
|
595
|
+
"numSep": "false",
|
|
596
|
+
"zeroBalance": "false",
|
|
597
|
+
"numBlankFill": "false",
|
|
598
|
+
"zeroFill": "false",
|
|
599
|
+
"noExtraSpaces": "false",
|
|
600
|
+
"curSym": "",
|
|
601
|
+
"dataType": "zoned",
|
|
602
|
+
"formatting": "Number",
|
|
603
|
+
"negNum": "999.00",
|
|
604
|
+
"units": "",
|
|
605
|
+
"designValue": "[pprice]"
|
|
606
|
+
},
|
|
607
|
+
"layout": "divAPIRows",
|
|
608
|
+
"container": "1"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"id": "lb7",
|
|
612
|
+
"field type": "output field",
|
|
613
|
+
"css class": "label",
|
|
614
|
+
"value": "Price:",
|
|
615
|
+
"left": "-60px",
|
|
616
|
+
"top": "45px",
|
|
617
|
+
"width": "150px",
|
|
618
|
+
"layout": "divAPIRows",
|
|
619
|
+
"container": "1"
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"id": "lb6",
|
|
623
|
+
"field type": "output field",
|
|
624
|
+
"css class": "label",
|
|
625
|
+
"value": "Quantity:",
|
|
626
|
+
"left": "260px",
|
|
627
|
+
"top": "45px",
|
|
628
|
+
"width": "105px",
|
|
629
|
+
"layout": "divAPIRows",
|
|
630
|
+
"container": "1"
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"id": "tbQuantity",
|
|
634
|
+
"field type": "textbox",
|
|
635
|
+
"css class": "input",
|
|
636
|
+
"left": "380px",
|
|
637
|
+
"top": "45px",
|
|
638
|
+
"height": "20px",
|
|
639
|
+
"width": "130px",
|
|
640
|
+
"value": {
|
|
641
|
+
"fieldName": "pcount",
|
|
642
|
+
"dataLength": "25",
|
|
643
|
+
"numSep": "false",
|
|
644
|
+
"zeroBalance": "false",
|
|
645
|
+
"numBlankFill": "false",
|
|
646
|
+
"zeroFill": "false",
|
|
647
|
+
"noExtraSpaces": "false",
|
|
648
|
+
"curSym": "",
|
|
649
|
+
"dataType": "varchar",
|
|
650
|
+
"formatting": "Number",
|
|
651
|
+
"negNum": "999.00",
|
|
652
|
+
"units": "",
|
|
653
|
+
"designValue": "[pcount]"
|
|
654
|
+
},
|
|
655
|
+
"layout": "divAPIRows",
|
|
656
|
+
"container": "1"
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"id": "opID",
|
|
660
|
+
"field type": "output field",
|
|
661
|
+
"css class": "outputField",
|
|
662
|
+
"value": {
|
|
663
|
+
"fieldName": "ID",
|
|
664
|
+
"dataLength": "25",
|
|
665
|
+
"trimLeading": "false",
|
|
666
|
+
"trimTrailing": "true",
|
|
667
|
+
"blankFill": "false",
|
|
668
|
+
"rjZeroFill": "false",
|
|
669
|
+
"dataType": "varchar",
|
|
670
|
+
"formatting": "Text",
|
|
671
|
+
"textTransform": "none",
|
|
672
|
+
"designValue": "[ID]"
|
|
673
|
+
},
|
|
674
|
+
"left": "40px",
|
|
675
|
+
"top": "5px",
|
|
676
|
+
"grid": "grShopUI",
|
|
677
|
+
"column": "0"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"id": "opName",
|
|
681
|
+
"field type": "output field",
|
|
682
|
+
"css class": "outputField",
|
|
683
|
+
"value": {
|
|
684
|
+
"fieldName": "Name",
|
|
685
|
+
"dataLength": "25",
|
|
686
|
+
"trimLeading": "false",
|
|
687
|
+
"trimTrailing": "true",
|
|
688
|
+
"blankFill": "false",
|
|
689
|
+
"rjZeroFill": "false",
|
|
690
|
+
"dataType": "varchar",
|
|
691
|
+
"formatting": "Text",
|
|
692
|
+
"textTransform": "none",
|
|
693
|
+
"designValue": "[Name]"
|
|
694
|
+
},
|
|
695
|
+
"left": "215px",
|
|
696
|
+
"top": "5px",
|
|
697
|
+
"grid": "grShopUI",
|
|
698
|
+
"column": "1"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"id": "opPrice",
|
|
702
|
+
"field type": "output field",
|
|
703
|
+
"css class": "outputField",
|
|
704
|
+
"value": {
|
|
705
|
+
"fieldName": "Price",
|
|
706
|
+
"dataLength": "10",
|
|
707
|
+
"decPos": "0",
|
|
708
|
+
"numSep": "false",
|
|
709
|
+
"zeroBalance": "false",
|
|
710
|
+
"numBlankFill": "false",
|
|
711
|
+
"zeroFill": "false",
|
|
712
|
+
"noExtraSpaces": "false",
|
|
713
|
+
"curSym": "$",
|
|
714
|
+
"dataType": "zoned",
|
|
715
|
+
"formatting": "Number",
|
|
716
|
+
"negNum": "-999.00",
|
|
717
|
+
"units": "",
|
|
718
|
+
"designValue": "[Price]"
|
|
719
|
+
},
|
|
720
|
+
"left": "30px",
|
|
721
|
+
"top": "5px",
|
|
722
|
+
"grid": "grShopUI",
|
|
723
|
+
"column": "2"
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"id": "opCount",
|
|
727
|
+
"field type": "output field",
|
|
728
|
+
"css class": "outputField",
|
|
729
|
+
"value": {
|
|
730
|
+
"fieldName": "Quantity",
|
|
731
|
+
"dataLength": "25",
|
|
732
|
+
"trimLeading": "false",
|
|
733
|
+
"trimTrailing": "true",
|
|
734
|
+
"blankFill": "false",
|
|
735
|
+
"rjZeroFill": "false",
|
|
736
|
+
"dataType": "varchar",
|
|
737
|
+
"formatting": "Text",
|
|
738
|
+
"textTransform": "none",
|
|
739
|
+
"designValue": "[Quantity]"
|
|
740
|
+
},
|
|
741
|
+
"left": "30px",
|
|
742
|
+
"top": "5px",
|
|
743
|
+
"grid": "grShopUI",
|
|
744
|
+
"column": "3"
|
|
745
|
+
}
|
|
746
|
+
]
|
|
747
|
+
}
|
|
748
|
+
],
|
|
749
|
+
"keywords": [],
|
|
750
|
+
"long name aliases": true
|
|
751
|
+
}
|