@livepreso/api 6.42.1 → 6.45.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.
Files changed (196) hide show
  1. package/.eslintrc.js +3 -0
  2. package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
  3. package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
  4. package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
  5. package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
  6. package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
  7. package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
  8. package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
  9. package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
  10. package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
  11. package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
  12. package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
  13. package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
  14. package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
  15. package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
  16. package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
  17. package/.rush/temp/build-cache-tar.log +7 -0
  18. package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
  19. package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
  20. package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
  21. package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
  22. package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
  23. package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
  24. package/.rush/temp/package-deps_build.json +152 -134
  25. package/.rush/temp/package-deps_test.json +172 -0
  26. package/.rush/temp/shrinkwrap-deps.json +946 -847
  27. package/CHANGELOG.json +41 -0
  28. package/CHANGELOG.md +22 -1
  29. package/api.build.log +3 -26
  30. package/babel.config.js +1 -1
  31. package/bin/test.sh +0 -1
  32. package/cjs/api.js +1 -1
  33. package/cjs/api.js.map +1 -1
  34. package/cjs/auth.js +38 -11
  35. package/cjs/auth.js.map +1 -1
  36. package/cjs/auth.spec.js +12 -6
  37. package/cjs/auth.spec.js.map +1 -1
  38. package/cjs/caching.js +3 -3
  39. package/cjs/collections/activity.js +2 -2
  40. package/cjs/collections/appointment-adjunct-tags.js +28 -0
  41. package/cjs/collections/appointment-adjunct-tags.js.map +1 -0
  42. package/cjs/collections/appointment-deckversion-tags.js +28 -0
  43. package/cjs/collections/appointment-deckversion-tags.js.map +1 -0
  44. package/cjs/collections/appointment-section-tags.js +28 -0
  45. package/cjs/collections/appointment-section-tags.js.map +1 -0
  46. package/cjs/collections/appointment-slide-tags.js +28 -0
  47. package/cjs/collections/appointment-slide-tags.js.map +1 -0
  48. package/cjs/collections/appointment-tags.js +208 -0
  49. package/cjs/collections/appointment-tags.js.map +1 -0
  50. package/cjs/collections/appointments.js +2 -2
  51. package/cjs/collections/auto-adjuncts.js +2 -2
  52. package/cjs/collections/base.js +84 -3
  53. package/cjs/collections/base.js.map +1 -1
  54. package/cjs/collections/base.spec.js +178 -0
  55. package/cjs/collections/base.spec.js.map +1 -1
  56. package/cjs/collections/deck-version-screenshots.js +62 -0
  57. package/cjs/collections/deck-version-screenshots.js.map +1 -0
  58. package/cjs/collections/deck-versions.js +2 -2
  59. package/cjs/collections/tags.js +28 -0
  60. package/cjs/collections/tags.js.map +1 -0
  61. package/cjs/collections.js +91 -0
  62. package/cjs/collections.js.map +1 -1
  63. package/cjs/models/activity-item.js +5 -3
  64. package/cjs/models/activity-item.js.map +1 -1
  65. package/cjs/models/appointment-adjunct-tags.js +52 -0
  66. package/cjs/models/appointment-adjunct-tags.js.map +1 -0
  67. package/cjs/models/appointment-deckversion-tags.js +52 -0
  68. package/cjs/models/appointment-deckversion-tags.js.map +1 -0
  69. package/cjs/models/appointment-duplicate.js +2 -2
  70. package/cjs/models/appointment-section-tags.js +52 -0
  71. package/cjs/models/appointment-section-tags.js.map +1 -0
  72. package/cjs/models/appointment-slide-tags.js +52 -0
  73. package/cjs/models/appointment-slide-tags.js.map +1 -0
  74. package/cjs/models/appointment-tags.js +16 -15
  75. package/cjs/models/appointment-tags.js.map +1 -1
  76. package/cjs/models/appointment.js +19 -3
  77. package/cjs/models/appointment.js.map +1 -1
  78. package/cjs/models/auto-adjunct.js +3 -1
  79. package/cjs/models/auto-adjunct.js.map +1 -1
  80. package/cjs/models/base.js +19 -1
  81. package/cjs/models/base.js.map +1 -1
  82. package/cjs/models/base.spec.js +9 -0
  83. package/cjs/models/base.spec.js.map +1 -1
  84. package/cjs/models/deck-tags.js +61 -0
  85. package/cjs/models/deck-tags.js.map +1 -0
  86. package/cjs/models/deck-version-screenshot.js +59 -0
  87. package/cjs/models/deck-version-screenshot.js.map +1 -0
  88. package/cjs/models/deck-version.js +30 -5
  89. package/cjs/models/deck-version.js.map +1 -1
  90. package/cjs/models/deck.js +4 -1
  91. package/cjs/models/deck.js.map +1 -1
  92. package/cjs/models/feed-data.js +5 -0
  93. package/cjs/models/feed-data.js.map +1 -1
  94. package/cjs/models/image.js +34 -0
  95. package/cjs/models/image.js.map +1 -1
  96. package/cjs/models/manifest-json.js +56 -13
  97. package/cjs/models/manifest-json.js.map +1 -1
  98. package/cjs/models/preset.js +21 -1
  99. package/cjs/models/preset.js.map +1 -1
  100. package/cjs/models/section.js +3 -1
  101. package/cjs/models/section.js.map +1 -1
  102. package/cjs/models/slide.js +3 -1
  103. package/cjs/models/slide.js.map +1 -1
  104. package/cjs/models/tag.js +54 -0
  105. package/cjs/models/tag.js.map +1 -0
  106. package/cjs/models/template.js +3 -1
  107. package/cjs/models/template.js.map +1 -1
  108. package/cjs/models/token.js +56 -0
  109. package/cjs/models/token.js.map +1 -0
  110. package/cjs/models/user.js +4 -2
  111. package/cjs/models/user.js.map +1 -1
  112. package/cjs/models.js +104 -0
  113. package/cjs/models.js.map +1 -1
  114. package/cjs/presentation/appointment-presentation.js +11 -4
  115. package/cjs/presentation/appointment-presentation.js.map +1 -1
  116. package/cjs/presentation/base-presentation-model.js +167 -9
  117. package/cjs/presentation/base-presentation-model.js.map +1 -1
  118. package/cjs/presentation/base-presentation-model.spec.js +96 -6
  119. package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
  120. package/cjs/presentation/presentation-deck.js +36 -8
  121. package/cjs/presentation/presentation-deck.js.map +1 -1
  122. package/cjs/presentation/presentation-deck.spec.js +53 -0
  123. package/cjs/presentation/presentation-deck.spec.js.map +1 -1
  124. package/cjs/presentation/presentation-section.js +64 -25
  125. package/cjs/presentation/presentation-section.js.map +1 -1
  126. package/cjs/presentation/presentation-section.spec.js +536 -0
  127. package/cjs/presentation/presentation-section.spec.js.map +1 -0
  128. package/cjs/presentation/presentation-slide.js +43 -18
  129. package/cjs/presentation/presentation-slide.js.map +1 -1
  130. package/cjs/presentation/presentation-slide.spec.js +386 -0
  131. package/cjs/presentation/presentation-slide.spec.js.map +1 -0
  132. package/cjs/presentation/presentation-subslide.js +5 -2
  133. package/cjs/presentation/presentation-subslide.js.map +1 -1
  134. package/cjs/presentation/presentation-subslide.spec.js +58 -12
  135. package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
  136. package/cjs/presentation/presentation.js +120 -6
  137. package/cjs/presentation/presentation.js.map +1 -1
  138. package/cjs/state-register.js +11 -1
  139. package/cjs/state-register.js.map +1 -1
  140. package/cjs/sync.js +1 -1
  141. package/cjs/utils.js +5 -5
  142. package/config/rush-project.json +11 -0
  143. package/jest.config.js +1 -0
  144. package/package.json +66 -66
  145. package/src/api.js +1 -1
  146. package/src/auth.js +44 -8
  147. package/src/auth.spec.js +2 -0
  148. package/src/collections/appointment-adjunct-tags.js +18 -0
  149. package/src/collections/appointment-deckversion-tags.js +21 -0
  150. package/src/collections/appointment-section-tags.js +18 -0
  151. package/src/collections/appointment-slide-tags.js +18 -0
  152. package/src/collections/appointment-tags.js +136 -0
  153. package/src/collections/base.js +80 -3
  154. package/src/collections/base.spec.js +108 -1
  155. package/src/collections/deck-version-screenshots.js +48 -0
  156. package/src/collections/tags.js +18 -0
  157. package/src/collections.js +7 -0
  158. package/src/models/activity-item.js +2 -0
  159. package/src/models/appointment-adjunct-tags.js +41 -0
  160. package/src/models/appointment-deckversion-tags.js +41 -0
  161. package/src/models/appointment-section-tags.js +41 -0
  162. package/src/models/appointment-slide-tags.js +41 -0
  163. package/src/models/appointment-tags.js +16 -14
  164. package/src/models/appointment.js +18 -1
  165. package/src/models/auto-adjunct.js +2 -0
  166. package/src/models/base.js +19 -1
  167. package/src/models/base.spec.js +16 -9
  168. package/src/models/deck-tags.js +52 -0
  169. package/src/models/deck-version-screenshot.js +48 -0
  170. package/src/models/deck-version.js +32 -4
  171. package/src/models/deck.js +2 -0
  172. package/src/models/feed-data.js +2 -0
  173. package/src/models/image.js +32 -0
  174. package/src/models/manifest-json.js +55 -7
  175. package/src/models/preset.js +19 -0
  176. package/src/models/section.js +2 -0
  177. package/src/models/slide.js +2 -0
  178. package/src/models/tag.js +42 -0
  179. package/src/models/template.js +2 -0
  180. package/src/models/token.js +47 -0
  181. package/src/models/user.js +4 -0
  182. package/src/models.js +8 -0
  183. package/src/presentation/appointment-presentation.js +13 -2
  184. package/src/presentation/base-presentation-model.js +129 -8
  185. package/src/presentation/base-presentation-model.spec.js +121 -6
  186. package/src/presentation/presentation-deck.js +41 -2
  187. package/src/presentation/presentation-deck.spec.js +53 -0
  188. package/src/presentation/presentation-section.js +57 -14
  189. package/src/presentation/presentation-section.spec.js +496 -0
  190. package/src/presentation/presentation-slide.js +41 -8
  191. package/src/presentation/presentation-slide.spec.js +352 -0
  192. package/src/presentation/presentation-subslide.js +7 -2
  193. package/src/presentation/presentation-subslide.spec.js +32 -3
  194. package/src/presentation/presentation.js +35 -6
  195. package/src/state-register.js +7 -0
  196. package/api.build.error.log +0 -16
@@ -1,4 +1,5 @@
1
1
  import { DeckVersionModel } from "../models/deck-version";
2
+ import { DeckVersionScreenshotCollection } from "../collections/deck-version-screenshots.js";
2
3
  import { G } from "sp-test/api";
3
4
  import { ManifestJSONModel } from "../models/manifest-json";
4
5
  import { PresentationDeck } from "./presentation-deck";
@@ -57,6 +58,7 @@ describe("#createFromManifestJSON", () => {
57
58
 
58
59
  describe("#createFromDeckVersion", () => {
59
60
  const deckVersionJSON = {
61
+ image_256: "http://path/to/deck/thumbnail.png",
60
62
  template_set: [
61
63
  {
62
64
  id: 20,
@@ -87,6 +89,7 @@ describe("#createFromDeckVersion", () => {
87
89
  {
88
90
  id: 1,
89
91
  title: "Section 1",
92
+ image_256: "default_section.png",
90
93
  index_asset: {
91
94
  url: "http://path/to/index.html",
92
95
  },
@@ -99,6 +102,7 @@ describe("#createFromDeckVersion", () => {
99
102
  index_asset: {
100
103
  url: "http://path/to/index.html",
101
104
  },
105
+ image_256: "default_slide.png",
102
106
  subslide_set: [],
103
107
  section: { id: 1 },
104
108
  },
@@ -107,6 +111,7 @@ describe("#createFromDeckVersion", () => {
107
111
  {
108
112
  id: 2,
109
113
  title: "Section 2",
114
+ image_256: "default_section.png",
110
115
  index_asset: {
111
116
  url: "http://path/to/index.html",
112
117
  },
@@ -117,6 +122,7 @@ describe("#createFromDeckVersion", () => {
117
122
  {
118
123
  id: 3,
119
124
  title: "Section 3",
125
+ image_256: "default_section.png",
120
126
  index_asset: {
121
127
  url: "http://path/to/index.html",
122
128
  },
@@ -158,4 +164,51 @@ describe("#createFromDeckVersion", () => {
158
164
  );
159
165
  expect(lastSection.css).toEqual("http://path/to/template/orange/slide.css");
160
166
  });
167
+
168
+ describe("Screenshots", () => {
169
+ it("should use the default image from the slide if no screenshot found", () => {
170
+ const deck = new DeckVersionModel(deckVersionJSON);
171
+ const presentationDeck = PresentationDeck.createFromDeckVersion(deck);
172
+ expect(presentationDeck.thumbnail).toEqual(deckVersionJSON.image_256);
173
+ });
174
+
175
+ it("should use the screenshot model if it matches", () => {
176
+ const deck = new DeckVersionModel(deckVersionJSON);
177
+ const options = {
178
+ screenshots: new DeckVersionScreenshotCollection([
179
+ { subject: deck.url(), image_256: "test-screenshot.png" },
180
+ ]),
181
+ };
182
+
183
+ const presentationDeck = PresentationDeck.createFromDeckVersion(
184
+ deck,
185
+ options
186
+ );
187
+ expect(presentationDeck.thumbnail).toEqual("test-screenshot.png");
188
+ });
189
+
190
+ it("should pass screenshots to nested models", () => {
191
+ const deck = new DeckVersionModel(deckVersionJSON);
192
+ const section = deck.section_set.first();
193
+ const slide = section.slide_set.first();
194
+
195
+ const options = {
196
+ screenshots: new DeckVersionScreenshotCollection([
197
+ { subject: deck.url(), image_256: "test-screenshot.png" },
198
+ { subject: section.url(), image_256: "test-screenshot.png" },
199
+ { subject: slide.url(), image_256: "test-screenshot.png" },
200
+ ]),
201
+ };
202
+
203
+ const presentationDeck = PresentationDeck.createFromDeckVersion(
204
+ deck,
205
+ options
206
+ );
207
+ const presentationSection = presentationDeck.sections.first();
208
+ const presentationSlide = presentationSection.slides.first();
209
+
210
+ expect(presentationSection.thumbnail).toEqual("test-screenshot.png");
211
+ expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
212
+ });
213
+ });
161
214
  });
@@ -1,5 +1,7 @@
1
1
  import "./presentation-slides.js";
2
2
 
3
+ import * as collections from "../collections.js";
4
+
3
5
  import {
4
6
  AdjunctSectionModel,
5
7
  AdjunctSlideModel,
@@ -50,6 +52,7 @@ export const PresentationSection = BasePresentationModel.extend(
50
52
  * @property {array} tags
51
53
  * @property {boolean} impostor
52
54
  * @property {boolean} isWelcome
55
+ * @property {string[]} cmsvalkey_set
53
56
  */
54
57
  props: {
55
58
  id: "number",
@@ -95,6 +98,7 @@ export const PresentationSection = BasePresentationModel.extend(
95
98
  type: "boolean",
96
99
  default: () => false,
97
100
  },
101
+ cmsvalkey_set: "array",
98
102
  },
99
103
 
100
104
  /**
@@ -169,6 +173,7 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
169
173
  rootAssetPath: null,
170
174
  selections: null,
171
175
  choicelist: null,
176
+ screenshots: new collections.DeckVersionScreenshotCollection(),
172
177
  });
173
178
 
174
179
  let html;
@@ -201,17 +206,21 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
201
206
  css,
202
207
  key: sectionModel.key,
203
208
  adjunctSlideLimit: sectionModel.adjunctslide_limit,
204
- thumbnail: sectionModel.image_256,
209
+ thumbnail: PresentationSection.getThumbnail(
210
+ sectionModel,
211
+ options.screenshots
212
+ ),
205
213
  custom: false,
206
214
  impostor: false,
207
215
  title: sectionModel.title,
208
216
  deckversion: sectionModel.deckversion.id,
209
- editable: sectionModel.tags.indexOf("editable") > -1,
217
+ editable: tags.indexOf("editable") > -1,
210
218
  tags,
211
219
  index: config.sequence,
212
220
  sequence: config.sequence,
213
221
  visible: config.visible,
214
222
  selectionID: config.selectionID,
223
+ cmsvalkey_set: sectionModel.cmsvalkey_set,
215
224
  });
216
225
 
217
226
  return section;
@@ -228,7 +237,7 @@ PresentationSection.createFromSection = function (sectionModel, options = {}) {
228
237
  PresentationSection.createFromAdjunctSection = function (
229
238
  adjunctSectionModel,
230
239
  deckVersionModel,
231
- options
240
+ options = {}
232
241
  ) {
233
242
  _.defaults(options, {
234
243
  rootAssetPath: null,
@@ -237,6 +246,7 @@ PresentationSection.createFromAdjunctSection = function (
237
246
  getUniqueAdjunctID: () => {
238
247
  return parseInt(_.uniqueId(), 10);
239
248
  },
249
+ screenshots: new collections.DeckVersionScreenshotCollection(),
240
250
  });
241
251
 
242
252
  const keyID =
@@ -251,6 +261,7 @@ PresentationSection.createFromAdjunctSection = function (
251
261
  key = adjunctSectionModel.key;
252
262
  } else if (keyID) {
253
263
  key = `adjunct-${keyID}`;
264
+ adjunctSectionModel.key = key;
254
265
  }
255
266
 
256
267
  const config = PresentationSection.getVisibilityAndSequence(
@@ -258,6 +269,8 @@ PresentationSection.createFromAdjunctSection = function (
258
269
  options
259
270
  );
260
271
 
272
+ const tags = PresentationSection.getTags(adjunctSectionModel, options);
273
+
261
274
  const section = new PresentationSection({
262
275
  id: options.getUniqueAdjunctID(),
263
276
  adjunct: adjunctSectionModel.adjunct
@@ -272,10 +285,8 @@ PresentationSection.createFromAdjunctSection = function (
272
285
  custom: !adjunctSectionModel.created_by_autoadjunct,
273
286
  createdByAutoAdjunct: adjunctSectionModel.created_by_autoadjunct,
274
287
  createdByTemplate: Boolean(adjunctSectionModel.template),
275
- impostor:
276
- adjunctSectionModel.tags &&
277
- adjunctSectionModel.tags.indexOf("section-header") > -1,
278
- tags: adjunctSectionModel.tags,
288
+ impostor: tags.indexOf("section-header") > -1,
289
+ tags: tags,
279
290
  temporary: adjunctSectionModel.created_by_autoadjunct,
280
291
  title: adjunctSectionModel.title,
281
292
  deckversion: deckVersionModel.id,
@@ -283,6 +294,7 @@ PresentationSection.createFromAdjunctSection = function (
283
294
  index: config.sequence,
284
295
  sequence: config.sequence,
285
296
  visible: config.visible,
297
+ cmsvalkey_set: [],
286
298
  });
287
299
 
288
300
  if (adjunctSectionModel.template) {
@@ -307,7 +319,13 @@ PresentationSection.createFromAdjunctSection = function (
307
319
  }
308
320
  section.html = html;
309
321
  section.css = css;
310
- section.thumbnail = adjunctSectionModel.template.image_256;
322
+ section.thumbnail =
323
+ // Try and use autoadjunct screenshot (if there is one), otherwise
324
+ // use the template's image as a fallback
325
+ PresentationSection.getThumbnail(
326
+ adjunctSectionModel.creator_autoadjunct,
327
+ options.screenshots
328
+ ) || adjunctSectionModel.template.image_256;
311
329
  } else {
312
330
  section.image = adjunctSectionModel.image_original;
313
331
  }
@@ -318,12 +336,13 @@ PresentationSection.createFromAdjunctSection = function (
318
336
  PresentationSection.createFromImpostorSection = function (
319
337
  slideModel,
320
338
  DeckVersionModel,
321
- options
339
+ options = {}
322
340
  ) {
323
341
  _.defaults(options, {
324
342
  rootAssetPath: null,
325
343
  selections: null,
326
344
  choicelist: null,
345
+ screenshots: new collections.DeckVersionScreenshotCollection(),
327
346
  });
328
347
 
329
348
  let html;
@@ -358,17 +377,21 @@ PresentationSection.createFromImpostorSection = function (
358
377
  css,
359
378
  key: slideModel.key,
360
379
  adjunctSlideLimit: slideModel.adjunctslide_limit,
361
- thumbnail: slideModel.image_256,
380
+ thumbnail: PresentationSection.getThumbnail(
381
+ slideModel,
382
+ options.screenshots
383
+ ),
362
384
  custom: false,
363
385
  impostor: true,
364
386
  title: slideModel.title,
365
387
  deckversion: slideModel.section.deckversion.id,
366
- editable: slideModel.tags.indexOf("editable") > -1,
388
+ editable: tags.indexOf("editable") > -1,
367
389
  tags,
368
390
  index: config.sequence,
369
391
  sequence: config.sequence,
370
392
  visible: config.visible,
371
393
  selectionID: config.selectionID,
394
+ cmsvalkey_set: slideModel.cmsvalkey_set,
372
395
  });
373
396
 
374
397
  return section;
@@ -392,6 +415,7 @@ PresentationSection.createFromManifestJSON = function (
392
415
  visible: true,
393
416
  deckversion: 1,
394
417
  tags: manifestJSON.tags[sectionKey] || null,
418
+ cmsvalkey_set: [],
395
419
  });
396
420
 
397
421
  const slideKeys = Object.keys(manifestJSON.titles).filter((slideKey) => {
@@ -439,7 +463,7 @@ PresentationSection.createFromManifestImpostor = function (section, index) {
439
463
  return presentationSection;
440
464
  };
441
465
 
442
- PresentationSection.createFromAutoAdjunct = function (model, opts) {
466
+ PresentationSection.createFromAutoAdjunct = function (model, opts = {}) {
443
467
  const requiredKeys = ["index", "deckversionID"];
444
468
  for (const key of requiredKeys) {
445
469
  if (typeof opts[key] === "undefined") {
@@ -454,8 +478,18 @@ PresentationSection.createFromAutoAdjunct = function (model, opts) {
454
478
  deckversionID: -1,
455
479
  sequence: opts.index,
456
480
  impostor: false,
481
+ screenshots: new collections.DeckVersionScreenshotCollection(),
457
482
  });
458
483
 
484
+ const tags = PresentationSection.getTags(
485
+ {
486
+ isAutoAdjunct: true,
487
+ key: model.key,
488
+ tags: model.tags,
489
+ },
490
+ options
491
+ );
492
+
459
493
  const autoAdjunct = new AutoAdjunctModel(model);
460
494
 
461
495
  const autoAdjunctSection = new PresentationSection({
@@ -470,17 +504,25 @@ PresentationSection.createFromAutoAdjunct = function (model, opts) {
470
504
  index: options.index,
471
505
  key: autoAdjunct.key,
472
506
  createdByAutoAdjunct: false,
473
- thumbnail: autoAdjunct.image_256,
507
+ thumbnail: PresentationSection.getThumbnail(
508
+ autoAdjunct,
509
+ options.screenshots
510
+ ),
474
511
  temporary: true,
475
512
  title: autoAdjunct.name,
476
513
  visible: options.visible,
477
514
  allowConvert: options.allowConvert,
478
515
  deckversion: options.deckversionID,
479
516
  impostor: options.impostor,
517
+ tags,
518
+ cmsvalkey_set: autoAdjunct.cmsvalkey_set,
480
519
  });
481
520
 
482
521
  if (autoAdjunct.template) {
483
- autoAdjunctSection.thumbnail = autoAdjunct.template.image_256;
522
+ // If we've found a new screenshot for it, we don't want to override it here
523
+ if (!autoAdjunctSection.thumbnail) {
524
+ autoAdjunctSection.thumbnail = autoAdjunct.template.image_256;
525
+ }
484
526
  autoAdjunctSection.createdByTemplate = true;
485
527
  autoAdjunctSection.templateID = autoAdjunct.template.id;
486
528
  autoAdjunctSection.html = autoAdjunct.template.index_asset.url();
@@ -514,6 +556,7 @@ PresentationSection.createFromTemplate = function (template, index, minID = 0) {
514
556
  sequence: 9000 + templateModel.sequence,
515
557
  createdByTemplate: true,
516
558
  index,
559
+ cmsvalkey_set: [],
517
560
  });
518
561
 
519
562
  return presentationSection;