@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
package/src/fixtures.js
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import * as collections from "./collections.js";
|
|
2
|
+
import * as models from "./models.js";
|
|
3
|
+
import * as presentation from "./presentation.js";
|
|
4
|
+
|
|
5
|
+
import { Factory } from "rosie";
|
|
6
|
+
import { faker } from "@faker-js/faker";
|
|
7
|
+
|
|
8
|
+
const presentationModels = {
|
|
9
|
+
AppointmentPresentation: presentation.AppointmentPresentation,
|
|
10
|
+
PresentationDeck: presentation.PresentationDeck,
|
|
11
|
+
PresentationSection: presentation.PresentationSection,
|
|
12
|
+
PresentationSlide: presentation.PresentationSlide,
|
|
13
|
+
PresentationSubSlide: presentation.PresentationSubSlide,
|
|
14
|
+
Presentation: presentation.Presentation,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const presentationCollections = {
|
|
18
|
+
PresentationDecks: presentation.PresentationDecks,
|
|
19
|
+
PresentationSections: presentation.PresentationSections,
|
|
20
|
+
PresentationSlides: presentation.PresentationSlides,
|
|
21
|
+
PresentationSubSlides: presentation.PresentationSubSlides,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
function makeFactory(name, Model, ignoreFields = []) {
|
|
25
|
+
const factory = Factory.define(name, Model).sequence("id");
|
|
26
|
+
|
|
27
|
+
const { _definition: definition, _children: children } = Model.prototype;
|
|
28
|
+
|
|
29
|
+
if (definition) {
|
|
30
|
+
for (const [key, value] of Object.entries(definition)) {
|
|
31
|
+
if (typeof value.default !== "undefined") {
|
|
32
|
+
// If we have a default actually specified on the model, use that
|
|
33
|
+
let defaultValue = value.default;
|
|
34
|
+
if (typeof defaultValue === "function") {
|
|
35
|
+
defaultValue = defaultValue();
|
|
36
|
+
}
|
|
37
|
+
factory.attr(key, defaultValue);
|
|
38
|
+
} else if (value.type === "string") {
|
|
39
|
+
factory.attr(key, "");
|
|
40
|
+
} else if (value.type === "number") {
|
|
41
|
+
factory.attr(key, 0);
|
|
42
|
+
} else if (value.type === "array") {
|
|
43
|
+
factory.attr(key, []);
|
|
44
|
+
} else if (value.type === "object") {
|
|
45
|
+
factory.attr(key, {});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (children) {
|
|
51
|
+
for (const [key, value] of Object.entries(children)) {
|
|
52
|
+
if (ignoreFields.includes(key)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
factory.attr(key, () => {
|
|
56
|
+
return Factory.build(value);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return factory;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const allModels = { ...models, ...presentationModels };
|
|
65
|
+
|
|
66
|
+
const factories = Object.keys(allModels).reduce(
|
|
67
|
+
(registered, key) => {
|
|
68
|
+
registered[key] = makeFactory(key, allModels[key]);
|
|
69
|
+
return registered;
|
|
70
|
+
},
|
|
71
|
+
{},
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
export function M(modelName, opts) {
|
|
75
|
+
if (!factories[modelName]) {
|
|
76
|
+
throw new Error(
|
|
77
|
+
`Model with name '${modelName}' not found. Check your spelling of the model`,
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
const model = factories[modelName].build(opts);
|
|
81
|
+
return model;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function C(collectionName, data) {
|
|
85
|
+
const allCollections = { ...collections, ...presentationCollections };
|
|
86
|
+
const Collection = allCollections[collectionName];
|
|
87
|
+
if (!Collection) {
|
|
88
|
+
throw new Error(`Collection with name ${collectionName} does not exist`);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const modelName = Collection.prototype.model;
|
|
92
|
+
|
|
93
|
+
return new Collection(data.map((d) => M(modelName, d)));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
factories.AppointmentModel.attr("latest_snapshot", null)
|
|
97
|
+
.attr("latest_feed_data", null)
|
|
98
|
+
.attr("latest_tele", null)
|
|
99
|
+
.attr("stats", null)
|
|
100
|
+
.attr("appointmentssection_set", [])
|
|
101
|
+
.attr("appointmentsslide_set", [])
|
|
102
|
+
.after((appt) => {
|
|
103
|
+
if (!appt.latest_snapshot) {
|
|
104
|
+
appt.latest_snapshot = M("SnapshotModel", { appointment: appt });
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (!appt.latest_feed_data) {
|
|
108
|
+
appt.latest_feed_data = M("FeedDataModel", {
|
|
109
|
+
snapshot: appt.latest_snapshot,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
factories.DeckModel.attr("approved_version", null)
|
|
115
|
+
.attr("head_version", null)
|
|
116
|
+
.after((deck) => {
|
|
117
|
+
if (!deck.approved_version || !deck.head_version) {
|
|
118
|
+
const dv = M("DeckVersionModel", { deck });
|
|
119
|
+
if (!deck.approved_version) {
|
|
120
|
+
deck.approved_version = dv;
|
|
121
|
+
}
|
|
122
|
+
if (!deck.head_version) {
|
|
123
|
+
deck.head_version = dv;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
factories.SnapshotModel.attr("creation_status", "ready");
|
|
129
|
+
|
|
130
|
+
factories.AutoAdjunctModel.attr("team", null)
|
|
131
|
+
.attr("enabled", true)
|
|
132
|
+
.sequence("sequence")
|
|
133
|
+
.attr("_tenancy", {
|
|
134
|
+
editable: true,
|
|
135
|
+
owner_id: null,
|
|
136
|
+
})
|
|
137
|
+
.after((auto) => {
|
|
138
|
+
if (auto.template?.cmsvalkey_set) {
|
|
139
|
+
auto.cmsvalkey_set = auto.template.cmsvalkey_set.map((key) => {
|
|
140
|
+
return `${key}-autoadjunct-${auto.id}`;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
factories.DeckVersionModel.attr("deck", null)
|
|
146
|
+
.attr("approved", true)
|
|
147
|
+
.attr("creation_status", "created")
|
|
148
|
+
.attr("approval", "approved")
|
|
149
|
+
.after((dv) => {
|
|
150
|
+
if (!dv.deck) {
|
|
151
|
+
dv.deck = M("DeckModel", {
|
|
152
|
+
approved_version: dv,
|
|
153
|
+
head_version: dv,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
factories.UserModel.attr("first_name", () => faker.name.firstName()).attr(
|
|
159
|
+
"last_name",
|
|
160
|
+
() => faker.name.lastName(),
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
factories.TenancyModel.attr("administrator", null);
|
|
164
|
+
|
|
165
|
+
factories.TemplateModel.sequence("sequence")
|
|
166
|
+
// Prevent max call stack overflow
|
|
167
|
+
.attr("original_template", null)
|
|
168
|
+
.sequence("index")
|
|
169
|
+
.after((template) => {
|
|
170
|
+
if (template.original_template?.index_asset) {
|
|
171
|
+
template.index_asset = template.original_template.index_asset.url();
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
factories.ContactModel.attr("customer", null)
|
|
176
|
+
.attr("name_first", () => faker.name.firstName())
|
|
177
|
+
.attr("name_last", () => faker.name.lastName())
|
|
178
|
+
.attr("email", () => faker.internet.email())
|
|
179
|
+
.after((contact, options) => {
|
|
180
|
+
if (!contact.customer) {
|
|
181
|
+
contact.customer = M("CustomerModel", {
|
|
182
|
+
contact_set: [contact],
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
contact.customer.contact_set = [contact.toJSON()];
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
factories.CustomerModel.attr("default_location", null)
|
|
190
|
+
.attr("default_opportunity", null)
|
|
191
|
+
.attr("title", () => faker.company.name());
|
|
192
|
+
|
|
193
|
+
export { Factory };
|
|
@@ -38,6 +38,8 @@ export const ActivityItemModel = BaseModel.extend(
|
|
|
38
38
|
notyours: "boolean",
|
|
39
39
|
onshare: "boolean",
|
|
40
40
|
view_type: "string",
|
|
41
|
+
is_muted: "boolean",
|
|
42
|
+
appointment_is_deleted: "boolean",
|
|
41
43
|
},
|
|
42
44
|
|
|
43
45
|
children: {
|
|
@@ -58,7 +60,7 @@ export const ActivityItemModel = BaseModel.extend(
|
|
|
58
60
|
...data,
|
|
59
61
|
};
|
|
60
62
|
},
|
|
61
|
-
}
|
|
63
|
+
},
|
|
62
64
|
);
|
|
63
65
|
|
|
64
66
|
register("ActivityItemModel", ActivityItemModel);
|
|
@@ -43,7 +43,10 @@ export const AdjunctSectionModel = BaseModel.extend(
|
|
|
43
43
|
title: "string",
|
|
44
44
|
sequence: "number",
|
|
45
45
|
deleted: "boolean",
|
|
46
|
-
enabled:
|
|
46
|
+
enabled: {
|
|
47
|
+
type: "boolean",
|
|
48
|
+
default: true,
|
|
49
|
+
},
|
|
47
50
|
created_by_autoadjunct: "boolean",
|
|
48
51
|
impostor: "boolean",
|
|
49
52
|
tags: "array",
|
|
@@ -67,8 +70,10 @@ export const AdjunctSectionModel = BaseModel.extend(
|
|
|
67
70
|
const data = {
|
|
68
71
|
sequence: this.sequence,
|
|
69
72
|
appointment: this._retrieveURL(this.appointment),
|
|
73
|
+
template: this._retrieveURL(this.template),
|
|
70
74
|
deckversion: this._retrieveURL(this.deckversion),
|
|
71
75
|
enabled: this.enabled,
|
|
76
|
+
tags: this.tags,
|
|
72
77
|
};
|
|
73
78
|
|
|
74
79
|
if (this.adjunct) {
|
|
@@ -90,7 +95,7 @@ export const AdjunctSectionModel = BaseModel.extend(
|
|
|
90
95
|
|
|
91
96
|
return data;
|
|
92
97
|
},
|
|
93
|
-
}
|
|
98
|
+
},
|
|
94
99
|
);
|
|
95
100
|
|
|
96
101
|
register("AdjunctSectionModel", AdjunctSectionModel);
|
|
@@ -43,7 +43,10 @@ export const AdjunctSlideModel = BaseModel.extend(
|
|
|
43
43
|
modified_date: "date",
|
|
44
44
|
title: "string",
|
|
45
45
|
sequence: "number",
|
|
46
|
-
enabled:
|
|
46
|
+
enabled: {
|
|
47
|
+
type: "boolean",
|
|
48
|
+
default: true,
|
|
49
|
+
},
|
|
47
50
|
created_by_autoadjunct: "boolean",
|
|
48
51
|
tags: "array",
|
|
49
52
|
},
|
|
@@ -67,8 +70,10 @@ export const AdjunctSlideModel = BaseModel.extend(
|
|
|
67
70
|
const data = {
|
|
68
71
|
sequence: this.sequence,
|
|
69
72
|
appointment: this._retrieveURL(this.appointment),
|
|
73
|
+
template: this._retrieveURL(this.template),
|
|
70
74
|
section: this._retrieveURL(this.section),
|
|
71
75
|
enabled: this.enabled,
|
|
76
|
+
tags: this.tags,
|
|
72
77
|
};
|
|
73
78
|
|
|
74
79
|
if (this.adjunct) {
|
|
@@ -90,7 +95,7 @@ export const AdjunctSlideModel = BaseModel.extend(
|
|
|
90
95
|
|
|
91
96
|
return data;
|
|
92
97
|
},
|
|
93
|
-
}
|
|
98
|
+
},
|
|
94
99
|
);
|
|
95
100
|
|
|
96
101
|
register("AdjunctSlideModel", AdjunctSlideModel);
|
package/src/models/adjunct.js
CHANGED
|
@@ -31,7 +31,45 @@ export const AdjunctModel = BaseModel.extend(
|
|
|
31
31
|
children: {
|
|
32
32
|
template: "TemplateModel",
|
|
33
33
|
},
|
|
34
|
-
|
|
34
|
+
|
|
35
|
+
url() {
|
|
36
|
+
if (this._data.url) {
|
|
37
|
+
return this._data.url;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (this._data.id) {
|
|
41
|
+
return `${this.getResourceURL()}adjuncts/${this._data.id}/`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return null;
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
getID() {
|
|
48
|
+
if (this._data.id) {
|
|
49
|
+
return this._data.id;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const resourceURL = `${this.getResourceURL()}adjuncts/`;
|
|
53
|
+
const url = this.url();
|
|
54
|
+
|
|
55
|
+
return this._getIDFromURL(url, resourceURL);
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
toJSON() {
|
|
59
|
+
const data = BaseModel.prototype.toJSON.apply(this, arguments);
|
|
60
|
+
|
|
61
|
+
// There's no "adjuncts" resource endpoint, so we have to use a
|
|
62
|
+
// workaround to get the ID.
|
|
63
|
+
const id = this.getID();
|
|
64
|
+
const url = this.url();
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
...data,
|
|
68
|
+
url,
|
|
69
|
+
id,
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
},
|
|
35
73
|
);
|
|
36
74
|
|
|
37
75
|
register("AdjunctModel", AdjunctModel);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TemplateModel } from "./template.js";
|
|
2
|
+
import { register } from "../state-register.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @constructor
|
|
6
|
+
* @alias models.AppointmentTemplateModel
|
|
7
|
+
* @extends models.BaseModel
|
|
8
|
+
*/
|
|
9
|
+
export const AppointmentTemplateModel = TemplateModel.extend({
|
|
10
|
+
modelName: "appointment-templates",
|
|
11
|
+
|
|
12
|
+
getResourceURL() {
|
|
13
|
+
return TemplateModel.prototype.getResourceURL.call({
|
|
14
|
+
modelName: TemplateModel.prototype.modelName,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
register("AppointmentTemplateModel", AppointmentTemplateModel);
|
|
@@ -15,13 +15,20 @@ import "../collections/slide-selections.js";
|
|
|
15
15
|
import "../collections/dispatches.js";
|
|
16
16
|
import "../collections/users.js";
|
|
17
17
|
import "../collections/appointment-tags";
|
|
18
|
+
import "../collections/appointment-deckversion-tags";
|
|
19
|
+
import "../collections/appointment-section-tags";
|
|
20
|
+
import "../collections/appointment-slide-tags";
|
|
21
|
+
import "../collections/appointment-adjunct-tags";
|
|
18
22
|
|
|
19
23
|
import { AdjunctSectionCollection } from "../collections/adjunct-sections.js";
|
|
20
24
|
import { AdjunctSlideCollection } from "../collections/adjunct-slides.js";
|
|
21
25
|
import { AdjunctSubSlideCollection } from "../collections/adjunct-sub-slides.js";
|
|
26
|
+
import { AppointmentTemplateCollection } from "../collections/appointment-templates.js";
|
|
22
27
|
import { BaseModel } from "./base.js";
|
|
28
|
+
import { ContactPhoneCollection } from "../collections/contact-phones.js";
|
|
23
29
|
import { DeckNoteCollection } from "../collections/deck-notes.js";
|
|
24
30
|
import Promise from "bluebird";
|
|
31
|
+
import _ from "lodash";
|
|
25
32
|
import log from "../log.js";
|
|
26
33
|
import moment from "moment";
|
|
27
34
|
import { register } from "../state-register.js";
|
|
@@ -50,9 +57,11 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
50
57
|
* @property {string} display_title
|
|
51
58
|
* @property {string} viewtype
|
|
52
59
|
* @property {boolean} support_mode
|
|
60
|
+
* @property {boolean} is_muted
|
|
53
61
|
* @property {date} no_edit_after
|
|
54
62
|
* @property {date} no_share_after
|
|
55
63
|
* @property {date} no_delete_after
|
|
64
|
+
* @property {string} share_visibility_mode
|
|
56
65
|
*/
|
|
57
66
|
props: {
|
|
58
67
|
name: "stringSanitized",
|
|
@@ -73,10 +82,12 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
73
82
|
display_title: "stringSanitized",
|
|
74
83
|
viewtype: "string",
|
|
75
84
|
support_mode: "boolean",
|
|
85
|
+
is_muted: "boolean",
|
|
76
86
|
no_edit_after: "date",
|
|
77
87
|
no_share_after: "date",
|
|
78
88
|
no_delete_after: "date",
|
|
79
89
|
no_snapshot_create_after: "date",
|
|
90
|
+
share_visibility_mode: "string",
|
|
80
91
|
},
|
|
81
92
|
|
|
82
93
|
/**
|
|
@@ -150,6 +161,17 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
150
161
|
return adjunctSubSlides;
|
|
151
162
|
},
|
|
152
163
|
},
|
|
164
|
+
includedTemplates: {
|
|
165
|
+
deps: ["id"],
|
|
166
|
+
fn() {
|
|
167
|
+
return new AppointmentTemplateCollection(
|
|
168
|
+
{},
|
|
169
|
+
{
|
|
170
|
+
appointment: this,
|
|
171
|
+
},
|
|
172
|
+
);
|
|
173
|
+
},
|
|
174
|
+
},
|
|
153
175
|
deckNotes: {
|
|
154
176
|
deps: ["id"],
|
|
155
177
|
fn() {
|
|
@@ -209,27 +231,45 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
209
231
|
return this.cannotEdit || this.cannotDelete;
|
|
210
232
|
},
|
|
211
233
|
},
|
|
234
|
+
// This property should be set by the calling code of the appointment and be the set of
|
|
235
|
+
// contact phones for all contacts on this preso. It must be fetchd and set after the contact_set
|
|
236
|
+
// is fetched. It's up to the calling code to decide if this property is required and
|
|
237
|
+
// therefore the extra fetch
|
|
238
|
+
contactPhones: {
|
|
239
|
+
deps: ["id", "contact_set"],
|
|
240
|
+
fn() {
|
|
241
|
+
return new ContactPhoneCollection();
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
|
|
246
|
+
getHooksPath() {
|
|
247
|
+
if (!this.deckversion_set.length) {
|
|
248
|
+
throw new Error("Requires a deckversion to get hooks.");
|
|
249
|
+
}
|
|
250
|
+
return this.deckversion_set.first().getHooksPath();
|
|
212
251
|
},
|
|
213
|
-
|
|
252
|
+
|
|
253
|
+
fetchAll(fetchSelf = false, fetchOptions = {}) {
|
|
214
254
|
return Promise.resolve()
|
|
215
255
|
.then(() => {
|
|
216
256
|
if (!this._url || fetchSelf) {
|
|
217
|
-
return this.fetch(
|
|
257
|
+
return this.fetch(fetchOptions);
|
|
218
258
|
}
|
|
219
259
|
return Promise.resolve();
|
|
220
260
|
})
|
|
221
261
|
.then(() => {
|
|
222
262
|
const fetches = [
|
|
223
|
-
this.deckversion_set
|
|
224
|
-
this.appointmentssection_set
|
|
225
|
-
this.appointmentsslide_set
|
|
226
|
-
this.appointmenteditor_set
|
|
227
|
-
this.adjunctSlides
|
|
228
|
-
this.adjunctSections
|
|
229
|
-
this.adjunctSubSlides
|
|
230
|
-
this.contact_set
|
|
231
|
-
this.tags
|
|
232
|
-
this.user
|
|
263
|
+
this.deckversion_set?.fetchModels(fetchOptions),
|
|
264
|
+
this.appointmentssection_set?.fetch(fetchOptions),
|
|
265
|
+
this.appointmentsslide_set?.fetch(fetchOptions),
|
|
266
|
+
this.appointmenteditor_set?.fetch(fetchOptions),
|
|
267
|
+
this.adjunctSlides?.fetch(fetchOptions),
|
|
268
|
+
this.adjunctSections?.fetch(fetchOptions),
|
|
269
|
+
this.adjunctSubSlides?.fetch(fetchOptions),
|
|
270
|
+
this.contact_set?.fetchSet(fetchOptions),
|
|
271
|
+
this.tags?.fetch(fetchOptions),
|
|
272
|
+
this.user?.fetch(fetchOptions)?.catch((e) => {
|
|
233
273
|
if (e.status && e.status === 404) {
|
|
234
274
|
// It's possible for a user to be deactivated, which means they'll
|
|
235
275
|
// return with a 404. We want to be able to still load the preso,
|
|
@@ -239,51 +279,84 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
239
279
|
}
|
|
240
280
|
throw e;
|
|
241
281
|
}),
|
|
242
|
-
this.deckNotes
|
|
243
|
-
this.
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
282
|
+
this.deckNotes?.fetch(fetchOptions),
|
|
283
|
+
this.includedTemplates.fetch(fetchOptions),
|
|
284
|
+
this.opportunity_set
|
|
285
|
+
?.fetchSet(fetchOptions)
|
|
286
|
+
?.then(() => {
|
|
287
|
+
return Promise.all(
|
|
288
|
+
this.opportunity_set.map((opp) =>
|
|
289
|
+
opp.customer.fetch(fetchOptions),
|
|
290
|
+
),
|
|
291
|
+
);
|
|
292
|
+
})
|
|
293
|
+
?.catch(() => {
|
|
294
|
+
log.error(
|
|
295
|
+
`Failed to fetch Opportunity set`,
|
|
296
|
+
this.opportunity_set.toJSON(),
|
|
297
|
+
);
|
|
298
|
+
return Promise.resolve();
|
|
299
|
+
}),
|
|
250
300
|
];
|
|
251
301
|
|
|
252
302
|
if (this.latest_snapshot) {
|
|
253
|
-
fetches.push(this.latest_snapshot.fetch(
|
|
303
|
+
fetches.push(this.latest_snapshot.fetch(fetchOptions));
|
|
254
304
|
}
|
|
255
305
|
|
|
256
306
|
if (this.latest_feed_data) {
|
|
257
|
-
fetches.push(this.latest_feed_data.fetch(
|
|
307
|
+
fetches.push(this.latest_feed_data.fetch(fetchOptions));
|
|
258
308
|
}
|
|
259
309
|
|
|
260
310
|
if (this.latest_tele) {
|
|
261
|
-
fetches.push(this.latest_tele.fetch(
|
|
311
|
+
fetches.push(this.latest_tele.fetch(fetchOptions));
|
|
262
312
|
}
|
|
263
313
|
|
|
264
314
|
return Promise.all(fetches);
|
|
265
315
|
})
|
|
266
316
|
.then(() => {
|
|
317
|
+
return Promise.all(
|
|
318
|
+
this.deckversion_set.map((model) => {
|
|
319
|
+
return Promise.all([
|
|
320
|
+
model.screenshots.fetch(fetchOptions),
|
|
321
|
+
model.template_set.fetchSet(fetchOptions),
|
|
322
|
+
model.manifest_json.fetch(fetchOptions),
|
|
323
|
+
model.deck.fetch(fetchOptions),
|
|
324
|
+
]);
|
|
325
|
+
}),
|
|
326
|
+
);
|
|
327
|
+
})
|
|
328
|
+
.then(() => {
|
|
329
|
+
const deckversionTemplates =
|
|
330
|
+
this.deckversion_set.first().template_set.models;
|
|
331
|
+
|
|
332
|
+
const allTemplates = _.uniqBy(
|
|
333
|
+
this.includedTemplates.models.concat(deckversionTemplates),
|
|
334
|
+
"id",
|
|
335
|
+
);
|
|
336
|
+
|
|
337
|
+
async function getTemplateOrFetch(adj) {
|
|
338
|
+
const existingTemplate = allTemplates.find(
|
|
339
|
+
(t) => t.id === adj.template.id,
|
|
340
|
+
);
|
|
341
|
+
if (existingTemplate) {
|
|
342
|
+
adj.template = existingTemplate;
|
|
343
|
+
} else {
|
|
344
|
+
await adj.template.fetch(fetchOptions);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
return adj;
|
|
348
|
+
}
|
|
349
|
+
|
|
267
350
|
const adjunctSlides = this.adjunctSlides
|
|
268
351
|
.filter((adj) => adj.template)
|
|
269
|
-
.map((adj) => adj
|
|
352
|
+
.map((adj) => getTemplateOrFetch(adj));
|
|
353
|
+
|
|
270
354
|
const adjunctSections = this.adjunctSections
|
|
271
355
|
.filter((adj) => adj.template)
|
|
272
|
-
.map((adj) => adj
|
|
356
|
+
.map((adj) => getTemplateOrFetch(adj));
|
|
273
357
|
|
|
274
358
|
return Promise.all([...adjunctSlides, ...adjunctSections]);
|
|
275
359
|
})
|
|
276
|
-
.then(() => {
|
|
277
|
-
return Promise.all(
|
|
278
|
-
this.deckversion_set.map((model) => {
|
|
279
|
-
return Promise.all([
|
|
280
|
-
model.template_set.fetchSet(options),
|
|
281
|
-
model.manifest_json.fetch(options),
|
|
282
|
-
model.deck.fetch(options),
|
|
283
|
-
]);
|
|
284
|
-
})
|
|
285
|
-
);
|
|
286
|
-
})
|
|
287
360
|
.return(this);
|
|
288
361
|
},
|
|
289
362
|
|
|
@@ -303,11 +376,13 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
303
376
|
viewtype: appointment.viewtype,
|
|
304
377
|
preset: this._retrieveURL(appointment.preset),
|
|
305
378
|
locks: appointment.locks,
|
|
379
|
+
is_muted: appointment.is_muted,
|
|
306
380
|
no_edit_after: appointment.no_edit_after,
|
|
307
381
|
no_share_after: appointment.no_share_after,
|
|
308
382
|
no_delete_after: appointment.no_delete_after,
|
|
309
383
|
team: this._retrieveURL(appointment.team),
|
|
310
384
|
editors_can_change_editors: appointment.editors_can_change_editors,
|
|
385
|
+
share_visibility_mode: appointment.share_visibility_mode,
|
|
311
386
|
};
|
|
312
387
|
|
|
313
388
|
if (this.id) {
|
|
@@ -316,7 +391,7 @@ export const AppointmentModel = BaseModel.extend(
|
|
|
316
391
|
|
|
317
392
|
return data;
|
|
318
393
|
},
|
|
319
|
-
}
|
|
394
|
+
},
|
|
320
395
|
);
|
|
321
396
|
|
|
322
397
|
register("AppointmentModel", AppointmentModel);
|