pict-section-recordset 1.0.52 → 1.0.54

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.
Files changed (36) hide show
  1. package/example_applications/simple_entity/Simple-RecordSet-Application.js +221 -1
  2. package/example_applications/simple_entity/html/index.html +2 -0
  3. package/package.json +2 -2
  4. package/source/application/Pict-Application-RecordSet.js +2 -0
  5. package/source/providers/RecordSet-Link-Manager.js +1 -1
  6. package/source/providers/RecordSet-RecordProvider-Base.js +10 -0
  7. package/source/providers/RecordSet-RecordProvider-MeadowEndpoints.js +60 -15
  8. package/source/providers/RecordSet-Router.js +1 -1
  9. package/source/services/RecordsSet-MetaController.js +9 -6
  10. package/source/views/RecordSet-RecordBaseView.js +1 -1
  11. package/source/views/create/RecordSet-Create.js +344 -0
  12. package/source/views/dashboard/RecordSet-Dashboard.js +3 -2
  13. package/source/views/list/RecordSet-List.js +2 -2
  14. package/source/views/read/RecordSet-Read.js +760 -44
  15. package/types/application/Pict-Application-RecordSet.d.ts.map +1 -1
  16. package/types/providers/RecordSet-RecordProvider-Base.d.ts +2 -0
  17. package/types/providers/RecordSet-RecordProvider-Base.d.ts.map +1 -1
  18. package/types/providers/RecordSet-RecordProvider-MeadowEndpoints.d.ts +3 -5
  19. package/types/providers/RecordSet-RecordProvider-MeadowEndpoints.d.ts.map +1 -1
  20. package/types/services/RecordsSet-MetaController.d.ts +1 -1
  21. package/types/services/RecordsSet-MetaController.d.ts.map +1 -1
  22. package/types/views/create/RecordSet-Create.d.ts +39 -0
  23. package/types/views/create/RecordSet-Create.d.ts.map +1 -0
  24. package/types/views/dashboard/RecordSet-Dashboard.d.ts.map +1 -1
  25. package/types/views/read/RecordSet-Read.d.ts +65 -5
  26. package/types/views/read/RecordSet-Read.d.ts.map +1 -1
  27. package/source/views/edit/RecordSet-Edit-HeaderEdit.js +0 -64
  28. package/source/views/edit/RecordSet-Edit-RecordEdit.js +0 -64
  29. package/source/views/edit/RecordSet-Edit-RecordEditControls.js +0 -64
  30. package/source/views/edit/RecordSet-Edit-RecordEditExtra.js +0 -64
  31. package/source/views/edit/RecordSet-Edit-TabBarEdit.js +0 -64
  32. package/source/views/edit/RecordSet-Edit.js +0 -64
  33. package/source/views/read/RecordSet-Read-HeaderRead.js +0 -64
  34. package/source/views/read/RecordSet-Read-RecordRead.js +0 -78
  35. package/source/views/read/RecordSet-Read-RecordReadExtra.js +0 -64
  36. package/source/views/read/RecordSet-Read-TabBarRead.js +0 -64
@@ -157,6 +157,34 @@ class SimpleApplication extends libPictRecordSet.PictRecordSetApplication
157
157
  onInitialize()
158
158
  {
159
159
  this.pict.addView('PRSP-FilterType-ExternalJoinSelectedValueList-MyCoolView', {}, CustomFilterView);
160
+ this.pict.addView('SpecialBookView',
161
+ {
162
+ "ViewIdentifier": "SpecialBookView",
163
+
164
+ "DefaultRenderable": "SpecialBookView",
165
+ "DefaultDestinationAddress": "#Placeholder",
166
+ "IncludeInMetacontrollerOperations": true,
167
+
168
+ "AutoRender": false,
169
+
170
+ "Templates": [
171
+ {
172
+ "Hash": "SpecialBookView-Content",
173
+ "Template": /*html*/`
174
+ <div>
175
+ This is a special book view, here's some text: <br />
176
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
177
+ </div>
178
+ `
179
+ }
180
+ ],
181
+ "Renderables": [
182
+ {
183
+ "RenderableHash": "SpecialBookView",
184
+ "TemplateHash": "SpecialBookView-Content"
185
+ }
186
+ ]
187
+ });
160
188
 
161
189
  return super.onInitialize();
162
190
  }
@@ -175,6 +203,156 @@ module.exports.default_configuration.pict_configuration = (
175
203
 
176
204
  "Manifests": // Manifest'Ohs: Breakfast of Champions
177
205
  {
206
+ "Book-View":
207
+ {
208
+ "Form": "BookViewManifest",
209
+ "Scope": "Book-View",
210
+ "Descriptors":
211
+ {
212
+ "BookDetails.Title":
213
+ {
214
+ "Name": "Title",
215
+ "Hash": "ViewBookName",
216
+ "DataType": "String",
217
+ "PictForm":
218
+ {
219
+ "Row": "1",
220
+ "Section": "BookView",
221
+ "Group": "BookView"
222
+ }
223
+ },
224
+ "BookDetails.Genre":
225
+ {
226
+ "Name": "Genre",
227
+ "Hash": "ViewBookGenre",
228
+ "DataType": "String",
229
+ "PictForm":
230
+ {
231
+ "Row": "1",
232
+ "Section": "BookView",
233
+ "Group": "BookView"
234
+ }
235
+ },
236
+ "BookDetails.ISBN":
237
+ {
238
+ "Name": "ISBN",
239
+ "Hash": "ViewBookISBN",
240
+ "DataType": "String",
241
+ "PictForm":
242
+ {
243
+ "Row": "2",
244
+ "Section": "BookView",
245
+ "Group": "BookView"
246
+ }
247
+ }
248
+ },
249
+ "Sections":
250
+ [
251
+ {
252
+ "Name": "Book View",
253
+ "Hash": "BookView",
254
+ "Solvers": [],
255
+ "ShowTitle": false,
256
+ "Groups": [
257
+ {
258
+ "Name": "Book View",
259
+ "Hash": "BookView",
260
+ "Rows": [],
261
+ "RecordSetSolvers": [],
262
+ "ShowTitle": false
263
+ }
264
+ ]
265
+ }
266
+ ]
267
+ },
268
+ "Author-View":
269
+ {
270
+ "Form": "AuthorViewManifest",
271
+ "Scope": "Author-View",
272
+ "Descriptors":
273
+ {
274
+ "AuthorDetails.Name":
275
+ {
276
+ "Name": "Author Name",
277
+ "Hash": "ViewAuthorName",
278
+ "DataType": "String",
279
+ "PictForm":
280
+ {
281
+ "Row": "1",
282
+ "Section": "AuthorView",
283
+ "Group": "AuthorView"
284
+ }
285
+ },
286
+ },
287
+ "Sections":
288
+ [
289
+ {
290
+ "Name": "Author View",
291
+ "Hash": "AuthorView",
292
+ "Solvers": [],
293
+ "ShowTitle": false,
294
+ "Groups": [
295
+ {
296
+ "Name": "Author View",
297
+ "Hash": "AuthorView",
298
+ "Rows": [],
299
+ "RecordSetSolvers": [],
300
+ "ShowTitle": false
301
+ }
302
+ ]
303
+ }
304
+ ]
305
+ },
306
+ "AuthorMetadata":
307
+ {
308
+ "Form": "AuthorMetadataManifest",
309
+ "Scope": "AuthorMetadata",
310
+ "Descriptors":
311
+ {
312
+ "AuthorDetails.GUIDAuthor":
313
+ {
314
+ "Name": "Author GUID",
315
+ "Hash": "ViewGUIDAuthor",
316
+ "DataType": "String",
317
+ "PictForm":
318
+ {
319
+ "Row": "1",
320
+ "Section": "AuthorMetadata",
321
+ "Group": "AuthorMetadata"
322
+ }
323
+ },
324
+ "AuthorDetails.IDAuthor":
325
+ {
326
+ "Name": "ID Author",
327
+ "Hash": "ViewIDAuthor",
328
+ "DataType": "String",
329
+ "PictForm":
330
+ {
331
+ "Row": "1",
332
+ "Section": "AuthorMetadata",
333
+ "Group": "AuthorMetadata"
334
+ }
335
+ },
336
+ },
337
+ "Sections":
338
+ [
339
+ {
340
+ "Name": "Author Metadata",
341
+ "Hash": "AuthorMetadata",
342
+ "Solvers": [],
343
+ "ShowTitle": false,
344
+ "Groups": [
345
+ {
346
+ "Name": "Author Metadata",
347
+ "Hash": "AuthorMetadata",
348
+ "Rows": [],
349
+ "RecordSetSolvers": [],
350
+ "ShowTitle": false
351
+ }
352
+ ]
353
+ }
354
+ ]
355
+ },
178
356
  "Bestsellers":
179
357
  {
180
358
  "Scope": "Bestsellers",
@@ -481,6 +659,32 @@ module.exports.default_configuration.pict_configuration = (
481
659
  }
482
660
  },
483
661
 
662
+ "RecordSetReadManifestOnly": true,
663
+ "RecordSetReadDefaultManifestView": "Book-View",
664
+ "RecordSetReadManifestsView": [ "Book-View" ],
665
+
666
+ "ReadLayout": "Split",
667
+
668
+ "RecordSetReadTabs":
669
+ [
670
+ {
671
+ Type: "AttachedRecord",
672
+ RecordSet: "Author",
673
+ Title: "Author",
674
+ JoiningRecordSet: "BookAuthorJoin"
675
+ },
676
+ {
677
+ Type: "Manifest",
678
+ Manifest: "AuthorMetadata",
679
+ Title: "Author Metadata"
680
+ },
681
+ {
682
+ Type: "View",
683
+ View: "SpecialBookView",
684
+ Title: "More Book Info"
685
+ }
686
+ ],
687
+
484
688
  "RecordSetListManifestOnly": false,
485
689
 
486
690
  "RecordSetListManifests": [ "Bestsellers", "Underdogs", "NewReleases" ],
@@ -579,7 +783,23 @@ module.exports.default_configuration.pict_configuration = (
579
783
  "RecordSetType": "MeadowEndpoint",
580
784
  "RecordSetMeadowEntity": "Author",
581
785
 
582
- "RecordSetURLPrefix": "/1.0/"
786
+ "RecordSetURLPrefix": "/1.0/",
787
+
788
+ "RecordSetReadManifestOnly": true,
789
+ "RecordSetReadManifestsView": [ "Author-View" ],
790
+
791
+ "ReadLayout": "Tab",
792
+ "RecordSetReadTabTitle": "Author",
793
+
794
+ "RecordSetReadTabs":
795
+ [
796
+ {
797
+ Type: "Manifest",
798
+ Manifest: "AuthorMetadata",
799
+ Title: "Author Metadata"
800
+ }
801
+ ],
802
+
583
803
  },
584
804
  {
585
805
  "RecordSet": "RandomizedValues",
@@ -17,6 +17,8 @@
17
17
  <ul>
18
18
  <li><a href="#/PSRS/Book/List">Book List</a></li>
19
19
  <li><a href="#/PSRS/Author/List">Author List</a></li>
20
+ <li><a href="#/PSRS/Book/Create">Book Create</a></li>
21
+ <li><a href="#/PSRS/Author/Create">Author Create</a></li>
20
22
  </ul>
21
23
  </nav>
22
24
  <div id="PRSP_Container"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pict-section-recordset",
3
- "version": "1.0.52",
3
+ "version": "1.0.54",
4
4
  "description": "Pict dynamic record set management views",
5
5
  "main": "source/Pict-Section-RecordSet.js",
6
6
  "directories": {
@@ -33,7 +33,7 @@
33
33
  "browser-env": "^3.3.0",
34
34
  "eslint": "^9.28.0",
35
35
  "jquery": "^3.7.1",
36
- "pict": "^1.0.300",
36
+ "pict": "^1.0.324",
37
37
  "pict-application": "^1.0.27",
38
38
  "pict-service-commandlineutility": "^1.0.15",
39
39
  "quackage": "^1.0.42",
@@ -26,6 +26,8 @@ class PictSectionRecordSetApplication extends libPictApplication
26
26
  //FIXME: this is probably wrong, but needed for now?
27
27
  this.pict.addServiceType('PictSectionForm', libPictSectionForm);
28
28
 
29
+ this.pict.addView('PictFormMetacontroller', {}, libPictSectionForm.PictFormMetacontroller);
30
+
29
31
  this.fable.addProviderSingleton('DynamicRecordsetSolver', libDynamicSolver.default_configuration, libDynamicSolver);
30
32
 
31
33
  // add the dependencies for dynamic controls
@@ -25,7 +25,7 @@ class PictRecordSetLinkManager extends libPictProvider
25
25
  // Format:
26
26
  // {
27
27
  // Name: "View Record",
28
- // URL: "#/PSRS/{~D:Record.Payload.RecordSet~}/Read/{~DVBK:Record.Data:Record.Payload.GUIDAddress~}",
28
+ // URL: "#/PSRS/{~D:Record.Payload.RecordSet~}/View/{~DVBK:Record.Data:Record.Payload.GUIDAddress~}",
29
29
  // Default: true
30
30
  // }
31
31
  this.linkTemplates = [];
@@ -102,6 +102,16 @@ class RecordSetProviderBase extends libPictProvider
102
102
  }
103
103
  */
104
104
 
105
+ getGUIDField()
106
+ {
107
+ return `GUID${ this.options.Entity }`;
108
+ }
109
+
110
+ getIDField()
111
+ {
112
+ return `ID${ this.options.Entity }`;
113
+ }
114
+
105
115
  /**
106
116
  * Read records from the provider.
107
117
  *
@@ -111,6 +111,36 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
111
111
  });
112
112
  }
113
113
 
114
+ getGUIDField()
115
+ {
116
+ if (this._Schema?.MeadowSchema?.Schema?.length)
117
+ {
118
+ for (let field of this._Schema.MeadowSchema.Schema)
119
+ {
120
+ if (field.Type == 'AutoGUID')
121
+ {
122
+ return field.Column;
123
+ }
124
+ }
125
+ }
126
+ return `GUID${ this.options.Entity }`;
127
+ }
128
+
129
+ getIDField()
130
+ {
131
+ if (this._Schema?.MeadowSchema?.Schema?.length)
132
+ {
133
+ for (let field of this._Schema.MeadowSchema.Schema)
134
+ {
135
+ if (field.Type == 'AutoIdentity')
136
+ {
137
+ return field.Column;
138
+ }
139
+ }
140
+ }
141
+ return `ID${ this.options.Entity }`;
142
+ }
143
+
114
144
  /**
115
145
  * Get a record by its ID or GUID.
116
146
  *
@@ -128,7 +158,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
128
158
  }
129
159
  return new Promise((resolve, reject) =>
130
160
  {
131
- this.entityProvider.getEntitySet(this.options.Entity, `FBV~GUID${this.options.Entity}~EQ~${encodeURIComponent(pGuid)}`, (pError, pResult) =>
161
+ this.entityProvider.getEntitySet(this.options.Entity, `FBV~${ this.getGUIDField() }~EQ~${encodeURIComponent(pGuid)}`, (pError, pResult) =>
132
162
  {
133
163
  if (pError)
134
164
  {
@@ -188,7 +218,22 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
188
218
  {
189
219
  return reject(pError);
190
220
  }
191
- resolve({ Records: this.pict.resolveStateFromAddress(tmpExperience.ResultDestinationAddress), Facets: { } });
221
+ const recordsReturn = this.pict.resolveStateFromAddress(tmpExperience.ResultDestinationAddress);
222
+ const IDFields = ['CreatingIDUser', 'UpdatingIDUser'];
223
+ if (recordsReturn.length)
224
+ {
225
+ for (const k of Object.keys(recordsReturn[0]))
226
+ {
227
+ if (k.startsWith('ID') && k !== `ID${ tmpEntity }`)
228
+ {
229
+ IDFields.push(k);
230
+ }
231
+ }
232
+ }
233
+ this.pict.EntityProvider.cacheConnectedEntityRecords(recordsReturn, IDFields, ['User', 'User'], false, () =>
234
+ {
235
+ resolve({ Records: recordsReturn, Facets: { } });
236
+ });
192
237
  });
193
238
  // using a space here, otherwise you get a `//` in the URL which breaks some stuff
194
239
  });
@@ -274,7 +319,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
274
319
  {
275
320
  if (this.pict.LogNoisiness > 1)
276
321
  {
277
- this.pict.log.info(`Updating record ${this.options.Entity} ${pRecord[`ID${this.options.Entity}`]}`);
322
+ this.pict.log.info(`Updating record ${this.options.Entity} ${pRecord[this.getIDField()]}`);
278
323
  }
279
324
  return new Promise((resolve, reject) =>
280
325
  {
@@ -301,12 +346,12 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
301
346
  {
302
347
  if (this.pict.LogNoisiness > 1)
303
348
  {
304
- this.pict.log.info(`Deleting record ${this.options.Entity} ${pRecord[`ID${this.options.Entity}`]}`);
349
+ this.pict.log.info(`Deleting record ${this.options.Entity} ${pRecord[this.getIDField()]}`);
305
350
  }
306
351
  return new Promise((resolve, reject) =>
307
352
  {
308
353
  this.entityProvider.restClient.delJSON({
309
- url: `${this.options.URLPrefix}${this.options.Entity}/${pRecord[`ID${this.options.Entity}`]}`,
354
+ url: `${this.options.URLPrefix}${this.options.Entity}/${pRecord[this.getIDField()]}`,
310
355
  body: pRecord,
311
356
  }, (error, response, result) =>
312
357
  {
@@ -357,8 +402,8 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
357
402
  */
358
403
  cleanRecord(pRecord)
359
404
  {
360
- delete pRecord[`ID${this.options.Entity}`];
361
- delete pRecord[`GUID${this.options.Entity}`];
405
+ delete pRecord[this.getIDField()];
406
+ delete pRecord[this.getGUIDField()];
362
407
  return pRecord;
363
408
  }
364
409
 
@@ -380,7 +425,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
380
425
  tmpFieldType = pMeadowSchemaField.Type.toLowerCase();
381
426
  }
382
427
  tmpFieldFilterClauses = [];
383
- const tmpFieldHumanName = this._getHumanReadableFieldName(pSchemaField);
428
+ const tmpFieldHumanName = this.getHumanReadableFieldName(pSchemaField);
384
429
  const isUserAuditField = ['CreatingIDUser', 'DeletingIDUser', 'UpdatingIDUser'].includes(pSchemaField);
385
430
  const customFilterClauses = this.options.Filters?.[pSchemaField];
386
431
  if (pSchemaField.startsWith('ID') || pSchemaField.startsWith('ParentID') || isUserAuditField || customFilterClauses)
@@ -388,7 +433,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
388
433
  for (const customField of Array.isArray(customFilterClauses) ? customFilterClauses : [customFilterClauses])
389
434
  {
390
435
  const remoteTableName = customField?.RemoteTable || pSchemaField.split('ID')[1];
391
- const fieldName = this._getHumanReadableFieldName(pSchemaField);
436
+ const fieldName = this.getHumanReadableFieldName(pSchemaField);
392
437
  tmpFieldFilterClauses.push(Object.assign(
393
438
  {
394
439
  "Label": `${ fieldName }`,
@@ -560,17 +605,17 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
560
605
  * @param {string} pSchemaField - The schema field name.
561
606
  * @return {string} - The human-readable name for the schema field.
562
607
  */
563
- _getHumanReadableFieldName(pSchemaField)
608
+ getHumanReadableFieldName(pSchemaField)
564
609
  {
565
610
  if (!this._Schema || !this._Schema.properties || !this._Schema.properties[pSchemaField])
566
611
  {
567
612
  return pSchemaField;
568
613
  }
569
- if (pSchemaField === `ID${this.options.Entity}`)
614
+ if (pSchemaField === this.getIDField())
570
615
  {
571
616
  return `${this._getHumanReadableEntityName(this.options.Entity)} Unique Database ID`;
572
617
  }
573
- if (pSchemaField === `GUID${this.options.Entity}`)
618
+ if (pSchemaField === this.getGUIDField())
574
619
  {
575
620
  return `${this._getHumanReadableEntityName(this.options.Entity)} Unique Identifier`;
576
621
  }
@@ -667,7 +712,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
667
712
  }
668
713
  if (!tmpFieldFilterSchema.DisplayName)
669
714
  {
670
- tmpFieldFilterSchema.DisplayName = this._getHumanReadableFieldName(tmpSchemaField);
715
+ tmpFieldFilterSchema.DisplayName = this.getHumanReadableFieldName(tmpSchemaField);
671
716
  }
672
717
  if (!tmpFieldFilterSchema.Description)
673
718
  {
@@ -701,7 +746,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
701
746
  for (const tmpFilterKey of Object.keys(this.pict.providers.FilterManager.filters))
702
747
  {
703
748
  const tmpFilterClause = this.pict.providers.FilterManager.filters[tmpFilterKey];
704
- if (tmpFilterClause.CoreConnectionColumn === `ID${this.options.Entity}`)
749
+ if (tmpFilterClause.CoreConnectionColumn === this.getIDField())
705
750
  {
706
751
  //FIXME: I don't think using filter key is right here
707
752
  let tmpFieldFilterSchema = this._FilterSchema[tmpFilterKey];
@@ -717,7 +762,7 @@ class MeadowEndpointsRecordSetProvider extends libRecordSetProviderBase
717
762
  {
718
763
  tmpFieldFilterSchema.RecordSet = this.options.RecordSet;
719
764
  }
720
- const tmpFieldHumanName = this._getHumanReadableFieldName(tmpFilterKey);
765
+ const tmpFieldHumanName = this.getHumanReadableFieldName(tmpFilterKey);
721
766
  if (tmpFilterClause.DisplayName)
722
767
  {
723
768
  tmpFieldFilterSchema.DisplayName = tmpFilterClause.DisplayName;
@@ -46,7 +46,7 @@ class PictRecordSetRouter extends libPictProvider
46
46
  //this.pictRouter.addRoute('/PSRS/:RecordSet/List/:Begin/:Cap', "{~LV:Record~}");
47
47
  this.pict.views['RSP-RecordSet-List'].addRoutes(pRouter);
48
48
  this.pict.views['RSP-RecordSet-Read'].addRoutes(pRouter);
49
- this.pict.views['RSP-RecordSet-Edit'].addRoutes(pRouter);
49
+ this.pict.views['RSP-RecordSet-Create'].addRoutes(pRouter);
50
50
  this.pict.views['RSP-RecordSet-Dashboard'].addRoutes(pRouter);
51
51
 
52
52
  this.pict.PictSectionRecordSet.addRoutes(pRouter);
@@ -2,8 +2,8 @@ const libFableServiceProviderBase = require('fable-serviceproviderbase');
2
2
 
3
3
  const ViewDefinitionRecordSetErrorNotFound = require('../views/error/RecordSet-Error-NotFound.json');
4
4
  const ViewRecordSetList = require('../views/list/RecordSet-List.js');
5
- const ViewRecordSetEdit = require('../views/edit/RecordSet-Edit.js');
6
5
  const ViewRecordSetRead = require('../views/read/RecordSet-Read.js');
6
+ const ViewRecordSetCreate = require('../views/create/RecordSet-Create.js');
7
7
  const ViewRecordSetDashboard = require('../views/dashboard/RecordSet-Dashboard.js');
8
8
 
9
9
  //_Pict.addProvider('BooksProvider', { Entity: 'Book', URLPrefix: 'http://www.datadebase.com:8086/1.0/' }, require('../source/providers/RecordSet-RecordProvider-MeadowEndpoints.js'));
@@ -41,7 +41,7 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
41
41
 
42
42
  this.childViews = {
43
43
  list: null,
44
- edit: null,
44
+ create: null,
45
45
  read: null,
46
46
  dashboard: null
47
47
  };
@@ -432,14 +432,14 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
432
432
  this.pict.addTemplate(require('../views/filters').Base);
433
433
  this.childViews.errorNotFound = this.fable.addView('RSP-RecordSet-Error-NotFound', ViewDefinitionRecordSetErrorNotFound);
434
434
  this.childViews.list = this.fable.addView('RSP-RecordSet-List', this.options, ViewRecordSetList);
435
- this.childViews.edit = this.fable.addView('RSP-RecordSet-Edit', this.options, ViewRecordSetEdit);
436
435
  this.childViews.read = this.fable.addView('RSP-RecordSet-Read', this.options, ViewRecordSetRead);
436
+ this.childViews.create = this.fable.addView('RSP-RecordSet-Create', this.options, ViewRecordSetCreate);
437
437
  this.childViews.dashboard = this.fable.addView('RSP-RecordSet-Dashboard', this.options, ViewRecordSetDashboard);
438
438
 
439
439
  // Initialize the subviews
440
440
  this.childViews.list.initialize();
441
- this.childViews.edit.initialize();
442
441
  this.childViews.read.initialize();
442
+ this.childViews.create.initialize();
443
443
  this.childViews.dashboard.initialize();
444
444
 
445
445
  // Now initialize the router
@@ -484,9 +484,12 @@ class RecordSetMetacontroller extends libFableServiceProviderBase
484
484
  {
485
485
  this.pict.log.error(`RecordSetDashboard: Manifest key ${tmpManifestKey} does not match manifest scope ${tmpManifest.Scope}. This is bad. Fix it.`);
486
486
  }
487
- this.generateManifestTableCells(tmpManifest);
487
+ if (!tmpManifest.Form)
488
+ {
489
+ this.generateManifestTableCells(tmpManifest);
490
+ }
488
491
  this.manifestDefinitions[tmpManifest.Scope] = tmpManifest;
489
- this.manifests[tmpManifest.Scope] = this.pict.newManyfest(tmpManifest);
492
+ this.manifests[tmpManifest.Scope] = tmpManifest.Form ? tmpManifest : this.pict.newManyfest(tmpManifest);
490
493
  }
491
494
 
492
495
  this.has_initialized = true;
@@ -40,7 +40,7 @@ Record JSON:
40
40
  \`\`\`json
41
41
  {~DataJson:Record~}
42
42
  \`\`\`
43
- --!
43
+ -->
44
44
  <!-- DefaultPackage end view template: [PRSP-Base-View-Template] -->
45
45
  `
46
46
  }