@livepreso/api 6.40.0 → 6.43.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 +5 -0
- package/.rush/temp/build-cache-tar.log +7 -0
- package/.rush/temp/package-deps_build.json +170 -0
- package/.rush/temp/shrinkwrap-deps.json +846 -0
- package/CHANGELOG.json +41 -0
- package/CHANGELOG.md +25 -0
- package/api.build.log +15 -0
- package/babel.config.js +9 -18
- package/cjs/api.js +1 -1
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +2 -2
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +6 -5
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +25 -23
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +3 -3
- package/cjs/collections/activity.js +22 -27
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +2 -2
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +2 -2
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +2 -2
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +28 -0
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -0
- package/cjs/collections/appointment-deckversion-tags.js +28 -0
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -0
- package/cjs/collections/appointment-duplicates.js +2 -2
- package/cjs/collections/appointment-duplicates.js.map +1 -1
- package/cjs/collections/appointment-editors.js +2 -2
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +28 -0
- package/cjs/collections/appointment-section-tags.js.map +1 -0
- package/cjs/collections/appointment-slide-tags.js +28 -0
- package/cjs/collections/appointment-slide-tags.js.map +1 -0
- package/cjs/collections/appointment-tags.js +208 -0
- package/cjs/collections/appointment-tags.js.map +1 -0
- package/cjs/collections/appointments.js +10 -6
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +2 -2
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +7 -3
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +30 -25
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +71 -123
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +2 -2
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contacts.js +2 -2
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +2 -2
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +2 -2
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +2 -2
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-versions.js +20 -8
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +2 -2
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +2 -2
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +4 -4
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +2 -2
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +2 -2
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +2 -2
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +2 -2
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +2 -2
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +2 -2
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +2 -2
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +2 -2
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +2 -2
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +2 -2
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +2 -2
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/slide-selections.js +2 -2
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +2 -2
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +2 -2
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +2 -2
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +28 -0
- package/cjs/collections/tags.js.map +1 -0
- package/cjs/collections/teams.js +2 -2
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +2 -2
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +2 -2
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +2 -2
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +115 -0
- package/cjs/collections.js.map +1 -1
- package/cjs/index.js +3 -0
- package/cjs/index.js.map +1 -1
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +10 -6
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +1 -3
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +10 -6
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +10 -6
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +6 -2
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +2 -2
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +2 -2
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +2 -2
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +2 -2
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +52 -0
- package/cjs/models/appointment-adjunct-tags.js.map +1 -0
- package/cjs/models/appointment-deckversion-tags.js +52 -0
- package/cjs/models/appointment-deckversion-tags.js.map +1 -0
- package/cjs/models/appointment-duplicate.js +8 -3
- package/cjs/models/appointment-duplicate.js.map +1 -1
- package/cjs/models/appointment-editor.js +2 -2
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +52 -0
- package/cjs/models/appointment-section-tags.js.map +1 -0
- package/cjs/models/appointment-slide-tags.js +52 -0
- package/cjs/models/appointment-slide-tags.js.map +1 -0
- package/cjs/models/appointment-stats.js +2 -2
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +48 -0
- package/cjs/models/appointment-tags.js.map +1 -0
- package/cjs/models/appointment-viewing.js +2 -2
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +16 -7
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +2 -2
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +2 -2
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +2 -2
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +25 -36
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +45 -45
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/contact.js +2 -2
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +2 -2
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +2 -2
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +61 -0
- package/cjs/models/deck-tags.js.map +1 -0
- package/cjs/models/deck-version.js +5 -3
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +6 -3
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +3 -3
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +2 -2
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +2 -2
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +2 -2
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +2 -2
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +2 -2
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +2 -2
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +2 -2
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +2 -2
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +2 -2
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +2 -2
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +74 -57
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +2 -2
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +2 -2
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +2 -2
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +2 -2
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +22 -2
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +2 -2
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +2 -2
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +2 -2
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +2 -2
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +2 -2
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/slide-selection.js +2 -2
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +2 -2
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +2 -2
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/sub-slide.js +2 -2
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +2 -2
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +54 -0
- package/cjs/models/tag.js.map +1 -0
- package/cjs/models/team.js +2 -2
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +2 -2
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +2 -2
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +20 -41
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +18 -86
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/transcribe-socket.js +2 -2
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +2 -2
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +6 -4
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +10 -8
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +148 -0
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +13 -5
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +65 -0
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +87 -0
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +31 -20
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +15 -13
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +2 -2
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +36 -17
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +418 -0
- package/cjs/presentation/presentation-section.spec.js.map +1 -0
- package/cjs/presentation/presentation-sections.js +2 -2
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +35 -18
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +294 -0
- package/cjs/presentation/presentation-slide.spec.js.map +1 -0
- package/cjs/presentation/presentation-slides.js +2 -2
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +11 -7
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +68 -20
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +2 -2
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +19 -9
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +10 -0
- package/cjs/presentation.js.map +1 -1
- package/cjs/state-register.js +11 -1
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +7 -7
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +7 -7
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js.map +1 -1
- package/config/rush-project.json +53 -0
- package/index.js +0 -1
- package/jest.config.js +4 -4
- package/package.json +17 -59
- package/setup-tests.js +2 -1
- package/src/api.js +3 -3
- package/src/api.spec.js +3 -4
- package/src/auth.js +6 -7
- package/src/auth.spec.js +3 -4
- package/src/collections/activity.js +5 -6
- package/src/collections/adjunct-sections.js +4 -4
- package/src/collections/adjunct-slides.js +4 -4
- package/src/collections/adjunct-sub-slides.js +2 -2
- package/src/collections/appointment-adjunct-tags.js +18 -0
- package/src/collections/appointment-deckversion-tags.js +21 -0
- package/src/collections/appointment-duplicates.js +2 -2
- package/src/collections/appointment-editors.js +2 -2
- package/src/collections/appointment-section-tags.js +18 -0
- package/src/collections/appointment-slide-tags.js +18 -0
- package/src/collections/appointment-tags.js +136 -0
- package/src/collections/appointments.js +18 -23
- package/src/collections/assets.js +2 -2
- package/src/collections/auto-adjuncts.js +5 -5
- package/src/collections/base.js +17 -18
- package/src/collections/base.spec.js +7 -8
- package/src/collections/cms-vals.js +3 -3
- package/src/collections/contacts.js +2 -2
- package/src/collections/created-assets.js +2 -2
- package/src/collections/customers.js +2 -2
- package/src/collections/deck-notes.js +2 -2
- package/src/collections/deck-versions.js +18 -15
- package/src/collections/decks.js +2 -2
- package/src/collections/deleted-assets.js +2 -2
- package/src/collections/dispatches.js +8 -13
- package/src/collections/event-objects.js +2 -2
- package/src/collections/events.js +2 -2
- package/src/collections/groups.js +2 -2
- package/src/collections/images.js +2 -2
- package/src/collections/locations.js +2 -2
- package/src/collections/opportunities.js +2 -2
- package/src/collections/pack-diffs.js +2 -2
- package/src/collections/packs.js +2 -2
- package/src/collections/presets.js +2 -2
- package/src/collections/section-selections.js +4 -4
- package/src/collections/sections.js +2 -2
- package/src/collections/slide-selections.js +4 -4
- package/src/collections/slides.js +2 -2
- package/src/collections/snapshots.js +2 -2
- package/src/collections/sub-slides.js +2 -2
- package/src/collections/tags.js +18 -0
- package/src/collections/teams.js +2 -2
- package/src/collections/templates.js +2 -2
- package/src/collections/uploads.js +2 -2
- package/src/collections/users.js +2 -2
- package/src/collections.js +6 -0
- package/src/index.js +1 -4
- package/src/middleware.js +1 -1
- package/src/middlewares/json.js +2 -2
- package/src/middlewares/redirect.js +1 -2
- package/src/models/activity-item.js +6 -6
- package/src/models/adjunct-section.js +5 -5
- package/src/models/adjunct-slide.js +5 -5
- package/src/models/adjunct-sub-slide.js +5 -5
- package/src/models/adjunct.js +4 -4
- package/src/models/api.js +1 -1
- package/src/models/appointment-adjunct-tags.js +41 -0
- package/src/models/appointment-deckversion-tags.js +41 -0
- package/src/models/appointment-duplicate.js +7 -7
- package/src/models/appointment-editor.js +6 -6
- package/src/models/appointment-section-tags.js +41 -0
- package/src/models/appointment-slide-tags.js +41 -0
- package/src/models/appointment-stats.js +5 -5
- package/src/models/appointment-tags.js +39 -0
- package/src/models/appointment-viewing.js +3 -3
- package/src/models/appointment.js +35 -29
- package/src/models/asset.js +5 -5
- package/src/models/auto-adjunct-key-check.js +5 -5
- package/src/models/auto-adjunct.js +4 -4
- package/src/models/base.js +36 -37
- package/src/models/base.spec.js +61 -62
- package/src/models/choicelist.js +2 -2
- package/src/models/cms-val.js +3 -3
- package/src/models/contact.js +9 -9
- package/src/models/customer.js +13 -13
- package/src/models/deck-note.js +4 -4
- package/src/models/deck-tags.js +52 -0
- package/src/models/deck-version.js +9 -8
- package/src/models/deck.js +8 -6
- package/src/models/dispatch-preview.js +6 -7
- package/src/models/dispatch.js +6 -7
- package/src/models/envs.js +1 -1
- package/src/models/event-object.js +6 -6
- package/src/models/event.js +7 -7
- package/src/models/feed-data.js +5 -5
- package/src/models/file.js +4 -4
- package/src/models/group.js +3 -3
- package/src/models/handover.js +5 -5
- package/src/models/hosted-preso.js +5 -5
- package/src/models/image.js +4 -4
- package/src/models/location.js +5 -5
- package/src/models/manifest-json.js +68 -30
- package/src/models/onshare.js +5 -5
- package/src/models/opportunity.js +5 -5
- package/src/models/pack-diff.js +5 -5
- package/src/models/pack.js +4 -4
- package/src/models/preset.js +24 -5
- package/src/models/refresh-request.js +6 -6
- package/src/models/room.js +3 -3
- package/src/models/salesforce-lookup.js +3 -3
- package/src/models/section-selection.js +6 -6
- package/src/models/section.js +7 -7
- package/src/models/slide-selection.js +6 -6
- package/src/models/slide.js +7 -7
- package/src/models/snapshot.js +5 -5
- package/src/models/sub-slide.js +5 -5
- package/src/models/support-ticket.js +4 -4
- package/src/models/tag.js +42 -0
- package/src/models/team.js +4 -4
- package/src/models/template.js +4 -4
- package/src/models/tenancy.js +5 -5
- package/src/models/timing-log.js +18 -18
- package/src/models/timing-log.spec.js +28 -29
- package/src/models/transcribe-socket.js +3 -3
- package/src/models/upload.js +3 -3
- package/src/models/user.js +24 -20
- package/src/models/user.spec.js +2 -2
- package/src/models.js +7 -0
- package/src/presentation/appointment-presentation.js +14 -10
- package/src/presentation/base-presentation-model.js +67 -5
- package/src/presentation/base-presentation-model.spec.js +114 -22
- package/src/presentation/presentation-deck.js +54 -52
- package/src/presentation/presentation-deck.spec.js +26 -27
- package/src/presentation/presentation-decks.js +2 -2
- package/src/presentation/presentation-section.js +62 -48
- package/src/presentation/presentation-section.spec.js +363 -0
- package/src/presentation/presentation-sections.js +2 -2
- package/src/presentation/presentation-slide.js +51 -36
- package/src/presentation/presentation-slide.spec.js +250 -0
- package/src/presentation/presentation-slides.js +2 -2
- package/src/presentation/presentation-subslide.js +24 -17
- package/src/presentation/presentation-subslide.spec.js +40 -12
- package/src/presentation/presentation-subslides.js +2 -2
- package/src/presentation/presentation.js +27 -15
- package/src/state-register.js +7 -0
- package/src/sync.js +21 -23
- package/src/utils.js +8 -7
- package/src/utils.spec.js +15 -15
- package/.editorconfig +0 -9
- package/.eslintrc +0 -25
- package/.prettierrc.js +0 -3
- package/jsdoc.json +0 -12
- package/yarn.lock +0 -8099
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { register } from "../state-register.js";
|
|
2
1
|
import { BaseModel } from "./base.js";
|
|
2
|
+
import { register } from "../state-register.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @constructor
|
|
@@ -11,8 +11,8 @@ export const TranscribeSocketModel = BaseModel.extend(
|
|
|
11
11
|
modelName: "transcribe-socket",
|
|
12
12
|
|
|
13
13
|
props: {
|
|
14
|
-
presigned_url: "string"
|
|
15
|
-
}
|
|
14
|
+
presigned_url: "string",
|
|
15
|
+
},
|
|
16
16
|
}
|
|
17
17
|
);
|
|
18
18
|
|
package/src/models/upload.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { register } from "../state-register.js";
|
|
2
1
|
import { BaseModel } from "./base.js";
|
|
2
|
+
import { register } from "../state-register.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @constructor
|
|
@@ -15,8 +15,8 @@ export const UploadModel = BaseModel.extend({
|
|
|
15
15
|
*/
|
|
16
16
|
props: {
|
|
17
17
|
name: "string",
|
|
18
|
-
image_original: "string"
|
|
19
|
-
}
|
|
18
|
+
image_original: "string",
|
|
19
|
+
},
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
register("UploadModel", UploadModel);
|
package/src/models/user.js
CHANGED
|
@@ -3,8 +3,8 @@ import "../collections/groups.js";
|
|
|
3
3
|
import "../collections/teams.js";
|
|
4
4
|
|
|
5
5
|
import { Api } from "../api.js";
|
|
6
|
-
import { register } from "../state-register.js";
|
|
7
6
|
import { BaseModel } from "./base.js";
|
|
7
|
+
import { register } from "../state-register.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
|
|
@@ -43,7 +43,7 @@ export const UserModel = BaseModel.extend(
|
|
|
43
43
|
props: {
|
|
44
44
|
actions: {
|
|
45
45
|
type: "array",
|
|
46
|
-
default: () => []
|
|
46
|
+
default: () => [],
|
|
47
47
|
},
|
|
48
48
|
preferences: {
|
|
49
49
|
type: "object",
|
|
@@ -52,9 +52,9 @@ export const UserModel = BaseModel.extend(
|
|
|
52
52
|
notification_sender: "default",
|
|
53
53
|
email_signature: "",
|
|
54
54
|
app_prefs: {},
|
|
55
|
-
timezone: ""
|
|
55
|
+
timezone: "",
|
|
56
56
|
};
|
|
57
|
-
}
|
|
57
|
+
},
|
|
58
58
|
},
|
|
59
59
|
calendar_feed: "string",
|
|
60
60
|
date_joined: "date",
|
|
@@ -71,14 +71,14 @@ export const UserModel = BaseModel.extend(
|
|
|
71
71
|
profile: "object",
|
|
72
72
|
rtms_topic: "string",
|
|
73
73
|
rtms_token: "string",
|
|
74
|
-
last_reset_request: "string"
|
|
74
|
+
last_reset_request: "string",
|
|
75
75
|
},
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
78
|
* @property {models.TenancyModel} tenancy
|
|
79
79
|
*/
|
|
80
80
|
children: {
|
|
81
|
-
tenancy: "TenancyModel"
|
|
81
|
+
tenancy: "TenancyModel",
|
|
82
82
|
},
|
|
83
83
|
|
|
84
84
|
/**
|
|
@@ -87,7 +87,7 @@ export const UserModel = BaseModel.extend(
|
|
|
87
87
|
*/
|
|
88
88
|
collections: {
|
|
89
89
|
groups: "GroupCollection",
|
|
90
|
-
team_set: "TeamCollection"
|
|
90
|
+
team_set: "TeamCollection",
|
|
91
91
|
},
|
|
92
92
|
|
|
93
93
|
/**
|
|
@@ -98,17 +98,19 @@ export const UserModel = BaseModel.extend(
|
|
|
98
98
|
derived: {
|
|
99
99
|
fullName: {
|
|
100
100
|
deps: ["first_name", "last_name"],
|
|
101
|
-
fn: function() {
|
|
101
|
+
fn: function () {
|
|
102
102
|
return `${this.first_name} ${this.last_name}`;
|
|
103
|
-
}
|
|
103
|
+
},
|
|
104
104
|
},
|
|
105
105
|
|
|
106
106
|
permissions: {
|
|
107
107
|
deps: ["actions"],
|
|
108
|
-
fn: function() {
|
|
108
|
+
fn: function () {
|
|
109
109
|
const presets = {
|
|
110
110
|
canCreateCompanyPresets:
|
|
111
|
-
this.actions.indexOf("Manage Deck Presets") > -1
|
|
111
|
+
this.actions.indexOf("Manage Deck Presets") > -1,
|
|
112
|
+
canCreateTeamPresets:
|
|
113
|
+
this.actions.indexOf("Manage Team Presets") > -1,
|
|
112
114
|
};
|
|
113
115
|
|
|
114
116
|
const presomanager = {
|
|
@@ -122,7 +124,7 @@ export const UserModel = BaseModel.extend(
|
|
|
122
124
|
isContentCreator: this.actions.indexOf("Create Content") > -1,
|
|
123
125
|
|
|
124
126
|
canAddGlobalNotes: this.actions.indexOf("Manage Notes") > -1,
|
|
125
|
-
canAddTeamNotes: this.actions.indexOf("Manage Team Notes") > -1
|
|
127
|
+
canAddTeamNotes: this.actions.indexOf("Manage Team Notes") > -1,
|
|
126
128
|
};
|
|
127
129
|
|
|
128
130
|
presomanager.canModifyNotes =
|
|
@@ -152,22 +154,24 @@ export const UserModel = BaseModel.extend(
|
|
|
152
154
|
canShare: this.actions.indexOf("Share preso") > -1,
|
|
153
155
|
canPresent: this.actions.indexOf("Present preso") > -1,
|
|
154
156
|
canCreateWithoutTeam:
|
|
155
|
-
this.actions.indexOf("Allow Teamless Appointments") > -1
|
|
157
|
+
this.actions.indexOf("Allow Teamless Appointments") > -1,
|
|
158
|
+
canUseClosedCaptions:
|
|
159
|
+
this.actions.indexOf("Use Closed Captions") > -1,
|
|
156
160
|
};
|
|
157
161
|
|
|
158
162
|
const customers = {
|
|
159
163
|
canCreateWithoutTeam:
|
|
160
|
-
this.actions.indexOf("Allow Teamless Customers") > -1
|
|
164
|
+
this.actions.indexOf("Allow Teamless Customers") > -1,
|
|
161
165
|
};
|
|
162
166
|
|
|
163
167
|
return {
|
|
164
168
|
presets,
|
|
165
169
|
appointments,
|
|
166
170
|
presomanager,
|
|
167
|
-
customers
|
|
171
|
+
customers,
|
|
168
172
|
};
|
|
169
|
-
}
|
|
170
|
-
}
|
|
173
|
+
},
|
|
174
|
+
},
|
|
171
175
|
},
|
|
172
176
|
|
|
173
177
|
fetchHQLogin() {
|
|
@@ -210,11 +214,11 @@ export const UserModel = BaseModel.extend(
|
|
|
210
214
|
toServer() {
|
|
211
215
|
const data = {
|
|
212
216
|
id: this.id,
|
|
213
|
-
preferences: this.preferences
|
|
217
|
+
preferences: this.preferences,
|
|
214
218
|
};
|
|
215
219
|
|
|
216
220
|
if (this.groups) {
|
|
217
|
-
data.groups = this.groups.map(group => group.url());
|
|
221
|
+
data.groups = this.groups.map((group) => group.url());
|
|
218
222
|
}
|
|
219
223
|
|
|
220
224
|
if (!data.preferences.timezone) {
|
|
@@ -222,7 +226,7 @@ export const UserModel = BaseModel.extend(
|
|
|
222
226
|
}
|
|
223
227
|
|
|
224
228
|
return data;
|
|
225
|
-
}
|
|
229
|
+
},
|
|
226
230
|
}
|
|
227
231
|
);
|
|
228
232
|
|
package/src/models/user.spec.js
CHANGED
|
@@ -3,7 +3,7 @@ import { G } from "sp-test/api";
|
|
|
3
3
|
test("User can modify temporary slides", async () => {
|
|
4
4
|
const UserModel = G("UserModel");
|
|
5
5
|
const user = new UserModel({
|
|
6
|
-
actions: ["Manage Temporary Slides"]
|
|
6
|
+
actions: ["Manage Temporary Slides"],
|
|
7
7
|
});
|
|
8
8
|
expect(user.permissions.presomanager.canModifyTemporarySlides).toBe(true);
|
|
9
9
|
});
|
|
@@ -11,7 +11,7 @@ test("User can modify temporary slides", async () => {
|
|
|
11
11
|
test("User can modify editable content", async () => {
|
|
12
12
|
const UserModel = G("UserModel");
|
|
13
13
|
const user = new UserModel({
|
|
14
|
-
actions: ["Create Content"]
|
|
14
|
+
actions: ["Create Content"],
|
|
15
15
|
});
|
|
16
16
|
expect(user.permissions.presomanager.canModifyContent).toBe(true);
|
|
17
17
|
});
|
package/src/models.js
CHANGED
|
@@ -8,6 +8,7 @@ export * from "./models/adjunct-slide";
|
|
|
8
8
|
export * from "./models/adjunct-sub-slide";
|
|
9
9
|
export * from "./models/api";
|
|
10
10
|
export * from "./models/appointment";
|
|
11
|
+
export * from "./models/appointment-tags";
|
|
11
12
|
export * from "./models/asset";
|
|
12
13
|
export * from "./models/auto-adjunct";
|
|
13
14
|
export * from "./models/base";
|
|
@@ -16,6 +17,7 @@ export * from "./models/cms-val";
|
|
|
16
17
|
export * from "./models/contact";
|
|
17
18
|
export * from "./models/customer";
|
|
18
19
|
export * from "./models/deck";
|
|
20
|
+
export * from "./models/deck-tags";
|
|
19
21
|
export * from "./models/deck-version";
|
|
20
22
|
export * from "./models/dispatch";
|
|
21
23
|
export * from "./models/dispatch-preview";
|
|
@@ -45,6 +47,7 @@ export * from "./models/slide-selection";
|
|
|
45
47
|
export * from "./models/snapshot";
|
|
46
48
|
export * from "./models/sub-slide";
|
|
47
49
|
export * from "./models/support-ticket.js";
|
|
50
|
+
export * from "./models/tag.js";
|
|
48
51
|
export * from "./models/tenancy.js";
|
|
49
52
|
export * from "./models/timing-log.js";
|
|
50
53
|
export * from "./models/upload.js";
|
|
@@ -54,6 +57,10 @@ export * from "./models/appointment-editor.js";
|
|
|
54
57
|
export * from "./models/appointment-duplicate.js";
|
|
55
58
|
export * from "./models/appointment-stats.js";
|
|
56
59
|
export * from "./models/appointment-viewing.js";
|
|
60
|
+
export * from "./models/appointment-deckversion-tags.js";
|
|
61
|
+
export * from "./models/appointment-section-tags.js";
|
|
62
|
+
export * from "./models/appointment-slide-tags.js";
|
|
63
|
+
export * from "./models/appointment-adjunct-tags.js";
|
|
57
64
|
export * from "./models/team.js";
|
|
58
65
|
export * from "./models/template.js";
|
|
59
66
|
export * from "./models/auto-adjunct-key-check.js";
|
|
@@ -7,8 +7,8 @@ import "../collections/contacts.js";
|
|
|
7
7
|
|
|
8
8
|
import { AppointmentModel } from "../models.js";
|
|
9
9
|
import { BaseModel } from "../models/base.js";
|
|
10
|
-
import { register } from "../state-register.js";
|
|
11
10
|
import { PresentationDeck } from "./presentation-deck.js";
|
|
11
|
+
import { register } from "../state-register.js";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @constructor
|
|
@@ -29,7 +29,7 @@ export const AppointmentPresentation = BaseModel.extend(
|
|
|
29
29
|
end: "date",
|
|
30
30
|
tele: "object",
|
|
31
31
|
supportMode: "boolean",
|
|
32
|
-
locks: "array"
|
|
32
|
+
locks: "array",
|
|
33
33
|
},
|
|
34
34
|
|
|
35
35
|
/**
|
|
@@ -42,7 +42,7 @@ export const AppointmentPresentation = BaseModel.extend(
|
|
|
42
42
|
presentation: "Presentation",
|
|
43
43
|
latest_snapshot: "SnapshotModel",
|
|
44
44
|
latest_feed_data: "FeedDataModel",
|
|
45
|
-
user: "UserModel"
|
|
45
|
+
user: "UserModel",
|
|
46
46
|
},
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -51,14 +51,17 @@ export const AppointmentPresentation = BaseModel.extend(
|
|
|
51
51
|
*/
|
|
52
52
|
collections: {
|
|
53
53
|
opportunities: "OpportunityCollection",
|
|
54
|
-
contacts: "ContactCollection"
|
|
55
|
-
}
|
|
54
|
+
contacts: "ContactCollection",
|
|
55
|
+
},
|
|
56
56
|
}
|
|
57
57
|
);
|
|
58
58
|
|
|
59
|
-
const createFromAppointment = function(appointment, options) {
|
|
59
|
+
const createFromAppointment = function (appointment, options) {
|
|
60
60
|
const appointmentPresentation = new AppointmentPresentation();
|
|
61
61
|
|
|
62
|
+
// Note that we're not passing through tags if appointment.tags is empty.
|
|
63
|
+
// This is because tags currently aren't available in the telepresenter
|
|
64
|
+
// bundle and we want to fall back on the model tags for now.
|
|
62
65
|
appointmentPresentation.presentation.decks.add(
|
|
63
66
|
appointment.deckversion_set.map((model, index) => {
|
|
64
67
|
return PresentationDeck.createFromDeckVersion(model, {
|
|
@@ -68,7 +71,8 @@ const createFromAppointment = function(appointment, options) {
|
|
|
68
71
|
sectionSelections: appointment.appointmentssection_set,
|
|
69
72
|
slideSelections: appointment.appointmentsslide_set,
|
|
70
73
|
index,
|
|
71
|
-
|
|
74
|
+
appointmentTags: appointment.tags.length ? appointment.tags : null,
|
|
75
|
+
...options,
|
|
72
76
|
});
|
|
73
77
|
})
|
|
74
78
|
);
|
|
@@ -94,7 +98,7 @@ const createFromAppointment = function(appointment, options) {
|
|
|
94
98
|
* @memberof presentation.AppointmentPresentation
|
|
95
99
|
* @param {string} url
|
|
96
100
|
*/
|
|
97
|
-
AppointmentPresentation.createFromURL = function(url, options = {}) {
|
|
101
|
+
AppointmentPresentation.createFromURL = function (url, options = {}) {
|
|
98
102
|
const appointment = new AppointmentModel({ url });
|
|
99
103
|
|
|
100
104
|
return appointment.fetchAll(true).then(() => {
|
|
@@ -107,7 +111,7 @@ AppointmentPresentation.createFromURL = function(url, options = {}) {
|
|
|
107
111
|
* @memberof presentation.AppointmentPresentation
|
|
108
112
|
* @param {number} id
|
|
109
113
|
*/
|
|
110
|
-
AppointmentPresentation.createFromID = function(id, options = {}) {
|
|
114
|
+
AppointmentPresentation.createFromID = function (id, options = {}) {
|
|
111
115
|
const appointment = new AppointmentModel({ id });
|
|
112
116
|
|
|
113
117
|
return appointment.fetchAll().then(() => {
|
|
@@ -120,7 +124,7 @@ AppointmentPresentation.createFromID = function(id, options = {}) {
|
|
|
120
124
|
* @memberof presentation.AppointmentPresentation
|
|
121
125
|
* @param {model} appointment
|
|
122
126
|
*/
|
|
123
|
-
AppointmentPresentation.createFromAppointment = function(
|
|
127
|
+
AppointmentPresentation.createFromAppointment = function (
|
|
124
128
|
appointment,
|
|
125
129
|
options = {}
|
|
126
130
|
) {
|
|
@@ -9,7 +9,7 @@ export const BasePresentationModel = BaseModel.extend(
|
|
|
9
9
|
/** @lends presentation.BasePresentationModel# */ {
|
|
10
10
|
url() {
|
|
11
11
|
return null;
|
|
12
|
-
}
|
|
12
|
+
},
|
|
13
13
|
}
|
|
14
14
|
);
|
|
15
15
|
|
|
@@ -21,20 +21,23 @@ export const BasePresentationModel = BaseModel.extend(
|
|
|
21
21
|
* model's state to determine sequence & vis when selections are used.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
BasePresentationModel.getVisibilityAndSequence = function(
|
|
24
|
+
BasePresentationModel.getVisibilityAndSequence = function (
|
|
25
|
+
model,
|
|
26
|
+
options = {}
|
|
27
|
+
) {
|
|
25
28
|
const { choicelist = null, selections = null } = options;
|
|
26
29
|
const url = model.url();
|
|
27
30
|
|
|
28
31
|
const config = {
|
|
29
32
|
visible: model.visible || model.enabled || false,
|
|
30
33
|
sequence: model.sequence,
|
|
31
|
-
selectionID: null
|
|
34
|
+
selectionID: null,
|
|
32
35
|
};
|
|
33
36
|
|
|
34
37
|
if (choicelist) {
|
|
35
38
|
// All items should have a choicelist entry - if it's not in
|
|
36
39
|
// the choicelist, it's not in the preso
|
|
37
|
-
const choice = choicelist.find(item => item.url === url);
|
|
40
|
+
const choice = choicelist.find((item) => item.url === url);
|
|
38
41
|
|
|
39
42
|
if (choice) {
|
|
40
43
|
config.sequence = choicelist.indexOf(choice);
|
|
@@ -46,7 +49,7 @@ BasePresentationModel.getVisibilityAndSequence = function(model, options = {}) {
|
|
|
46
49
|
// Non-adjunct subslides and adjunct sections/slides/subslides
|
|
47
50
|
// have no selections - they fall through here using their
|
|
48
51
|
// model's values
|
|
49
|
-
const selection = selections.find(selection => selection.url === url);
|
|
52
|
+
const selection = selections.find((selection) => selection.url === url);
|
|
50
53
|
|
|
51
54
|
if (selection) {
|
|
52
55
|
config.visible = selection.visible;
|
|
@@ -61,4 +64,63 @@ BasePresentationModel.getVisibilityAndSequence = function(model, options = {}) {
|
|
|
61
64
|
return config;
|
|
62
65
|
};
|
|
63
66
|
|
|
67
|
+
const getAppointmentTags = function (model, tags) {
|
|
68
|
+
const url = model.adjunct?.url() || model.url();
|
|
69
|
+
const tagItem = tags.find((tag) => tag.content_url === url);
|
|
70
|
+
|
|
71
|
+
if (tagItem) {
|
|
72
|
+
return tagItem.tags || [];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Subslide tags currently aren't included in the
|
|
76
|
+
// appointmentTags data.
|
|
77
|
+
return model.tags || [];
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const getDeckTags = function (model, tags) {
|
|
81
|
+
// All non-adjunct sections, slides and subslides have namespaced_key
|
|
82
|
+
if (model.namespaced_key) {
|
|
83
|
+
return tags[model.namespaced_key] || model.tags || [];
|
|
84
|
+
} else if (model.adjunct || model.isAutoAdjunct) {
|
|
85
|
+
// Autoadjunct keys are unique and move around so we search for them
|
|
86
|
+
// and ignore the rest of the namespaced key
|
|
87
|
+
const keys = Object.keys(tags).filter((key) => {
|
|
88
|
+
if (key.includes("/")) {
|
|
89
|
+
const splitKey = key.split("/");
|
|
90
|
+
|
|
91
|
+
return splitKey[splitKey.length - 1] === model.key;
|
|
92
|
+
}
|
|
93
|
+
return key === model.key;
|
|
94
|
+
});
|
|
95
|
+
return keys.length ? tags[keys[0]] : [];
|
|
96
|
+
} else if (model.deck) {
|
|
97
|
+
// The deck's namespaced key is always "" - this is because the
|
|
98
|
+
// namespaced key format is section-key/slide-key, but the
|
|
99
|
+
// deck sits above sections.
|
|
100
|
+
return tags[""] || model.tags || [];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return model.tags || [];
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
// Retrieve the tags for the model.
|
|
107
|
+
// If appointmentTags is passed through in the options, we call the
|
|
108
|
+
// getAppointmentTags function above to retrieve the appointment tags
|
|
109
|
+
// for the model.
|
|
110
|
+
// if there are no appointmentTags but deckTags are passed
|
|
111
|
+
// through then we call the getDeckTags function.
|
|
112
|
+
// In the future we will always use one of these two methods and
|
|
113
|
+
// references to model.tags should be removed.
|
|
114
|
+
BasePresentationModel.getTags = function (model, options = {}) {
|
|
115
|
+
if (options.appointmentTags) {
|
|
116
|
+
return getAppointmentTags(model, options.appointmentTags);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (options.deckTags) {
|
|
120
|
+
return getDeckTags(model, options.deckTags);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return model.tags || [];
|
|
124
|
+
};
|
|
125
|
+
|
|
64
126
|
BasePresentationModel.canBeEmpty = true;
|
|
@@ -5,13 +5,13 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
5
5
|
const config = BasePresentationModel.getVisibilityAndSequence({
|
|
6
6
|
sequence: 99,
|
|
7
7
|
visible: true,
|
|
8
|
-
url: () => ""
|
|
8
|
+
url: () => "",
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
const expected = {
|
|
12
12
|
sequence: 99,
|
|
13
13
|
visible: true,
|
|
14
|
-
selectionID: null
|
|
14
|
+
selectionID: null,
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
expect(config).toEqual(expected);
|
|
@@ -21,13 +21,13 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
21
21
|
const config = BasePresentationModel.getVisibilityAndSequence({
|
|
22
22
|
sequence: 99,
|
|
23
23
|
visible: true,
|
|
24
|
-
url: () => ""
|
|
24
|
+
url: () => "",
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
const expected = {
|
|
28
28
|
sequence: 99,
|
|
29
29
|
visible: true,
|
|
30
|
-
selectionID: null
|
|
30
|
+
selectionID: null,
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
expect(config).toEqual(expected);
|
|
@@ -37,25 +37,25 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
37
37
|
const choicelist = [
|
|
38
38
|
{
|
|
39
39
|
url: "bleh/meh",
|
|
40
|
-
visible: true
|
|
41
|
-
}
|
|
40
|
+
visible: true,
|
|
41
|
+
},
|
|
42
42
|
];
|
|
43
43
|
|
|
44
44
|
const config = BasePresentationModel.getVisibilityAndSequence(
|
|
45
45
|
{
|
|
46
46
|
sequence: 99,
|
|
47
47
|
visible: false,
|
|
48
|
-
url: () => "bleh/meh"
|
|
48
|
+
url: () => "bleh/meh",
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
choicelist
|
|
51
|
+
choicelist,
|
|
52
52
|
}
|
|
53
53
|
);
|
|
54
54
|
|
|
55
55
|
const expected = {
|
|
56
56
|
sequence: 0,
|
|
57
57
|
visible: true,
|
|
58
|
-
selectionID: null
|
|
58
|
+
selectionID: null,
|
|
59
59
|
};
|
|
60
60
|
|
|
61
61
|
expect(config).toEqual(expected);
|
|
@@ -67,25 +67,25 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
67
67
|
url: "bleh/meh",
|
|
68
68
|
visible: true,
|
|
69
69
|
sequence: 27,
|
|
70
|
-
id: 58
|
|
71
|
-
}
|
|
70
|
+
id: 58,
|
|
71
|
+
},
|
|
72
72
|
];
|
|
73
73
|
|
|
74
74
|
const config = BasePresentationModel.getVisibilityAndSequence(
|
|
75
75
|
{
|
|
76
76
|
sequence: 99,
|
|
77
77
|
visible: false,
|
|
78
|
-
url: () => "bleh/meh"
|
|
78
|
+
url: () => "bleh/meh",
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
selections
|
|
81
|
+
selections,
|
|
82
82
|
}
|
|
83
83
|
);
|
|
84
84
|
|
|
85
85
|
const expected = {
|
|
86
86
|
sequence: 27,
|
|
87
87
|
visible: true,
|
|
88
|
-
selectionID: 58
|
|
88
|
+
selectionID: 58,
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
expect(config).toEqual(expected);
|
|
@@ -95,12 +95,12 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
95
95
|
const choicelist = [
|
|
96
96
|
{
|
|
97
97
|
url: "gah/meh",
|
|
98
|
-
visible: false
|
|
98
|
+
visible: false,
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
url: "bleh/meh",
|
|
102
|
-
visible: true
|
|
103
|
-
}
|
|
102
|
+
visible: true,
|
|
103
|
+
},
|
|
104
104
|
];
|
|
105
105
|
|
|
106
106
|
const selections = [
|
|
@@ -108,26 +108,26 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
108
108
|
url: "bleh/meh",
|
|
109
109
|
visible: true,
|
|
110
110
|
sequence: 27,
|
|
111
|
-
id: 58
|
|
112
|
-
}
|
|
111
|
+
id: 58,
|
|
112
|
+
},
|
|
113
113
|
];
|
|
114
114
|
|
|
115
115
|
const config = BasePresentationModel.getVisibilityAndSequence(
|
|
116
116
|
{
|
|
117
117
|
sequence: 99,
|
|
118
118
|
visible: false,
|
|
119
|
-
url: () => "bleh/meh"
|
|
119
|
+
url: () => "bleh/meh",
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
choicelist,
|
|
123
|
-
selections
|
|
123
|
+
selections,
|
|
124
124
|
}
|
|
125
125
|
);
|
|
126
126
|
|
|
127
127
|
const expected = {
|
|
128
128
|
sequence: 1,
|
|
129
129
|
visible: true,
|
|
130
|
-
selectionID: null
|
|
130
|
+
selectionID: null,
|
|
131
131
|
};
|
|
132
132
|
|
|
133
133
|
expect(config).toEqual(expected);
|
|
@@ -135,3 +135,95 @@ describe("#getVisibilityAndSequence", () => {
|
|
|
135
135
|
|
|
136
136
|
// adjuncts!!
|
|
137
137
|
});
|
|
138
|
+
|
|
139
|
+
describe("#getTags", () => {
|
|
140
|
+
it("should return empty array when no options or model tags", () => {
|
|
141
|
+
const tags = BasePresentationModel.getTags({});
|
|
142
|
+
|
|
143
|
+
expect(typeof tags).toEqual("object");
|
|
144
|
+
expect(tags.length).toEqual(0);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it("should return tags when no tags passed in options", () => {
|
|
148
|
+
const model = {
|
|
149
|
+
tags: ["model-tag-1", "model-tag-2"],
|
|
150
|
+
};
|
|
151
|
+
const tags = BasePresentationModel.getTags(model);
|
|
152
|
+
|
|
153
|
+
expect(tags).toEqual(model.tags);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
it("should return tags for slide when tags passed in options", () => {
|
|
157
|
+
const model = {
|
|
158
|
+
namespaced_key: "slide-key",
|
|
159
|
+
tags: ["model-tag-1", "model-tag-2"],
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
const options = {
|
|
163
|
+
deckTags: {
|
|
164
|
+
"": ["deck-tags"],
|
|
165
|
+
"slide-key": ["slide-tags"],
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const tags = BasePresentationModel.getTags(model, options);
|
|
170
|
+
|
|
171
|
+
expect(tags).toEqual(["slide-tags"]);
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
it("should return tags for welcome slide when tags passed in options", () => {
|
|
175
|
+
const model = {
|
|
176
|
+
deck: {},
|
|
177
|
+
tags: ["model-tag-1", "model-tag-2"],
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
const options = {
|
|
181
|
+
deckTags: {
|
|
182
|
+
"": ["deck-tags"],
|
|
183
|
+
"slide-key": ["slide-tags"],
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
const tags = BasePresentationModel.getTags(model, options);
|
|
188
|
+
|
|
189
|
+
expect(tags).toEqual(["deck-tags"]);
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
it("should return tags for an adjunct section when tags passed in options", () => {
|
|
193
|
+
const model = {
|
|
194
|
+
adjunct: true,
|
|
195
|
+
key: "adjunctsection-key",
|
|
196
|
+
tags: ["old-tag-1", "old-tag-2"],
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const options = {
|
|
200
|
+
deckTags: {
|
|
201
|
+
"": ["deck-tags"],
|
|
202
|
+
"adjunctsection-key": ["adjunctsection-tags"],
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
const tags = BasePresentationModel.getTags(model, options);
|
|
207
|
+
|
|
208
|
+
expect(tags).toEqual(["adjunctsection-tags"]);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
it("should return tags for an adjunct slide when tags passed in options", () => {
|
|
212
|
+
const model = {
|
|
213
|
+
adjunct: true,
|
|
214
|
+
key: "adjunctslide-key",
|
|
215
|
+
tags: ["old-tag-1", "old-tag-2"],
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const options = {
|
|
219
|
+
deckTags: {
|
|
220
|
+
"": ["deck-tags"],
|
|
221
|
+
"section-key/adjunctslide-key": ["adjunctslide-tags"],
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
const tags = BasePresentationModel.getTags(model, options);
|
|
226
|
+
|
|
227
|
+
expect(tags).toEqual(["adjunctslide-tags"]);
|
|
228
|
+
});
|
|
229
|
+
});
|