@livepreso/api 6.41.0 → 6.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +5 -0
- package/.rush/temp/build-cache-tar.log +7 -0
- package/.rush/temp/package-deps_test.json +170 -0
- package/.rush/temp/shrinkwrap-deps.json +957 -0
- package/CHANGELOG.json +53 -0
- package/CHANGELOG.md +32 -0
- package/api.build.log +4 -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 +103 -25
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +231 -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 +83 -58
- 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 +4 -3
- 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 +11 -0
- package/index.js +0 -1
- package/jest.config.js +4 -4
- package/package.json +19 -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 +88 -18
- package/src/collections/base.spec.js +100 -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 +77 -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 +19 -17
- 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
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
|
/**
|
|
@@ -100,7 +100,7 @@ export const UserModel = BaseModel.extend(
|
|
|
100
100
|
deps: ["first_name", "last_name"],
|
|
101
101
|
fn: function () {
|
|
102
102
|
return `${this.first_name} ${this.last_name}`;
|
|
103
|
-
}
|
|
103
|
+
},
|
|
104
104
|
},
|
|
105
105
|
|
|
106
106
|
permissions: {
|
|
@@ -108,7 +108,9 @@ export const UserModel = BaseModel.extend(
|
|
|
108
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 =
|
|
@@ -154,22 +156,22 @@ export const UserModel = BaseModel.extend(
|
|
|
154
156
|
canCreateWithoutTeam:
|
|
155
157
|
this.actions.indexOf("Allow Teamless Appointments") > -1,
|
|
156
158
|
canUseClosedCaptions:
|
|
157
|
-
this.actions.indexOf("Use Closed Captions") > -1
|
|
159
|
+
this.actions.indexOf("Use Closed Captions") > -1,
|
|
158
160
|
};
|
|
159
161
|
|
|
160
162
|
const customers = {
|
|
161
163
|
canCreateWithoutTeam:
|
|
162
|
-
this.actions.indexOf("Allow Teamless Customers") > -1
|
|
164
|
+
this.actions.indexOf("Allow Teamless Customers") > -1,
|
|
163
165
|
};
|
|
164
166
|
|
|
165
167
|
return {
|
|
166
168
|
presets,
|
|
167
169
|
appointments,
|
|
168
170
|
presomanager,
|
|
169
|
-
customers
|
|
171
|
+
customers,
|
|
170
172
|
};
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
+
},
|
|
174
|
+
},
|
|
173
175
|
},
|
|
174
176
|
|
|
175
177
|
fetchHQLogin() {
|
|
@@ -212,7 +214,7 @@ export const UserModel = BaseModel.extend(
|
|
|
212
214
|
toServer() {
|
|
213
215
|
const data = {
|
|
214
216
|
id: this.id,
|
|
215
|
-
preferences: this.preferences
|
|
217
|
+
preferences: this.preferences,
|
|
216
218
|
};
|
|
217
219
|
|
|
218
220
|
if (this.groups) {
|
|
@@ -224,7 +226,7 @@ export const UserModel = BaseModel.extend(
|
|
|
224
226
|
}
|
|
225
227
|
|
|
226
228
|
return data;
|
|
227
|
-
}
|
|
229
|
+
},
|
|
228
230
|
}
|
|
229
231
|
);
|
|
230
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
|
+
});
|