@livepreso/api 6.44.0 → 6.46.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/.eslintrc.js +3 -0
- package/.rush/temp/1aebf46f78ad5c45f82f8147751890adb37bef9d.log +10 -0
- package/.rush/temp/256021b5963b4c0221d3dec247b697b9691a9b2c.log +10 -0
- package/.rush/temp/2a322f00f12cf9d1e64afe81275cc78d01c49050.log +10 -0
- package/.rush/temp/30061f1865447dcbb3f20a305061205f3dbe6091.log +10 -0
- package/.rush/temp/3cdc82c352e8ed90607952873f3aa4c200490874.log +10 -0
- package/.rush/temp/45522aea0dee8cb2be1a53248ba45bd235743b43.log +10 -0
- package/.rush/temp/5489ab737e406518983c16c57fc3e1edc07c0341.log +10 -0
- package/.rush/temp/58fcbb7f15a76326d40e0839ab179755da82a891.log +10 -0
- package/.rush/temp/5bc0bba70b733baa4dd976667ba0a1386e516186.log +10 -0
- package/.rush/temp/64f1bb696f8d7d7e72907b80df316b127f72e23e.log +10 -0
- package/.rush/temp/6f640f951414ea68adb65c17e4ed7527cde54faf.log +10 -0
- package/.rush/temp/7c7b958682d4ab5697530be47d0aac62efe1adf1.log +10 -0
- package/.rush/temp/82bfb987463fbcfebf04022e6ed00015c73879c8.log +10 -0
- package/.rush/temp/844034aa6e542115075e8f3dc5ffc640973e0064.log +10 -0
- package/.rush/temp/8b42957a7c15da1f29cb57bee125f13affa70dca.log +10 -0
- package/.rush/temp/924652444ab5a6063f328a2217123a2227058896.log +10 -0
- package/.rush/temp/9f2030f96d62f3e38052e35201819a216566f14f.log +10 -0
- package/.rush/temp/a769db9d81a23000c0e9b1bf4f1a9a9e721d0d7c.log +10 -0
- package/.rush/temp/a87d3a8b4ece87ec66f27c86226a9f205617681f.log +10 -0
- package/.rush/temp/bb7a5bdcc4af4ad1507f81f33774b31f5b4e4fb7.log +10 -0
- package/.rush/temp/c20e29ccaaa9231b38a28bb24451b4ce7562cdc0.log +10 -0
- package/.rush/temp/e21303db8f59b4625fd184c9114377d781fd24f8.log +10 -0
- package/.rush/temp/e6d303862765b6a5f41dd483d0f9ae083a1fae10.log +10 -0
- package/.rush/temp/eaf69fbc059d2f1258d7569136180d4a1d3c7072.log +10 -0
- package/.rush/temp/f85d279e2674966daaec83e1c3986a96f86ef304.log +10 -0
- package/.rush/temp/fc0a332c5b34c6b90006850cf2d93a48fb4b9a6e.log +10 -0
- package/.rush/temp/operation/test/all.log +19 -0
- package/.rush/temp/operation/test/state.json +3 -0
- package/.rush/temp/{package-deps_test.json → package-deps_build.json} +11 -11
- package/.rush/temp/shrinkwrap-deps.json +605 -597
- package/CHANGELOG.json +29 -0
- package/CHANGELOG.md +15 -1
- package/README.md +4 -4
- package/api.build.log +1 -1
- package/api.test.cache.log +1 -0
- package/api.test.log +19 -0
- package/bin/test.sh +0 -1
- package/cjs/api.js +18 -17
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +0 -4
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +35 -36
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +52 -71
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +2 -7
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +16 -56
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +1 -10
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +1 -10
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +1 -9
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +1 -9
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +1 -9
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-duplicates.js +1 -9
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +1 -10
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +1 -9
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +1 -9
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +66 -103
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +27 -0
- package/cjs/collections/appointment-templates.js.map +1 -0
- package/cjs/collections/appointments.js +9 -29
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +1 -9
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +6 -21
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +46 -112
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +204 -233
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +9 -16
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +20 -0
- package/cjs/collections/contact-phones.js.map +1 -0
- package/cjs/collections/contacts.js +1 -9
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +1 -10
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +1 -9
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +1 -10
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +49 -0
- package/cjs/collections/deck-version-screenshots.js.map +1 -0
- package/cjs/collections/deck-versions.js +5 -20
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +1 -9
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +1 -10
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +1 -13
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +1 -9
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +1 -9
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +1 -9
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +1 -9
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +1 -9
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +1 -9
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +1 -9
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +1 -9
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +1 -9
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +1 -9
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +1 -9
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +1 -9
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +1 -9
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +1 -9
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +1 -9
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +1 -9
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +1 -9
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +1 -9
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +1 -9
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +1 -9
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +33 -86
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +187 -0
- package/cjs/fixtures.js.map +1 -0
- package/cjs/index.js +0 -10
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +0 -1
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +2 -7
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +1 -17
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +3 -9
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +1 -19
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +5 -21
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +6 -20
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +8 -21
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +8 -21
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +1 -16
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +34 -10
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +1 -6
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +1 -13
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +1 -13
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-duplicate.js +3 -25
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +1 -14
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +1 -13
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +1 -13
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +1 -11
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +1 -10
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +23 -0
- package/cjs/models/appointment-template.js.map +1 -0
- package/cjs/models/appointment-viewing.js +1 -8
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +94 -69
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -11
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +1 -15
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +5 -14
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +89 -173
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +8 -30
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +1 -8
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +28 -15
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +25 -0
- package/cjs/models/cms-val.spec.js.map +1 -0
- package/cjs/models/contact-phone.js +54 -0
- package/cjs/models/contact-phone.js.map +1 -0
- package/cjs/models/contact.js +1 -18
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +5 -30
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +1 -9
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +1 -12
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +47 -0
- package/cjs/models/deck-version-screenshot.js.map +1 -0
- package/cjs/models/deck-version.js +54 -47
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +1 -14
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +1 -13
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +1 -23
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +1 -6
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +1 -11
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +1 -13
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +6 -13
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +1 -11
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +1 -11
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +1 -13
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +1 -15
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +30 -11
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +1 -13
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +75 -74
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +1 -14
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +1 -14
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +1 -14
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +1 -12
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +4 -20
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +17 -11
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +1 -9
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +1 -12
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +1 -14
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +4 -15
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +1 -14
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +4 -15
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +13 -15
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +44 -0
- package/cjs/models/snapshot.spec.js.map +1 -0
- package/cjs/models/sub-slide.js +1 -12
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +1 -11
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +1 -13
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +14 -13
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +89 -15
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +4 -11
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +21 -78
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +24 -37
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +46 -0
- package/cjs/models/token.js.map +1 -0
- package/cjs/models/transcribe-socket.js +1 -8
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +1 -7
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +11 -28
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +20 -30
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +44 -128
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +14 -36
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +1 -7
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +108 -33
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +58 -23
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +73 -83
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +118 -88
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +1 -9
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +70 -84
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +296 -238
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +1 -9
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +74 -84
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +211 -166
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +1 -9
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +3 -23
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +101 -125
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +1 -9
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +87 -32
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +0 -20
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +81 -0
- package/cjs/selections.js.map +1 -0
- package/cjs/state-register.js +3 -11
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +32 -76
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +51 -42
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +0 -4
- package/cjs/utils.spec.js.map +1 -1
- package/jest.config.js +5 -3
- package/package.json +11 -8
- package/src/api.js +17 -2
- package/src/auth.js +45 -9
- package/src/auth.spec.js +2 -0
- package/src/collections/activity.js +4 -4
- package/src/collections/adjunct-sections.js +1 -1
- package/src/collections/adjunct-slides.js +1 -1
- package/src/collections/adjunct-sub-slides.js +1 -1
- package/src/collections/appointment-adjunct-tags.js +1 -1
- package/src/collections/appointment-deckversion-tags.js +2 -2
- package/src/collections/appointment-duplicates.js +1 -1
- package/src/collections/appointment-editors.js +1 -1
- package/src/collections/appointment-section-tags.js +1 -1
- package/src/collections/appointment-slide-tags.js +1 -1
- package/src/collections/appointment-tags.js +20 -18
- package/src/collections/appointment-templates.js +26 -0
- package/src/collections/appointments.js +9 -9
- package/src/collections/assets.js +1 -1
- package/src/collections/auto-adjuncts.js +1 -1
- package/src/collections/base.js +20 -10
- package/src/collections/base.spec.js +19 -5
- package/src/collections/cms-vals.js +5 -1
- package/src/collections/contact-phones.js +18 -0
- package/src/collections/contacts.js +1 -1
- package/src/collections/created-assets.js +1 -1
- package/src/collections/customers.js +1 -1
- package/src/collections/deck-notes.js +1 -1
- package/src/collections/deck-version-screenshots.js +48 -0
- package/src/collections/deck-versions.js +1 -1
- package/src/collections/decks.js +1 -1
- package/src/collections/deleted-assets.js +1 -1
- package/src/collections/dispatches.js +2 -2
- package/src/collections/event-objects.js +1 -1
- package/src/collections/events.js +1 -1
- package/src/collections/groups.js +1 -1
- package/src/collections/images.js +1 -1
- package/src/collections/locations.js +1 -1
- package/src/collections/opportunities.js +1 -1
- package/src/collections/pack-diffs.js +1 -1
- package/src/collections/packs.js +1 -1
- package/src/collections/presets.js +1 -1
- package/src/collections/section-selections.js +1 -1
- package/src/collections/sections.js +1 -1
- package/src/collections/slide-selections.js +1 -1
- package/src/collections/slides.js +1 -1
- package/src/collections/snapshots.js +1 -1
- package/src/collections/sub-slides.js +1 -1
- package/src/collections/tags.js +1 -1
- package/src/collections/teams.js +1 -1
- package/src/collections/templates.js +1 -1
- package/src/collections/uploads.js +1 -1
- package/src/collections/users.js +1 -1
- package/src/collections.js +3 -0
- package/src/fixtures.js +193 -0
- package/src/models/activity-item.js +3 -1
- package/src/models/adjunct-section.js +7 -2
- package/src/models/adjunct-slide.js +7 -2
- package/src/models/adjunct-sub-slide.js +1 -1
- package/src/models/adjunct.js +39 -1
- package/src/models/appointment-adjunct-tags.js +1 -1
- package/src/models/appointment-deckversion-tags.js +1 -1
- package/src/models/appointment-duplicate.js +1 -1
- package/src/models/appointment-editor.js +1 -1
- package/src/models/appointment-section-tags.js +1 -1
- package/src/models/appointment-slide-tags.js +1 -1
- package/src/models/appointment-stats.js +1 -1
- package/src/models/appointment-tags.js +1 -1
- package/src/models/appointment-template.js +19 -0
- package/src/models/appointment-viewing.js +1 -1
- package/src/models/appointment.js +112 -37
- package/src/models/asset.js +15 -1
- package/src/models/auto-adjunct-key-check.js +1 -1
- package/src/models/auto-adjunct.js +4 -1
- package/src/models/base.js +55 -22
- package/src/models/base.spec.js +34 -27
- package/src/models/choicelist.js +1 -1
- package/src/models/cms-val.js +24 -1
- package/src/models/cms-val.spec.js +14 -0
- package/src/models/contact-phone.js +57 -0
- package/src/models/contact.js +1 -1
- package/src/models/customer.js +3 -3
- package/src/models/deck-note.js +1 -1
- package/src/models/deck-tags.js +1 -1
- package/src/models/deck-version-screenshot.js +48 -0
- package/src/models/deck-version.js +60 -9
- package/src/models/deck.js +1 -1
- package/src/models/dispatch-preview.js +1 -1
- package/src/models/dispatch.js +1 -1
- package/src/models/event-object.js +1 -1
- package/src/models/event.js +1 -1
- package/src/models/feed-data.js +3 -1
- package/src/models/file.js +1 -1
- package/src/models/group.js +1 -1
- package/src/models/handover.js +1 -1
- package/src/models/hosted-preso.js +1 -1
- package/src/models/image.js +33 -1
- package/src/models/location.js +1 -1
- package/src/models/manifest-json.js +57 -6
- package/src/models/onshare.js +1 -1
- package/src/models/opportunity.js +1 -1
- package/src/models/pack-diff.js +1 -1
- package/src/models/pack.js +1 -1
- package/src/models/preset.js +3 -1
- package/src/models/refresh-request.js +15 -1
- package/src/models/room.js +1 -1
- package/src/models/salesforce-lookup.js +1 -1
- package/src/models/section-selection.js +1 -1
- package/src/models/section.js +3 -1
- package/src/models/slide-selection.js +1 -1
- package/src/models/slide.js +3 -1
- package/src/models/snapshot.js +11 -2
- package/src/models/snapshot.spec.js +31 -0
- package/src/models/sub-slide.js +1 -1
- package/src/models/support-ticket.js +1 -1
- package/src/models/tag.js +1 -1
- package/src/models/team.js +14 -3
- package/src/models/template.js +74 -2
- package/src/models/tenancy.js +4 -1
- package/src/models/timing-log.js +2 -2
- package/src/models/timing-log.spec.js +1 -1
- package/src/models/token.js +47 -0
- package/src/models/transcribe-socket.js +1 -1
- package/src/models/user.js +15 -2
- package/src/models.js +4 -0
- package/src/presentation/appointment-presentation.js +13 -5
- package/src/presentation/base-presentation-collection.js +1 -1
- package/src/presentation/base-presentation-model.js +88 -3
- package/src/presentation/base-presentation-model.spec.js +80 -3
- package/src/presentation/presentation-deck.js +65 -22
- package/src/presentation/presentation-deck.spec.js +55 -2
- package/src/presentation/presentation-decks.js +1 -1
- package/src/presentation/presentation-section.js +91 -31
- package/src/presentation/presentation-section.spec.js +142 -10
- package/src/presentation/presentation-sections.js +1 -1
- package/src/presentation/presentation-slide.js +69 -23
- package/src/presentation/presentation-slide.spec.js +105 -9
- package/src/presentation/presentation-slides.js +1 -1
- package/src/presentation/presentation-subslide.js +5 -5
- package/src/presentation/presentation-subslide.spec.js +3 -3
- package/src/presentation/presentation-subslides.js +1 -1
- package/src/presentation/presentation.js +27 -8
- package/src/selections.js +71 -0
- package/src/sync.js +1 -1
- package/src/utils.js +31 -8
- package/src/utils.spec.js +4 -4
|
@@ -41,6 +41,7 @@ export const PresentationSlide = BasePresentationModel.extend(
|
|
|
41
41
|
* @property {number} selectionID
|
|
42
42
|
* @property {bool} editable
|
|
43
43
|
* @property {array} tags
|
|
44
|
+
* @property {string[]} cmsvalkey_set
|
|
44
45
|
*/
|
|
45
46
|
props: {
|
|
46
47
|
id: "number",
|
|
@@ -77,6 +78,7 @@ export const PresentationSlide = BasePresentationModel.extend(
|
|
|
77
78
|
selectionID: "number",
|
|
78
79
|
editable: "boolean",
|
|
79
80
|
tags: "array",
|
|
81
|
+
cmsvalkey_set: "array",
|
|
80
82
|
},
|
|
81
83
|
|
|
82
84
|
/**
|
|
@@ -84,6 +86,7 @@ export const PresentationSlide = BasePresentationModel.extend(
|
|
|
84
86
|
*/
|
|
85
87
|
children: {
|
|
86
88
|
adjunct: "AdjunctModel",
|
|
89
|
+
template: "TemplateModel",
|
|
87
90
|
},
|
|
88
91
|
|
|
89
92
|
/**
|
|
@@ -103,7 +106,7 @@ export const PresentationSlide = BasePresentationModel.extend(
|
|
|
103
106
|
}
|
|
104
107
|
return this._url;
|
|
105
108
|
},
|
|
106
|
-
}
|
|
109
|
+
},
|
|
107
110
|
);
|
|
108
111
|
|
|
109
112
|
/**
|
|
@@ -116,6 +119,7 @@ export const PresentationSlide = BasePresentationModel.extend(
|
|
|
116
119
|
PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
117
120
|
_.defaults(options, {
|
|
118
121
|
adjunctSubSlides: new collections.AdjunctSubSlideCollection(),
|
|
122
|
+
screenshots: new collections.DeckVersionScreenshotCollection(),
|
|
119
123
|
rootAssetPath: null,
|
|
120
124
|
selections: null,
|
|
121
125
|
choicelist: null,
|
|
@@ -124,6 +128,8 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
124
128
|
},
|
|
125
129
|
});
|
|
126
130
|
|
|
131
|
+
options.screenshots = PresentationSlide.screenshotsToMap(options.screenshots);
|
|
132
|
+
|
|
127
133
|
let html;
|
|
128
134
|
let css;
|
|
129
135
|
|
|
@@ -131,7 +137,7 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
131
137
|
|
|
132
138
|
if (options.rootAssetPath) {
|
|
133
139
|
const baseRoot = getAssetRoot(
|
|
134
|
-
slideModel.section.deckversion.index_asset.url()
|
|
140
|
+
slideModel.section.deckversion.index_asset.url(),
|
|
135
141
|
);
|
|
136
142
|
const slidePath = assetRoot.slice(baseRoot.length);
|
|
137
143
|
html = `${options.rootAssetPath}${slidePath}index.html`;
|
|
@@ -143,7 +149,7 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
143
149
|
|
|
144
150
|
const config = PresentationSlide.getVisibilityAndSequence(
|
|
145
151
|
slideModel,
|
|
146
|
-
options
|
|
152
|
+
options,
|
|
147
153
|
);
|
|
148
154
|
|
|
149
155
|
const tags = PresentationSlide.getTags(slideModel, options);
|
|
@@ -154,7 +160,7 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
154
160
|
html,
|
|
155
161
|
css,
|
|
156
162
|
key: slideModel.key,
|
|
157
|
-
thumbnail: slideModel.
|
|
163
|
+
thumbnail: PresentationSlide.getThumbnail(slideModel, options.screenshots),
|
|
158
164
|
custom: false,
|
|
159
165
|
editable: tags.indexOf("editable") > -1,
|
|
160
166
|
title: slideModel.title,
|
|
@@ -164,12 +170,13 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
164
170
|
sequence: config.sequence,
|
|
165
171
|
visible: config.visible,
|
|
166
172
|
selectionID: config.selectionID,
|
|
173
|
+
cmsvalkey_set: slideModel.cmsvalkey_set,
|
|
167
174
|
});
|
|
168
175
|
|
|
169
176
|
slide.subslides.add(
|
|
170
177
|
slideModel.subslide_set.map((model) => {
|
|
171
178
|
return PresentationSubSlide.createFromSubSlide(model, options);
|
|
172
|
-
})
|
|
179
|
+
}),
|
|
173
180
|
);
|
|
174
181
|
|
|
175
182
|
const adjunctSubslides = options.adjunctSubSlides.filter((model) => {
|
|
@@ -202,7 +209,7 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
202
209
|
...options,
|
|
203
210
|
id,
|
|
204
211
|
});
|
|
205
|
-
})
|
|
212
|
+
}),
|
|
206
213
|
);
|
|
207
214
|
|
|
208
215
|
return slide;
|
|
@@ -219,7 +226,7 @@ PresentationSlide.createFromSlide = function (slideModel, options = {}) {
|
|
|
219
226
|
PresentationSlide.createFromAdjunctSlide = function (
|
|
220
227
|
adjunctSlideModel,
|
|
221
228
|
section = null,
|
|
222
|
-
options = {}
|
|
229
|
+
options = {},
|
|
223
230
|
) {
|
|
224
231
|
_.defaults(options, {
|
|
225
232
|
id: null,
|
|
@@ -229,8 +236,11 @@ PresentationSlide.createFromAdjunctSlide = function (
|
|
|
229
236
|
getUniqueAdjunctID: () => {
|
|
230
237
|
return parseInt(_.uniqueId(), 10);
|
|
231
238
|
},
|
|
239
|
+
screenshots: new collections.DeckVersionScreenshotCollection(),
|
|
232
240
|
});
|
|
233
241
|
|
|
242
|
+
options.screenshots = PresentationSlide.screenshotsToMap(options.screenshots);
|
|
243
|
+
|
|
234
244
|
const keyID =
|
|
235
245
|
adjunctSlideModel.id ||
|
|
236
246
|
(adjunctSlideModel.creator_autoadjunct
|
|
@@ -248,18 +258,18 @@ PresentationSlide.createFromAdjunctSlide = function (
|
|
|
248
258
|
|
|
249
259
|
const config = PresentationSlide.getVisibilityAndSequence(
|
|
250
260
|
adjunctSlideModel,
|
|
251
|
-
options
|
|
261
|
+
options,
|
|
252
262
|
);
|
|
253
263
|
|
|
254
264
|
const tags = PresentationSlide.getTags(adjunctSlideModel, options);
|
|
255
265
|
|
|
266
|
+
const autoAdjunctID = adjunctSlideModel.creator_autoadjunct?.id || null;
|
|
267
|
+
|
|
256
268
|
const slide = new PresentationSlide({
|
|
257
269
|
id: options.id || options.getUniqueAdjunctID(),
|
|
258
|
-
adjunct: adjunctSlideModel.adjunct
|
|
270
|
+
adjunct: adjunctSlideModel.adjunct,
|
|
259
271
|
adjunctID: adjunctSlideModel.id,
|
|
260
|
-
autoAdjunctID
|
|
261
|
-
? adjunctSlideModel.creator_autoadjunct.id
|
|
262
|
-
: null,
|
|
272
|
+
autoAdjunctID,
|
|
263
273
|
key,
|
|
264
274
|
thumbnail: adjunctSlideModel.image_256,
|
|
265
275
|
createdByAutoAdjunct: adjunctSlideModel.created_by_autoadjunct,
|
|
@@ -272,12 +282,15 @@ PresentationSlide.createFromAdjunctSlide = function (
|
|
|
272
282
|
index: config.sequence,
|
|
273
283
|
sequence: config.sequence,
|
|
274
284
|
visible: config.visible,
|
|
285
|
+
cmsvalkey_set: adjunctSlideModel.template?.cmsvalkey_set || [],
|
|
286
|
+
templateID: adjunctSlideModel.template?.id || null,
|
|
287
|
+
template: adjunctSlideModel.template || null,
|
|
275
288
|
});
|
|
276
289
|
|
|
277
290
|
if (adjunctSlideModel.template) {
|
|
278
291
|
if (!adjunctSlideModel.template.index_asset) {
|
|
279
292
|
throw new Error(
|
|
280
|
-
"Template missing index_asset. Do you have the whole template available?"
|
|
293
|
+
"Template missing index_asset. Do you have the whole template available?",
|
|
281
294
|
);
|
|
282
295
|
}
|
|
283
296
|
const origPath = adjunctSlideModel.template.index_asset.orig_path;
|
|
@@ -289,14 +302,24 @@ PresentationSlide.createFromAdjunctSlide = function (
|
|
|
289
302
|
css = `${options.rootAssetPath}${origPath}/slide.css`;
|
|
290
303
|
} else {
|
|
291
304
|
const assetRoot = getAssetRoot(
|
|
292
|
-
adjunctSlideModel.template.index_asset.url()
|
|
305
|
+
adjunctSlideModel.template.index_asset.url(),
|
|
293
306
|
);
|
|
294
307
|
html = `${assetRoot}index.html`;
|
|
295
308
|
css = `${assetRoot}slide.css`;
|
|
296
309
|
}
|
|
297
310
|
slide.html = html;
|
|
298
311
|
slide.css = css;
|
|
299
|
-
|
|
312
|
+
|
|
313
|
+
if (adjunctSlideModel.creator_autoadjunct) {
|
|
314
|
+
slide.thumbnail = PresentationSlide.getThumbnail(
|
|
315
|
+
adjunctSlideModel.creator_autoadjunct,
|
|
316
|
+
options.screenshots,
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
if (!slide.thumbnail) {
|
|
321
|
+
slide.thumbnail = adjunctSlideModel.template.image_256;
|
|
322
|
+
}
|
|
300
323
|
} else {
|
|
301
324
|
slide.image = adjunctSlideModel.image_original;
|
|
302
325
|
}
|
|
@@ -308,7 +331,7 @@ PresentationSlide.createFromManifestJSON = function (
|
|
|
308
331
|
manifestJSON,
|
|
309
332
|
key,
|
|
310
333
|
sectionID,
|
|
311
|
-
index
|
|
334
|
+
index,
|
|
312
335
|
) {
|
|
313
336
|
const [, slideKey] = key.split("/");
|
|
314
337
|
|
|
@@ -326,6 +349,7 @@ PresentationSlide.createFromManifestJSON = function (
|
|
|
326
349
|
visible: true,
|
|
327
350
|
section: sectionID,
|
|
328
351
|
tags: manifestJSON.tags[key] || null,
|
|
352
|
+
cmsvalkey_set: [],
|
|
329
353
|
});
|
|
330
354
|
|
|
331
355
|
return slide;
|
|
@@ -334,7 +358,7 @@ PresentationSlide.createFromManifestJSON = function (
|
|
|
334
358
|
PresentationSlide.createFromManifestImpostor = function (
|
|
335
359
|
slide,
|
|
336
360
|
index,
|
|
337
|
-
sectionID
|
|
361
|
+
sectionID,
|
|
338
362
|
) {
|
|
339
363
|
const presentationSlide = new PresentationSlide({
|
|
340
364
|
id: parseInt(_.uniqueId(), 10),
|
|
@@ -354,7 +378,7 @@ PresentationSlide.createFromTemplate = function (
|
|
|
354
378
|
template,
|
|
355
379
|
index,
|
|
356
380
|
sectionID,
|
|
357
|
-
minID = 0
|
|
381
|
+
minID = 0,
|
|
358
382
|
) {
|
|
359
383
|
const presentationSlide = new PresentationSlide({
|
|
360
384
|
...template,
|
|
@@ -368,11 +392,12 @@ PresentationSlide.createFromTemplate = function (
|
|
|
368
392
|
autoAdjunctID: Number(_.uniqueId()),
|
|
369
393
|
index,
|
|
370
394
|
createdByTemplate: true,
|
|
395
|
+
cmsvalkey_set: [],
|
|
371
396
|
});
|
|
372
397
|
return presentationSlide;
|
|
373
398
|
};
|
|
374
399
|
|
|
375
|
-
PresentationSlide.createFromAutoAdjunct = function (model, opts) {
|
|
400
|
+
PresentationSlide.createFromAutoAdjunct = function (model, opts = {}) {
|
|
376
401
|
const requiredKeys = ["index", "deckversionID"];
|
|
377
402
|
for (const key of requiredKeys) {
|
|
378
403
|
if (typeof opts[key] === "undefined") {
|
|
@@ -387,15 +412,18 @@ PresentationSlide.createFromAutoAdjunct = function (model, opts) {
|
|
|
387
412
|
deckversionID: -1,
|
|
388
413
|
sequence: opts.index,
|
|
389
414
|
impostor: false,
|
|
415
|
+
screenshots: new collections.DeckVersionScreenshotCollection(),
|
|
390
416
|
});
|
|
391
417
|
|
|
418
|
+
options.screenshots = PresentationSlide.screenshotsToMap(options.screenshots);
|
|
419
|
+
|
|
392
420
|
const tags = PresentationSlide.getTags(
|
|
393
421
|
{
|
|
394
422
|
isAutoAdjunct: true,
|
|
395
423
|
key: model.key,
|
|
396
424
|
tags: model.tags,
|
|
397
425
|
},
|
|
398
|
-
options
|
|
426
|
+
options,
|
|
399
427
|
);
|
|
400
428
|
|
|
401
429
|
const autoAdjunct = new AutoAdjunctModel(model);
|
|
@@ -405,14 +433,15 @@ PresentationSlide.createFromAutoAdjunct = function (model, opts) {
|
|
|
405
433
|
adjunctID: autoAdjunct.id,
|
|
406
434
|
autoAdjunctID: autoAdjunct.id,
|
|
407
435
|
createdByTemplate: autoAdjunct.template !== null,
|
|
408
|
-
templateID: autoAdjunct.template
|
|
436
|
+
templateID: autoAdjunct.template?.id || null,
|
|
437
|
+
template: autoAdjunct.template || null,
|
|
409
438
|
html: "",
|
|
410
439
|
css: "",
|
|
411
440
|
sequence: options.sequence,
|
|
412
441
|
index: options.index,
|
|
413
442
|
key: autoAdjunct.key,
|
|
414
443
|
createdByAutoAdjunct: false,
|
|
415
|
-
thumbnail: autoAdjunct.
|
|
444
|
+
thumbnail: PresentationSlide.getThumbnail(autoAdjunct, options.screenshots),
|
|
416
445
|
temporary: true,
|
|
417
446
|
title: autoAdjunct.name,
|
|
418
447
|
visible: options.visible,
|
|
@@ -420,13 +449,30 @@ PresentationSlide.createFromAutoAdjunct = function (model, opts) {
|
|
|
420
449
|
deckversion: options.deckversionID,
|
|
421
450
|
impostor: options.impostor,
|
|
422
451
|
tags,
|
|
452
|
+
cmsvalkey_set: autoAdjunct.cmsvalkey_set,
|
|
423
453
|
});
|
|
424
454
|
|
|
425
455
|
if (autoAdjunct.template) {
|
|
426
|
-
|
|
456
|
+
// If we've found a new screenshot for it, we don't want to override it here
|
|
457
|
+
if (!autoAdjunctSlide.thumbnail) {
|
|
458
|
+
autoAdjunctSlide.thumbnail = autoAdjunct.template.image_256;
|
|
459
|
+
}
|
|
427
460
|
autoAdjunctSlide.createdByTemplate = true;
|
|
428
461
|
autoAdjunctSlide.templateID = autoAdjunct.template.id;
|
|
429
462
|
autoAdjunctSlide.html = autoAdjunct.template.index_asset.url();
|
|
463
|
+
//
|
|
464
|
+
// We've had some instances where the caching was returning the wrong data, and the
|
|
465
|
+
// app was unable to recover when an autoadjunct was missing keys. So, check for missing
|
|
466
|
+
// keys.
|
|
467
|
+
const missingKeys = autoAdjunct.template.cmsvalkey_set
|
|
468
|
+
.filter((t) => {
|
|
469
|
+
return !autoAdjunctSlide.cmsvalkey_set.find((k) => k.startsWith(t));
|
|
470
|
+
})
|
|
471
|
+
.map((t) => {
|
|
472
|
+
return `${t}-autoadjunct-${autoAdjunct.id}`;
|
|
473
|
+
});
|
|
474
|
+
|
|
475
|
+
autoAdjunctSlide.cmsvalkey_set.push(...missingKeys);
|
|
430
476
|
} else {
|
|
431
477
|
autoAdjunctSlide.image = autoAdjunct.image_original;
|
|
432
478
|
}
|
|
@@ -75,10 +75,47 @@ describe("#createFromSlide", () => {
|
|
|
75
75
|
|
|
76
76
|
expect(presentationSlide.tags).toEqual(["slide-tag"]);
|
|
77
77
|
});
|
|
78
|
+
|
|
79
|
+
describe("Screenshots", () => {
|
|
80
|
+
it("should use the default image from the model if no screenshot found", () => {
|
|
81
|
+
const slide = new SlideModel(getSlideJSON());
|
|
82
|
+
const presentationSlide = PresentationSlide.createFromSlide(slide);
|
|
83
|
+
expect(presentationSlide.thumbnail).toEqual(null);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("should use the screenshot model if it matches", () => {
|
|
87
|
+
const slide = new SlideModel(getSlideJSON());
|
|
88
|
+
const options = {
|
|
89
|
+
screenshots: {
|
|
90
|
+
"/api/slides/23219/": "test-screenshot.png",
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const presentationSlide = PresentationSlide.createFromSlide(
|
|
95
|
+
slide,
|
|
96
|
+
options,
|
|
97
|
+
);
|
|
98
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
99
|
+
});
|
|
100
|
+
});
|
|
78
101
|
});
|
|
79
102
|
|
|
80
103
|
describe("#createFromAdjunctSlide", () => {
|
|
81
|
-
const getAdjunctSlideJSON = () => {
|
|
104
|
+
const getAdjunctSlideJSON = (includeTemplate = false) => {
|
|
105
|
+
const template = {
|
|
106
|
+
id: 1,
|
|
107
|
+
image_256: "template.png",
|
|
108
|
+
index_asset: {
|
|
109
|
+
created_date: "2021-07-22T04:57:32.977770Z",
|
|
110
|
+
data: "index.html",
|
|
111
|
+
id: 148204,
|
|
112
|
+
modified_date: "2021-07-22T04:57:32.977790Z",
|
|
113
|
+
orig_path: "templates/test-template/foo",
|
|
114
|
+
pack: "https://staging-test.salespreso.com/api/packs/410/",
|
|
115
|
+
url: "https://staging-test-cdn.salespreso.com/media/pack/410/assets/sections/test-deck/slides/slide-key/index.html",
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
82
119
|
return {
|
|
83
120
|
adjunct: "https://staging-test.salespreso.com/api/adjuncts/7457/",
|
|
84
121
|
appointment: "https://staging-test.salespreso.com/api/appointments/2426/",
|
|
@@ -105,7 +142,7 @@ describe("#createFromAdjunctSlide", () => {
|
|
|
105
142
|
section: "https://staging-test.salespreso.com/api/sections/1755/",
|
|
106
143
|
sequence: 3,
|
|
107
144
|
tags: [],
|
|
108
|
-
template: null,
|
|
145
|
+
template: includeTemplate ? template : null,
|
|
109
146
|
title: "Six",
|
|
110
147
|
url: "https://staging-test.salespreso.com/api/adjunctslides/10529/",
|
|
111
148
|
};
|
|
@@ -117,9 +154,6 @@ describe("#createFromAdjunctSlide", () => {
|
|
|
117
154
|
PresentationSlide.createFromAdjunctSlide(adjunctSlide);
|
|
118
155
|
|
|
119
156
|
const expected = {
|
|
120
|
-
adjunct: {
|
|
121
|
-
url: "https://staging-test.salespreso.com/api/adjuncts/7457/",
|
|
122
|
-
},
|
|
123
157
|
adjunctID: 10529,
|
|
124
158
|
autoAdjunctID: 541,
|
|
125
159
|
createdByAutoAdjunct: true,
|
|
@@ -141,9 +175,12 @@ describe("#createFromAdjunctSlide", () => {
|
|
|
141
175
|
title: "Six",
|
|
142
176
|
url: "/api/adjunctslides/10529/",
|
|
143
177
|
visible: true,
|
|
178
|
+
cmsvalkey_set: [],
|
|
144
179
|
};
|
|
145
180
|
|
|
146
|
-
expect(presentationSlide.toJSON()).toEqual(
|
|
181
|
+
expect(presentationSlide.toJSON()).toEqual(
|
|
182
|
+
expect.objectContaining(expected),
|
|
183
|
+
);
|
|
147
184
|
});
|
|
148
185
|
|
|
149
186
|
it("should use deckTags when available", async () => {
|
|
@@ -155,11 +192,39 @@ describe("#createFromAdjunctSlide", () => {
|
|
|
155
192
|
const presentationSlide = PresentationSlide.createFromAdjunctSlide(
|
|
156
193
|
adjunctSlide,
|
|
157
194
|
null,
|
|
158
|
-
options
|
|
195
|
+
options,
|
|
159
196
|
);
|
|
160
197
|
|
|
161
198
|
expect(presentationSlide.tags).toEqual(["adjunctslide-tag"]);
|
|
162
199
|
});
|
|
200
|
+
|
|
201
|
+
describe("Screenshots", () => {
|
|
202
|
+
it("should use the default image from the model if no screenshot found", () => {
|
|
203
|
+
const data = getAdjunctSlideJSON(true);
|
|
204
|
+
const adjunctSlide = new AdjunctSlideModel(data);
|
|
205
|
+
const presentationSlide =
|
|
206
|
+
PresentationSlide.createFromAdjunctSlide(adjunctSlide);
|
|
207
|
+
|
|
208
|
+
expect(presentationSlide.thumbnail).toEqual(data.template.image_256);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
it("should use the screenshot model if it matches", () => {
|
|
212
|
+
const adjunctSlide = new AdjunctSlideModel(getAdjunctSlideJSON(true));
|
|
213
|
+
|
|
214
|
+
const options = {
|
|
215
|
+
screenshots: {
|
|
216
|
+
"/api/autoadjuncts/541/": "test-screenshot.png",
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
const presentationSlide = PresentationSlide.createFromAdjunctSlide(
|
|
221
|
+
adjunctSlide,
|
|
222
|
+
null,
|
|
223
|
+
options,
|
|
224
|
+
);
|
|
225
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
226
|
+
});
|
|
227
|
+
});
|
|
163
228
|
});
|
|
164
229
|
|
|
165
230
|
describe("#createFromAutoAdjunct", () => {
|
|
@@ -201,7 +266,7 @@ describe("#createFromAutoAdjunct", () => {
|
|
|
201
266
|
|
|
202
267
|
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
203
268
|
autoAdjunct,
|
|
204
|
-
options
|
|
269
|
+
options,
|
|
205
270
|
);
|
|
206
271
|
|
|
207
272
|
const expected = {
|
|
@@ -219,6 +284,7 @@ describe("#createFromAutoAdjunct", () => {
|
|
|
219
284
|
sequence: 3,
|
|
220
285
|
subslides: [],
|
|
221
286
|
tags: [],
|
|
287
|
+
template: null,
|
|
222
288
|
templateID: null,
|
|
223
289
|
temporary: true,
|
|
224
290
|
thumbnail:
|
|
@@ -243,8 +309,38 @@ describe("#createFromAutoAdjunct", () => {
|
|
|
243
309
|
|
|
244
310
|
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
245
311
|
autoAdjunct,
|
|
246
|
-
options
|
|
312
|
+
options,
|
|
247
313
|
);
|
|
248
314
|
expect(presentationSlide.tags).toEqual(["autoadjunct-tags"]);
|
|
249
315
|
});
|
|
316
|
+
|
|
317
|
+
describe("Screenshots", () => {
|
|
318
|
+
it("should use the default image from the model if no screenshot found", () => {
|
|
319
|
+
const options = { index: 3, deckversionID: 12 };
|
|
320
|
+
const data = getAutoAdjunctJSON();
|
|
321
|
+
const autoAdjunct = new AutoAdjunctModel(data);
|
|
322
|
+
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
323
|
+
autoAdjunct,
|
|
324
|
+
options,
|
|
325
|
+
);
|
|
326
|
+
expect(presentationSlide.thumbnail).toEqual(data.image_256);
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
it("should use the screenshot model if it matches", () => {
|
|
330
|
+
const options = {
|
|
331
|
+
index: 3,
|
|
332
|
+
deckversionID: 12,
|
|
333
|
+
screenshots: {
|
|
334
|
+
"/api/autoadjuncts/525/": "test-screenshot.png",
|
|
335
|
+
},
|
|
336
|
+
};
|
|
337
|
+
const data = getAutoAdjunctJSON();
|
|
338
|
+
const autoAdjunct = new AutoAdjunctModel(data);
|
|
339
|
+
const presentationSlide = PresentationSlide.createFromAutoAdjunct(
|
|
340
|
+
autoAdjunct,
|
|
341
|
+
options,
|
|
342
|
+
);
|
|
343
|
+
expect(presentationSlide.thumbnail).toEqual("test-screenshot.png");
|
|
344
|
+
});
|
|
345
|
+
});
|
|
250
346
|
});
|
|
@@ -13,7 +13,7 @@ export const PresentationSlideCollection = BasePresentationCollection.extend(
|
|
|
13
13
|
/** @lends presentation.PresentationSlideCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
15
|
model: "PresentationSlide",
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
register("PresentationSlideCollection", PresentationSlideCollection);
|
|
@@ -62,7 +62,7 @@ export const PresentationSubSlide = BasePresentationModel.extend(
|
|
|
62
62
|
|
|
63
63
|
return this._url;
|
|
64
64
|
},
|
|
65
|
-
}
|
|
65
|
+
},
|
|
66
66
|
);
|
|
67
67
|
|
|
68
68
|
/**
|
|
@@ -74,7 +74,7 @@ export const PresentationSubSlide = BasePresentationModel.extend(
|
|
|
74
74
|
*/
|
|
75
75
|
PresentationSubSlide.createFromSubSlide = function (
|
|
76
76
|
subSlideModel,
|
|
77
|
-
options = {}
|
|
77
|
+
options = {},
|
|
78
78
|
) {
|
|
79
79
|
_.defaults(options, {
|
|
80
80
|
selections: null,
|
|
@@ -83,7 +83,7 @@ PresentationSubSlide.createFromSubSlide = function (
|
|
|
83
83
|
|
|
84
84
|
const config = PresentationSubSlide.getVisibilityAndSequence(
|
|
85
85
|
subSlideModel,
|
|
86
|
-
options
|
|
86
|
+
options,
|
|
87
87
|
);
|
|
88
88
|
|
|
89
89
|
const tags = PresentationSubSlide.getTags(subSlideModel, options);
|
|
@@ -116,7 +116,7 @@ PresentationSubSlide.createFromSubSlide = function (
|
|
|
116
116
|
PresentationSubSlide.createFromAdjunctSubSlide = function (
|
|
117
117
|
adjunctSubSlideModel,
|
|
118
118
|
slideModel,
|
|
119
|
-
options = {}
|
|
119
|
+
options = {},
|
|
120
120
|
) {
|
|
121
121
|
_.defaults(options, {
|
|
122
122
|
id: null,
|
|
@@ -132,7 +132,7 @@ PresentationSubSlide.createFromAdjunctSubSlide = function (
|
|
|
132
132
|
|
|
133
133
|
const config = PresentationSubSlide.getVisibilityAndSequence(
|
|
134
134
|
adjunctSubSlideModel,
|
|
135
|
-
options
|
|
135
|
+
options,
|
|
136
136
|
);
|
|
137
137
|
|
|
138
138
|
const tags = PresentationSubSlide.getTags(adjunctSubSlideModel, options);
|
|
@@ -60,7 +60,7 @@ describe("#createFromSubSlide", () => {
|
|
|
60
60
|
};
|
|
61
61
|
const presentationSub = PresentationSubSlide.createFromSubSlide(
|
|
62
62
|
subslide,
|
|
63
|
-
options
|
|
63
|
+
options,
|
|
64
64
|
);
|
|
65
65
|
|
|
66
66
|
expect(presentationSub.tags).toEqual(["subslide-tag"]);
|
|
@@ -98,7 +98,7 @@ describe("#createFromAdjunctSubSlide", () => {
|
|
|
98
98
|
const presentationSub = PresentationSubSlide.createFromAdjunctSubSlide(
|
|
99
99
|
subslide,
|
|
100
100
|
{ id: 58 },
|
|
101
|
-
{ id: 23 }
|
|
101
|
+
{ id: 23 },
|
|
102
102
|
);
|
|
103
103
|
|
|
104
104
|
// The adjunct subslide model doesn't have an image prop or a tags prop,
|
|
@@ -136,7 +136,7 @@ describe("#createFromAdjunctSubSlide", () => {
|
|
|
136
136
|
const presentationSub = PresentationSubSlide.createFromAdjunctSubSlide(
|
|
137
137
|
subslide,
|
|
138
138
|
{ id: 58 },
|
|
139
|
-
options
|
|
139
|
+
options,
|
|
140
140
|
);
|
|
141
141
|
|
|
142
142
|
expect(presentationSub.tags).toEqual(["adjunctsubslide-tag"]);
|
|
@@ -13,7 +13,7 @@ export const PresentationSubSlideCollection = BasePresentationCollection.extend(
|
|
|
13
13
|
/** @lends presentation.PresentationSubSlideCollection# */ {
|
|
14
14
|
comparator: "sequence",
|
|
15
15
|
model: "PresentationSubSlide",
|
|
16
|
-
}
|
|
16
|
+
},
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
register("PresentationSubSlideCollection", PresentationSubSlideCollection);
|
|
@@ -2,6 +2,7 @@ import "./presentation-decks.js";
|
|
|
2
2
|
|
|
3
3
|
import { DeckVersionModel, ManifestJSONModel } from "../models.js";
|
|
4
4
|
|
|
5
|
+
import { AutoAdjunctCollection } from "../collections/auto-adjuncts.js";
|
|
5
6
|
import { BasePresentationModel } from "./base-presentation-model.js";
|
|
6
7
|
import { PresentationDeck } from "./presentation-deck.js";
|
|
7
8
|
import Promise from "bluebird";
|
|
@@ -17,9 +18,10 @@ export const Presentation = BasePresentationModel.extend({
|
|
|
17
18
|
|
|
18
19
|
Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
19
20
|
const deckversion = new DeckVersionModel(deckversionURL);
|
|
20
|
-
|
|
21
21
|
const opts = _.defaults(options, {
|
|
22
22
|
includeTemplates: false,
|
|
23
|
+
choicelist: null,
|
|
24
|
+
autoAdjuncts: new AutoAdjunctCollection(),
|
|
23
25
|
});
|
|
24
26
|
|
|
25
27
|
return deckversion
|
|
@@ -30,6 +32,21 @@ Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
|
30
32
|
deckversion.deck.fetch(),
|
|
31
33
|
]);
|
|
32
34
|
})
|
|
35
|
+
.then(async () => {
|
|
36
|
+
const templates = [...deckversion.template_set.models];
|
|
37
|
+
|
|
38
|
+
for (const auto of opts.autoAdjuncts.models) {
|
|
39
|
+
const dvTemplate = templates.find(
|
|
40
|
+
(t) => t.url() === auto.template.url(),
|
|
41
|
+
);
|
|
42
|
+
if (dvTemplate) {
|
|
43
|
+
auto.template = dvTemplate;
|
|
44
|
+
} else {
|
|
45
|
+
await auto.template.fetch();
|
|
46
|
+
templates.push(auto.template);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
})
|
|
33
50
|
.then(() => {
|
|
34
51
|
return deckversion.deck.tags.fetch();
|
|
35
52
|
})
|
|
@@ -41,16 +58,17 @@ Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
|
41
58
|
|
|
42
59
|
const presentation = new Presentation();
|
|
43
60
|
|
|
44
|
-
const
|
|
45
|
-
deckTags,
|
|
46
|
-
};
|
|
61
|
+
const { includeTemplates, ...otherOpts } = opts;
|
|
47
62
|
|
|
48
|
-
if (
|
|
49
|
-
|
|
63
|
+
if (includeTemplates) {
|
|
64
|
+
otherOpts.templates = deckversion.template_set.toJSON();
|
|
50
65
|
}
|
|
51
66
|
|
|
52
67
|
presentation.decks.add([
|
|
53
|
-
PresentationDeck.createFromDeckVersion(deckversion,
|
|
68
|
+
PresentationDeck.createFromDeckVersion(deckversion, {
|
|
69
|
+
...otherOpts,
|
|
70
|
+
deckTags,
|
|
71
|
+
}),
|
|
54
72
|
]);
|
|
55
73
|
|
|
56
74
|
return presentation;
|
|
@@ -63,7 +81,8 @@ Presentation.createFromDeckversion = function (deckversionURL, options) {
|
|
|
63
81
|
|
|
64
82
|
Presentation.createFromManifestJSON = function (manifestJSON, url) {
|
|
65
83
|
const manifestModel = new ManifestJSONModel(manifestJSON.toJSON());
|
|
66
|
-
|
|
84
|
+
|
|
85
|
+
// Let's use the model to transport the base url for the deck assets
|
|
67
86
|
manifestModel._url = url;
|
|
68
87
|
|
|
69
88
|
const deck = PresentationDeck.createFromManifestJSON(manifestModel);
|