@livepreso/api 6.43.0 → 6.44.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/.rush/temp/build-cache-tar.log +2 -2
- package/.rush/temp/{package-deps_build.json → package-deps_test.json} +8 -8
- package/.rush/temp/shrinkwrap-deps.json +955 -844
- package/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/api.build.log +0 -11
- package/cjs/collections/activity.js +2 -2
- package/cjs/collections/appointments.js +2 -2
- package/cjs/collections/auto-adjuncts.js +2 -2
- package/cjs/collections/base.js +75 -2
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +160 -0
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/deck-versions.js +2 -2
- package/cjs/models/activity-item.js +2 -2
- package/cjs/models/appointment-duplicate.js +2 -2
- package/cjs/models/manifest-json.js +11 -3
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +2 -2
- package/cjs/presentation/presentation-deck.js +2 -2
- package/cjs/presentation/presentation-section.js +2 -2
- package/cjs/presentation/presentation-slide.js +2 -2
- package/config/rush-project.json +1 -43
- package/package.json +6 -4
- package/src/collections/base.js +71 -0
- package/src/collections/base.spec.js +93 -0
- package/src/models/manifest-json.js +9 -0
|
@@ -27,9 +27,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
27
27
|
|
|
28
28
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
29
|
|
|
30
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
30
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
31
31
|
|
|
32
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
32
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* @constructor
|
|
@@ -126,6 +126,9 @@ var ManifestJSONModel = _base.BaseModel.extend(
|
|
|
126
126
|
return {
|
|
127
127
|
appointment: {
|
|
128
128
|
show_visible_default: false
|
|
129
|
+
},
|
|
130
|
+
fieldsets: {
|
|
131
|
+
enforce_required: false
|
|
129
132
|
}
|
|
130
133
|
};
|
|
131
134
|
}
|
|
@@ -356,8 +359,13 @@ ManifestJSONModel.createFromProject = function (projectFile) {
|
|
|
356
359
|
|
|
357
360
|
if (projectFile.app_settings) {
|
|
358
361
|
manifest.app_settings = _objectSpread(_objectSpread({}, manifest.app_settings), projectFile.app_settings);
|
|
359
|
-
}
|
|
362
|
+
} // For all new decks going forward, this should be set to true.
|
|
363
|
+
// This means we validate that a fieldset field has a value. Before
|
|
364
|
+
// this change, it was possible to save with a required field unfilled.
|
|
365
|
+
// This just keeps backwards compatability.
|
|
366
|
+
|
|
360
367
|
|
|
368
|
+
manifest.app_settings.fieldsets.enforce_required = true;
|
|
361
369
|
return manifest;
|
|
362
370
|
};
|
|
363
371
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/manifest-json.js"],"names":["ManifestJSONModel","BaseModel","extend","props","key","maintainer","common","feeds","hooks","fixtures","limits","ordering","tags","titles","templates","content_editors","persistentcontext","type","default","screenshotpreferences","vector","dimensions","width","height","pdfpreferences","quality_level","has_editable_share_support","point_in_time_share_policy","notify_salesperson_after_feeds_fetched","require_verification","companywide_editable","app_settings","appointment","show_visible_default","getAssetPath","split","sectionKey","slideKey","sectionKeyPath","url2","resolve","url","getTemplateAssetPath","parent","modelName","getPlainURL","prototype","call","createFromProject","projectFile","impostor","maxAdjunctSlides","sections","reduce","num","section","title","name","slides","newSection","concat","push","slide","template","index","adjunctslide","slideIndex","welcome","manifest","canBeEmpty"],"mappings":"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","sourcesContent":["import \"./pack.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\nimport url2 from \"url\";\n\n/**\n * @constructor\n * @alias models.ManifestJSONModel\n * @extends models.BaseModel\n */\nexport const ManifestJSONModel = BaseModel.extend(\n\t/** @lends models.ManifestJSONModel# */ {\n\t\t/**\n\t\t * @property {string} key\n\t\t * @property {string} maintainer\n\t\t * @property {object} common\n\t\t * @property {object} feeds\n\t\t * @property {object} hooks\n\t\t * @property {object} limits\n\t\t * @property {object} ordering\n\t\t * @property {object} tags\n\t\t * @property {object} titles\n\t\t * @property {object} templates\n\t\t * @property {object} screenshotpreferences\n\t\t * @property {object} dimensions\n\t\t * @property {object} pdfpreferences\n\t\t * @property {boolean} has_editable_share_support\n\t\t * @property {boolean} notify_salesperson_after_feeds_fetched\n\t\t * @property {boolean} require_verification\n\t\t * @property {boolean} companywide_editable\n\t\t * @property {object} content_editors\n\t\t */\n\t\tprops: {\n\t\t\tkey: \"string\",\n\t\t\tmaintainer: \"string\",\n\t\t\tcommon: \"object\",\n\t\t\tfeeds: \"object\",\n\t\t\thooks: \"string\",\n\t\t\tfixtures: \"object\",\n\t\t\tlimits: \"object\",\n\t\t\tordering: \"object\",\n\t\t\ttags: \"object\",\n\t\t\ttitles: \"object\",\n\t\t\ttemplates: \"object\",\n\t\t\tcontent_editors: \"object\",\n\t\t\tpersistentcontext: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tscreenshotpreferences: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvector: false,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: 1024,\n\t\t\t\t\t\theight: 768,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tpdfpreferences: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tquality_level: \"prepress\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\thas_editable_share_support: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tpoint_in_time_share_policy: {\n\t\t\t\ttype: \"string\",\n\t\t\t},\n\t\t\tnotify_salesperson_after_feeds_fetched: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\trequire_verification: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tcompanywide_editable: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tapp_settings: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tappointment: {\n\t\t\t\t\t\t\tshow_visible_default: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Returns the path to a manifest asset, using its url as the base.\n\t\t * @param {?string} key\n\t\t * @returns {?string}\n\t\t */\n\t\tgetAssetPath(key = null) {\n\t\t\tif (key) {\n\t\t\t\tconst [sectionKey, slideKey = null] = key.split(\"/\");\n\t\t\t\tconst sectionKeyPath = url2.resolve(\n\t\t\t\t\tthis.url(),\n\t\t\t\t\t`sections/${sectionKey}/`\n\t\t\t\t);\n\t\t\t\tif (slideKey) {\n\t\t\t\t\treturn url2.resolve(sectionKeyPath, `slides/${slideKey}/`);\n\t\t\t\t}\n\t\t\t\treturn sectionKeyPath;\n\t\t\t}\n\n\t\t\treturn this.url();\n\t\t},\n\n\t\t/**\n\t\t Returns path to template assets, which are exceptional to regular slide assets\n\t\t * @param {?string} key\n\t\t * @returns {?string}\n\t\t */\n\t\tgetTemplateAssetPath(key) {\n\t\t\treturn url2.resolve(this.getAssetPath(), `templates/${key}/`);\n\t\t},\n\n\t\turl() {\n\t\t\tif (this.parent && this.parent.modelName === \"deckversions\") {\n\t\t\t\treturn `${this.parent.getPlainURL()}manifest/`;\n\t\t\t}\n\n\t\t\treturn BaseModel.prototype.url.call(this);\n\t\t},\n\t}\n);\n\n/**\n * Converts a project file into a manifest json object. This expected\n * the project.yaml file to have been already read into a javascript\n * object.\n */\nManifestJSONModel.createFromProject = function (projectFile) {\n\t// If the deck is an impostor deck, we have to update some things for\n\t// them to make sense in the impostor format\n\tif (projectFile.impostor) {\n\t\t// There is only one real section; all of the \"sections\" defined in the\n\t\t// project.yaml are actually slides, and slides can't have a maxAdjunctSlides\n\t\t// value. We get around this by totalling up all of the maxAdjunctSlides values\n\t\t// across the sections and give that number to the real section. Later e.g. in the\n\t\t// app, that number will be taken and divided by the number of impostor sections\n\t\t// to get the maxAdjunctSlides value for each impostor section\n\t\tconst maxAdjunctSlides = projectFile.sections.reduce((num, section) => {\n\t\t\treturn num + (section.maxAdjunctSlides || 0);\n\t\t}, 0);\n\n\t\t// Create a \"real\" section (that will never be seen by the user) and give\n\t\t// it all of the sections & slides. Impostor sections (which are technically\n\t\t// slides) are given the \"section-header\" tag to mark them as sections\n\t\tprojectFile.sections = [\n\t\t\t{\n\t\t\t\tmaxAdjunctSlides,\n\t\t\t\tkey: projectFile.key,\n\t\t\t\ttitle: projectFile.name,\n\t\t\t\tslides: projectFile.sections.reduce((sections, section) => {\n\t\t\t\t\tconst newSection = {\n\t\t\t\t\t\t...section,\n\t\t\t\t\t\tslides: [],\n\t\t\t\t\t};\n\t\t\t\t\tnewSection.tags = [\"section-header\"].concat(newSection.tags || []);\n\n\t\t\t\t\tsections.push(newSection, ...(section.slides || []));\n\t\t\t\t\treturn sections;\n\t\t\t\t}, []),\n\t\t\t},\n\t\t];\n\t}\n\n\tconst titles = projectFile.sections.reduce((titles, section) => {\n\t\ttitles[section.key] = section.title;\n\t\tfor (const slide of section.slides || []) {\n\t\t\ttitles[`${section.key}/${slide.key}`] = slide.title;\n\t\t}\n\t\treturn titles;\n\t}, {});\n\n\tconst templates = (projectFile.templates || []).reduce(\n\t\t(templates, template, index) => {\n\t\t\ttemplates[template.key] = {\n\t\t\t\ttitle: template.title,\n\t\t\t\tordering: index + 1,\n\t\t\t};\n\t\t\treturn templates;\n\t\t},\n\t\t{}\n\t);\n\n\tconst limits = {\n\t\tadjunctslide: projectFile.sections.reduce((limits, section) => {\n\t\t\tif (typeof section.maxAdjunctSlides === \"number\") {\n\t\t\t\tlimits[section.key] = section.maxAdjunctSlides;\n\t\t\t}\n\t\t\treturn limits;\n\t\t}, {}),\n\t};\n\n\tconst ordering = projectFile.sections.reduce((ordering, section, index) => {\n\t\tordering[section.key] = index + 1;\n\t\tlet slideIndex = 0;\n\t\tfor (const slide of section.slides || []) {\n\t\t\tslideIndex++;\n\t\t\tordering[`${section.key}/${slide.key}`] = slideIndex;\n\t\t}\n\t\treturn ordering;\n\t}, {});\n\n\tconst tags = projectFile.sections.reduce((tags, section) => {\n\t\ttags[section.key] = section.tags || [];\n\t\tfor (const slide of section.slides || []) {\n\t\t\ttags[`${section.key}/${slide.key}`] = slide.tags || [];\n\t\t}\n\t\treturn tags;\n\t}, {});\n\n\t// Add config for the Welcome slide here - it's namespaced in\n\t// the project.yaml under the \"welcome\" key\n\tif (projectFile.welcome) {\n\t\tif (projectFile.welcome.tags) {\n\t\t\t// It's convention to use an empty string for the\n\t\t\t// Welcome slide's key\n\t\t\ttags[\"\"] = projectFile.welcome.tags || [];\n\t\t}\n\t}\n\n\tconst manifest = new ManifestJSONModel({\n\t\tcommon: projectFile.common,\n\t\tfeeds: projectFile.feeds,\n\t\thooks: projectFile.hooks,\n\t\tfixtures: projectFile.fixtures,\n\t\ttitles,\n\t\ttemplates,\n\t\tordering,\n\t\tlimits,\n\t\ttags,\n\t\tkey: projectFile.key,\n\t});\n\n\tif (projectFile.content_editors) {\n\t\tmanifest.content_editors = projectFile.content_editors;\n\t}\n\n\tif (projectFile.screenshotpreferences) {\n\t\tmanifest.screenshotpreferences = projectFile.screenshotpreferences;\n\t}\n\n\tif (projectFile.pdfpreferences) {\n\t\tmanifest.pdfpreferences = projectFile.pdfpreferences;\n\t}\n\n\tif (projectFile.persistentcontext) {\n\t\tmanifest.persistentcontext = projectFile.persistentcontext;\n\t}\n\n\tif (projectFile.maintainer) {\n\t\tmanifest.maintainer = projectFile.maintainer;\n\t}\n\n\tif (projectFile.dimensions) {\n\t\tmanifest.dimensions = projectFile.dimensions;\n\t}\n\n\tif (projectFile.has_editable_share_support) {\n\t\tmanifest.has_editable_share_support =\n\t\t\tprojectFile.has_editable_share_support;\n\t}\n\n\tif (projectFile.point_in_time_share_policy) {\n\t\tmanifest.point_in_time_share_policy =\n\t\t\tprojectFile.point_in_time_share_policy;\n\t}\n\n\tif (projectFile.notify_salesperson_after_feeds_fetched) {\n\t\tmanifest.notify_salesperson_after_feeds_fetched =\n\t\t\tprojectFile.notify_salesperson_after_feeds_fetched;\n\t}\n\n\tif (projectFile.require_verification) {\n\t\tmanifest.require_verification = projectFile.require_verification;\n\t}\n\n\tif (projectFile.app_settings) {\n\t\tmanifest.app_settings = {\n\t\t\t...manifest.app_settings,\n\t\t\t...projectFile.app_settings,\n\t\t};\n\t}\n\n\treturn manifest;\n};\n\nManifestJSONModel.canBeEmpty = true;\n\nregister(\"ManifestJSONModel\", ManifestJSONModel);\n"],"file":"manifest-json.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/models/manifest-json.js"],"names":["ManifestJSONModel","BaseModel","extend","props","key","maintainer","common","feeds","hooks","fixtures","limits","ordering","tags","titles","templates","content_editors","persistentcontext","type","default","screenshotpreferences","vector","dimensions","width","height","pdfpreferences","quality_level","has_editable_share_support","point_in_time_share_policy","notify_salesperson_after_feeds_fetched","require_verification","companywide_editable","app_settings","appointment","show_visible_default","fieldsets","enforce_required","getAssetPath","split","sectionKey","slideKey","sectionKeyPath","url2","resolve","url","getTemplateAssetPath","parent","modelName","getPlainURL","prototype","call","createFromProject","projectFile","impostor","maxAdjunctSlides","sections","reduce","num","section","title","name","slides","newSection","concat","push","slide","template","index","adjunctslide","slideIndex","welcome","manifest","canBeEmpty"],"mappings":"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","sourcesContent":["import \"./pack.js\";\n\nimport { BaseModel } from \"./base.js\";\nimport { register } from \"../state-register.js\";\nimport url2 from \"url\";\n\n/**\n * @constructor\n * @alias models.ManifestJSONModel\n * @extends models.BaseModel\n */\nexport const ManifestJSONModel = BaseModel.extend(\n\t/** @lends models.ManifestJSONModel# */ {\n\t\t/**\n\t\t * @property {string} key\n\t\t * @property {string} maintainer\n\t\t * @property {object} common\n\t\t * @property {object} feeds\n\t\t * @property {object} hooks\n\t\t * @property {object} limits\n\t\t * @property {object} ordering\n\t\t * @property {object} tags\n\t\t * @property {object} titles\n\t\t * @property {object} templates\n\t\t * @property {object} screenshotpreferences\n\t\t * @property {object} dimensions\n\t\t * @property {object} pdfpreferences\n\t\t * @property {boolean} has_editable_share_support\n\t\t * @property {boolean} notify_salesperson_after_feeds_fetched\n\t\t * @property {boolean} require_verification\n\t\t * @property {boolean} companywide_editable\n\t\t * @property {object} content_editors\n\t\t */\n\t\tprops: {\n\t\t\tkey: \"string\",\n\t\t\tmaintainer: \"string\",\n\t\t\tcommon: \"object\",\n\t\t\tfeeds: \"object\",\n\t\t\thooks: \"string\",\n\t\t\tfixtures: \"object\",\n\t\t\tlimits: \"object\",\n\t\t\tordering: \"object\",\n\t\t\ttags: \"object\",\n\t\t\ttitles: \"object\",\n\t\t\ttemplates: \"object\",\n\t\t\tcontent_editors: \"object\",\n\t\t\tpersistentcontext: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tscreenshotpreferences: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvector: false,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tdimensions: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: 1024,\n\t\t\t\t\t\theight: 768,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\tpdfpreferences: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tquality_level: \"prepress\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t\thas_editable_share_support: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tpoint_in_time_share_policy: {\n\t\t\t\ttype: \"string\",\n\t\t\t},\n\t\t\tnotify_salesperson_after_feeds_fetched: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\trequire_verification: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tcompanywide_editable: {\n\t\t\t\ttype: \"boolean\",\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tapp_settings: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tdefault: function () {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tappointment: {\n\t\t\t\t\t\t\tshow_visible_default: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfieldsets: {\n\t\t\t\t\t\t\tenforce_required: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Returns the path to a manifest asset, using its url as the base.\n\t\t * @param {?string} key\n\t\t * @returns {?string}\n\t\t */\n\t\tgetAssetPath(key = null) {\n\t\t\tif (key) {\n\t\t\t\tconst [sectionKey, slideKey = null] = key.split(\"/\");\n\t\t\t\tconst sectionKeyPath = url2.resolve(\n\t\t\t\t\tthis.url(),\n\t\t\t\t\t`sections/${sectionKey}/`\n\t\t\t\t);\n\t\t\t\tif (slideKey) {\n\t\t\t\t\treturn url2.resolve(sectionKeyPath, `slides/${slideKey}/`);\n\t\t\t\t}\n\t\t\t\treturn sectionKeyPath;\n\t\t\t}\n\n\t\t\treturn this.url();\n\t\t},\n\n\t\t/**\n\t\t Returns path to template assets, which are exceptional to regular slide assets\n\t\t * @param {?string} key\n\t\t * @returns {?string}\n\t\t */\n\t\tgetTemplateAssetPath(key) {\n\t\t\treturn url2.resolve(this.getAssetPath(), `templates/${key}/`);\n\t\t},\n\n\t\turl() {\n\t\t\tif (this.parent && this.parent.modelName === \"deckversions\") {\n\t\t\t\treturn `${this.parent.getPlainURL()}manifest/`;\n\t\t\t}\n\n\t\t\treturn BaseModel.prototype.url.call(this);\n\t\t},\n\t}\n);\n\n/**\n * Converts a project file into a manifest json object. This expected\n * the project.yaml file to have been already read into a javascript\n * object.\n */\nManifestJSONModel.createFromProject = function (projectFile) {\n\t// If the deck is an impostor deck, we have to update some things for\n\t// them to make sense in the impostor format\n\tif (projectFile.impostor) {\n\t\t// There is only one real section; all of the \"sections\" defined in the\n\t\t// project.yaml are actually slides, and slides can't have a maxAdjunctSlides\n\t\t// value. We get around this by totalling up all of the maxAdjunctSlides values\n\t\t// across the sections and give that number to the real section. Later e.g. in the\n\t\t// app, that number will be taken and divided by the number of impostor sections\n\t\t// to get the maxAdjunctSlides value for each impostor section\n\t\tconst maxAdjunctSlides = projectFile.sections.reduce((num, section) => {\n\t\t\treturn num + (section.maxAdjunctSlides || 0);\n\t\t}, 0);\n\n\t\t// Create a \"real\" section (that will never be seen by the user) and give\n\t\t// it all of the sections & slides. Impostor sections (which are technically\n\t\t// slides) are given the \"section-header\" tag to mark them as sections\n\t\tprojectFile.sections = [\n\t\t\t{\n\t\t\t\tmaxAdjunctSlides,\n\t\t\t\tkey: projectFile.key,\n\t\t\t\ttitle: projectFile.name,\n\t\t\t\tslides: projectFile.sections.reduce((sections, section) => {\n\t\t\t\t\tconst newSection = {\n\t\t\t\t\t\t...section,\n\t\t\t\t\t\tslides: [],\n\t\t\t\t\t};\n\t\t\t\t\tnewSection.tags = [\"section-header\"].concat(newSection.tags || []);\n\n\t\t\t\t\tsections.push(newSection, ...(section.slides || []));\n\t\t\t\t\treturn sections;\n\t\t\t\t}, []),\n\t\t\t},\n\t\t];\n\t}\n\n\tconst titles = projectFile.sections.reduce((titles, section) => {\n\t\ttitles[section.key] = section.title;\n\t\tfor (const slide of section.slides || []) {\n\t\t\ttitles[`${section.key}/${slide.key}`] = slide.title;\n\t\t}\n\t\treturn titles;\n\t}, {});\n\n\tconst templates = (projectFile.templates || []).reduce(\n\t\t(templates, template, index) => {\n\t\t\ttemplates[template.key] = {\n\t\t\t\ttitle: template.title,\n\t\t\t\tordering: index + 1,\n\t\t\t};\n\t\t\treturn templates;\n\t\t},\n\t\t{}\n\t);\n\n\tconst limits = {\n\t\tadjunctslide: projectFile.sections.reduce((limits, section) => {\n\t\t\tif (typeof section.maxAdjunctSlides === \"number\") {\n\t\t\t\tlimits[section.key] = section.maxAdjunctSlides;\n\t\t\t}\n\t\t\treturn limits;\n\t\t}, {}),\n\t};\n\n\tconst ordering = projectFile.sections.reduce((ordering, section, index) => {\n\t\tordering[section.key] = index + 1;\n\t\tlet slideIndex = 0;\n\t\tfor (const slide of section.slides || []) {\n\t\t\tslideIndex++;\n\t\t\tordering[`${section.key}/${slide.key}`] = slideIndex;\n\t\t}\n\t\treturn ordering;\n\t}, {});\n\n\tconst tags = projectFile.sections.reduce((tags, section) => {\n\t\ttags[section.key] = section.tags || [];\n\t\tfor (const slide of section.slides || []) {\n\t\t\ttags[`${section.key}/${slide.key}`] = slide.tags || [];\n\t\t}\n\t\treturn tags;\n\t}, {});\n\n\t// Add config for the Welcome slide here - it's namespaced in\n\t// the project.yaml under the \"welcome\" key\n\tif (projectFile.welcome) {\n\t\tif (projectFile.welcome.tags) {\n\t\t\t// It's convention to use an empty string for the\n\t\t\t// Welcome slide's key\n\t\t\ttags[\"\"] = projectFile.welcome.tags || [];\n\t\t}\n\t}\n\n\tconst manifest = new ManifestJSONModel({\n\t\tcommon: projectFile.common,\n\t\tfeeds: projectFile.feeds,\n\t\thooks: projectFile.hooks,\n\t\tfixtures: projectFile.fixtures,\n\t\ttitles,\n\t\ttemplates,\n\t\tordering,\n\t\tlimits,\n\t\ttags,\n\t\tkey: projectFile.key,\n\t});\n\n\tif (projectFile.content_editors) {\n\t\tmanifest.content_editors = projectFile.content_editors;\n\t}\n\n\tif (projectFile.screenshotpreferences) {\n\t\tmanifest.screenshotpreferences = projectFile.screenshotpreferences;\n\t}\n\n\tif (projectFile.pdfpreferences) {\n\t\tmanifest.pdfpreferences = projectFile.pdfpreferences;\n\t}\n\n\tif (projectFile.persistentcontext) {\n\t\tmanifest.persistentcontext = projectFile.persistentcontext;\n\t}\n\n\tif (projectFile.maintainer) {\n\t\tmanifest.maintainer = projectFile.maintainer;\n\t}\n\n\tif (projectFile.dimensions) {\n\t\tmanifest.dimensions = projectFile.dimensions;\n\t}\n\n\tif (projectFile.has_editable_share_support) {\n\t\tmanifest.has_editable_share_support =\n\t\t\tprojectFile.has_editable_share_support;\n\t}\n\n\tif (projectFile.point_in_time_share_policy) {\n\t\tmanifest.point_in_time_share_policy =\n\t\t\tprojectFile.point_in_time_share_policy;\n\t}\n\n\tif (projectFile.notify_salesperson_after_feeds_fetched) {\n\t\tmanifest.notify_salesperson_after_feeds_fetched =\n\t\t\tprojectFile.notify_salesperson_after_feeds_fetched;\n\t}\n\n\tif (projectFile.require_verification) {\n\t\tmanifest.require_verification = projectFile.require_verification;\n\t}\n\n\tif (projectFile.app_settings) {\n\t\tmanifest.app_settings = {\n\t\t\t...manifest.app_settings,\n\t\t\t...projectFile.app_settings,\n\t\t};\n\t}\n\n\t// For all new decks going forward, this should be set to true.\n\t// This means we validate that a fieldset field has a value. Before\n\t// this change, it was possible to save with a required field unfilled.\n\t// This just keeps backwards compatability.\n\tmanifest.app_settings.fieldsets.enforce_required = true;\n\n\treturn manifest;\n};\n\nManifestJSONModel.canBeEmpty = true;\n\nregister(\"ManifestJSONModel\", ManifestJSONModel);\n"],"file":"manifest-json.js"}
|
|
@@ -29,9 +29,9 @@ var _presentationDeck = require("./presentation-deck.js");
|
|
|
29
29
|
|
|
30
30
|
var _stateRegister = require("../state-register.js");
|
|
31
31
|
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
33
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* @constructor
|
|
@@ -39,9 +39,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
39
39
|
|
|
40
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
41
|
|
|
42
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
42
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
43
43
|
|
|
44
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
44
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* @constructor
|
|
@@ -25,9 +25,9 @@ var _stateRegister = require("../state-register.js");
|
|
|
25
25
|
|
|
26
26
|
var _url = _interopRequireDefault(require("url"));
|
|
27
27
|
|
|
28
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
29
|
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* @constructor
|
|
@@ -35,9 +35,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
35
35
|
|
|
36
36
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
37
|
|
|
38
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
39
39
|
|
|
40
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* @constructor
|
package/config/rush-project.json
CHANGED
|
@@ -7,47 +7,5 @@
|
|
|
7
7
|
*/
|
|
8
8
|
// "extends": "my-rig/profiles/default/config/rush-project.json",
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
* Specify the folders where your toolchain writes its output files. If enabled, the Rush build cache will
|
|
12
|
-
* restore these folders from the cache.
|
|
13
|
-
*
|
|
14
|
-
* The strings are folder names under the project root folder. These folders should not be tracked by Git.
|
|
15
|
-
* They must not contain symlinks.
|
|
16
|
-
*/
|
|
17
|
-
"projectOutputFolderNames": [],
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Configuration for the build cache feature.
|
|
21
|
-
*/
|
|
22
|
-
"buildCacheOptions": {
|
|
23
|
-
/**
|
|
24
|
-
* Selectively disables the build cache for this project. The project will never be restored from cache.
|
|
25
|
-
*
|
|
26
|
-
* This is a useful workaround if that project's build scripts violate the assumptions of the cache,
|
|
27
|
-
* for example by writing files outside the project folder. Where possible, a better solution is to improve
|
|
28
|
-
* the build scripts to be compatible with caching.
|
|
29
|
-
*/
|
|
30
|
-
// "disableBuildCache": true,
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Allows for fine-grained control of cache for individual Rush commands.
|
|
34
|
-
*/
|
|
35
|
-
"optionsForCommands": [
|
|
36
|
-
// {
|
|
37
|
-
// /**
|
|
38
|
-
// * The Rush command name, as defined in custom-commands.json
|
|
39
|
-
// */
|
|
40
|
-
// "name": "my-command",
|
|
41
|
-
//
|
|
42
|
-
// /**
|
|
43
|
-
// * Selectively disables the build cache for this project. The project will never be restored from cache.
|
|
44
|
-
// *
|
|
45
|
-
// * This is a useful workaround if that project's build scripts violate the assumptions of the cache,
|
|
46
|
-
// * for example by writing files outside the project folder. Where possible, a better solution is to improve
|
|
47
|
-
// * the build scripts to be compatible with caching.
|
|
48
|
-
// */
|
|
49
|
-
// "disableBuildCache": true
|
|
50
|
-
// }
|
|
51
|
-
]
|
|
52
|
-
}
|
|
10
|
+
"operationSettings": []
|
|
53
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livepreso/api",
|
|
3
|
-
"
|
|
3
|
+
"license": "UNLICENSED",
|
|
4
|
+
"version": "6.44.0",
|
|
4
5
|
"description": "Everything to do with talking to the SalePreso API",
|
|
5
6
|
"main": "index.js",
|
|
6
7
|
"module": "esm/index.js",
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"esdoc": "^1.1.0",
|
|
44
45
|
"esdoc-standard-plugin": "^1.0.0",
|
|
45
46
|
"git-hooks": "^1.0.2",
|
|
46
|
-
"jest": "
|
|
47
|
+
"jest": "~27.4.7",
|
|
47
48
|
"jsdom-global": "^2.1.1",
|
|
48
49
|
"npm-run-all": "^4.1.5",
|
|
49
50
|
"sinon": "^2.1.0",
|
|
@@ -57,9 +58,10 @@
|
|
|
57
58
|
},
|
|
58
59
|
"scripts": {
|
|
59
60
|
"test:debug": "node --inspect node_modules/.bin/jest --watch --runInBand",
|
|
60
|
-
"test": "
|
|
61
|
+
"test": "jest --silent 2>&1",
|
|
61
62
|
"build:cjs": "BABEL_ENV=cjs babel --delete-dir-on-start src/ --out-dir=cjs/ -s",
|
|
62
63
|
"build": "run-p build:*",
|
|
63
64
|
"prepublish": "npm run build"
|
|
64
|
-
}
|
|
65
|
+
},
|
|
66
|
+
"readme": "# API\n\nThe single point of entry for interacting with the SalesPreso API. Contains functionality for contacting and authorizing\nwi the API endpoint, as well as middleware, models and collections for sending and retrieving data.\n\n## Install\n\n```bash\nnpm install sp-api\n```\n\nor\n\n```bash\nyarn add sp-api\n```\n\n## Examples\n\n```javascript\nimport {Auth, Api} from \"sp-api\";\nimport {registerMiddleware} from \"sp-api/middleware\";\nimport AuthMiddleware from \"sp-api/middlewares/auth\";\nimport RedirectMiddleware from \"sp-api/middlewares/redirect\";\n\nconst middlewares = [\n new AuthMiddleware(),\n new RedirectMiddleware(),\n new JSONMiddleware()\n];\n\nmiddlewares.map(registerMiddleware);\n\nApi.initialize(\"http://localhost:8000/api/\")\n .then(() => {\n return Auth.login(\"yourlogin\", \"yourpassword\");\n });\n```\n\n## Documentation\n\nhttp://developers.salespreso.com/modules/sp-api/\n"
|
|
65
67
|
}
|
package/src/collections/base.js
CHANGED
|
@@ -8,6 +8,10 @@ import qs from "qs";
|
|
|
8
8
|
import { registeredStates } from "../state-register.js";
|
|
9
9
|
import { sync } from "../sync.js";
|
|
10
10
|
|
|
11
|
+
// Current hardcoded limit for maximum number of pages fetched
|
|
12
|
+
// automatically by fetchAll
|
|
13
|
+
const pageLimit = 20;
|
|
14
|
+
|
|
11
15
|
/**
|
|
12
16
|
* @constructor
|
|
13
17
|
* @alias collections.BaseCollection
|
|
@@ -220,6 +224,73 @@ export const BaseCollection = Collection.extend(
|
|
|
220
224
|
});
|
|
221
225
|
},
|
|
222
226
|
|
|
227
|
+
fetchAll(opts = {}) {
|
|
228
|
+
const options = _.cloneDeep(opts);
|
|
229
|
+
|
|
230
|
+
// Add default params to the fetch (ie ?per_page=1000)
|
|
231
|
+
options.data = _.extend({}, this.queryData, options.data || {});
|
|
232
|
+
this._options = _.extend({}, this._options, options);
|
|
233
|
+
|
|
234
|
+
this.queryData = { ...this._options.data };
|
|
235
|
+
|
|
236
|
+
if (this._options.url) {
|
|
237
|
+
this._url = options.url;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const checkPages = (response) => {
|
|
241
|
+
const notLastPage = response.total_pages > response.page;
|
|
242
|
+
const belowPageLimit = response.page < pageLimit;
|
|
243
|
+
|
|
244
|
+
if (notLastPage && belowPageLimit) {
|
|
245
|
+
const options = {
|
|
246
|
+
...this._options,
|
|
247
|
+
data: {
|
|
248
|
+
...this._options.data,
|
|
249
|
+
page: response.page + 1,
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
// Update the collection with the new data & page number
|
|
254
|
+
this._options = options;
|
|
255
|
+
this.queryData = { ...options.data };
|
|
256
|
+
|
|
257
|
+
return this.fetchPage().then((response) => {
|
|
258
|
+
checkPages(response);
|
|
259
|
+
});
|
|
260
|
+
} else {
|
|
261
|
+
// The collection's models are replaced with the latest
|
|
262
|
+
// batch of models every time a new page is fetched.
|
|
263
|
+
// Here we add back all of the previously-fetched models.
|
|
264
|
+
this.add(this._data.results);
|
|
265
|
+
return this._data;
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
return this.fetchPage().then((response) => {
|
|
270
|
+
return checkPages(response);
|
|
271
|
+
});
|
|
272
|
+
},
|
|
273
|
+
|
|
274
|
+
fetchPage() {
|
|
275
|
+
return Collection.prototype.fetch
|
|
276
|
+
.call(this, this._options)
|
|
277
|
+
.then((response) => {
|
|
278
|
+
// Add the response data to this._data - if we're fetching
|
|
279
|
+
// multiple pages, this._data.results will contain all of the
|
|
280
|
+
// results fetched from all pages so far
|
|
281
|
+
if (this._data.results?.length) {
|
|
282
|
+
this._data = {
|
|
283
|
+
...response,
|
|
284
|
+
results: [...this._data.results, ...response.results],
|
|
285
|
+
};
|
|
286
|
+
} else {
|
|
287
|
+
this._data = response;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
return response;
|
|
291
|
+
});
|
|
292
|
+
},
|
|
293
|
+
|
|
223
294
|
toServer() {
|
|
224
295
|
return this.map(function (model) {
|
|
225
296
|
if (model.toServer) {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { BaseCollection } from "./base.js";
|
|
2
2
|
import { BaseModel } from "../models/base.js";
|
|
3
|
+
import AmpersandCollection from "ampersand-rest-collection";
|
|
3
4
|
import { G } from "sp-test/api";
|
|
4
5
|
import td from "testdouble";
|
|
6
|
+
import Promise from "bluebird";
|
|
5
7
|
|
|
6
8
|
it("should parse an array of urls into models", () => {
|
|
7
9
|
G(BaseModel, "TestModel").extend({ modelName: "tests" });
|
|
@@ -119,3 +121,94 @@ it("should be empty on initialize", () => {
|
|
|
119
121
|
const collection = new Collection();
|
|
120
122
|
expect(collection.length).toEqual(0);
|
|
121
123
|
});
|
|
124
|
+
|
|
125
|
+
const mockFetchResults = (dataFn) => {
|
|
126
|
+
jest
|
|
127
|
+
.spyOn(AmpersandCollection.prototype, "fetch")
|
|
128
|
+
.mockImplementation((opts) => {
|
|
129
|
+
const fetchResults = dataFn(opts);
|
|
130
|
+
return Promise.resolve(fetchResults);
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
describe("fetchAll", () => {
|
|
135
|
+
it("calls Collection.prototype.fetch", async () => {
|
|
136
|
+
mockFetchResults(() => {
|
|
137
|
+
return {
|
|
138
|
+
results: [{ id: 20 }, { id: 21 }, { id: 22 }],
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
G(BaseModel, "TestModel");
|
|
143
|
+
const Collection = G(BaseCollection.extend({ model: "TestModel" }));
|
|
144
|
+
const baseCollection = new Collection();
|
|
145
|
+
|
|
146
|
+
await baseCollection.fetchAll();
|
|
147
|
+
|
|
148
|
+
expect(baseCollection.length).toEqual(3);
|
|
149
|
+
expect(baseCollection.first().id).toEqual(20);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
it("adds results to existing results", async () => {
|
|
153
|
+
mockFetchResults(() => {
|
|
154
|
+
return {
|
|
155
|
+
results: [{ id: 22 }],
|
|
156
|
+
};
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
G(BaseModel, "TestModel");
|
|
160
|
+
const Collection = G(BaseCollection.extend({ model: "TestModel" }));
|
|
161
|
+
const baseCollection = new Collection([{ id: 15 }]);
|
|
162
|
+
|
|
163
|
+
await baseCollection.fetchAll();
|
|
164
|
+
|
|
165
|
+
expect(baseCollection.length).toEqual(2);
|
|
166
|
+
// The models are sorted by ID
|
|
167
|
+
expect(baseCollection.first().id).toEqual(15);
|
|
168
|
+
expect(baseCollection.last().id).toEqual(22);
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
it("fetches multiple pages", async () => {
|
|
172
|
+
mockFetchResults((opts) => {
|
|
173
|
+
const page = opts.data.page || 1;
|
|
174
|
+
const fetchResults = {
|
|
175
|
+
total_pages: 5,
|
|
176
|
+
page,
|
|
177
|
+
results: [{ id: page + 10 }],
|
|
178
|
+
};
|
|
179
|
+
return Promise.resolve(fetchResults);
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
G(BaseModel, "TestModel");
|
|
183
|
+
const Collection = G(BaseCollection.extend({ model: "TestModel" }));
|
|
184
|
+
const baseCollection = new Collection();
|
|
185
|
+
|
|
186
|
+
await baseCollection.fetchAll();
|
|
187
|
+
|
|
188
|
+
expect(baseCollection.length).toEqual(5);
|
|
189
|
+
expect(baseCollection.first().id).toEqual(11);
|
|
190
|
+
expect(baseCollection.last().id).toEqual(15);
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
it("stops fetching pages at the hardcoded limit", async () => {
|
|
194
|
+
mockFetchResults((opts) => {
|
|
195
|
+
const page = opts.data.page || 1;
|
|
196
|
+
const fetchResults = {
|
|
197
|
+
total_pages: 50,
|
|
198
|
+
page,
|
|
199
|
+
results: [{ id: page + 10 }],
|
|
200
|
+
};
|
|
201
|
+
return Promise.resolve(fetchResults);
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
G(BaseModel, "TestModel");
|
|
205
|
+
const Collection = G(BaseCollection.extend({ model: "TestModel" }));
|
|
206
|
+
const baseCollection = new Collection();
|
|
207
|
+
|
|
208
|
+
await baseCollection.fetchAll();
|
|
209
|
+
|
|
210
|
+
expect(baseCollection.length).toEqual(20);
|
|
211
|
+
expect(baseCollection.first().id).toEqual(11);
|
|
212
|
+
expect(baseCollection.last().id).toEqual(30);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
@@ -99,6 +99,9 @@ export const ManifestJSONModel = BaseModel.extend(
|
|
|
99
99
|
appointment: {
|
|
100
100
|
show_visible_default: false,
|
|
101
101
|
},
|
|
102
|
+
fieldsets: {
|
|
103
|
+
enforce_required: false,
|
|
104
|
+
},
|
|
102
105
|
};
|
|
103
106
|
},
|
|
104
107
|
},
|
|
@@ -304,6 +307,12 @@ ManifestJSONModel.createFromProject = function (projectFile) {
|
|
|
304
307
|
};
|
|
305
308
|
}
|
|
306
309
|
|
|
310
|
+
// For all new decks going forward, this should be set to true.
|
|
311
|
+
// This means we validate that a fieldset field has a value. Before
|
|
312
|
+
// this change, it was possible to save with a required field unfilled.
|
|
313
|
+
// This just keeps backwards compatability.
|
|
314
|
+
manifest.app_settings.fieldsets.enforce_required = true;
|
|
315
|
+
|
|
307
316
|
return manifest;
|
|
308
317
|
};
|
|
309
318
|
|