@saooti/octopus-sdk 30.0.4 → 30.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +5 -0
  2. package/index.ts +13 -2
  3. package/package.json +1 -1
  4. package/src/App.vue +4 -4
  5. package/src/api/comments.ts +1 -1
  6. package/src/assets/bootstrap-diff.scss +2 -1
  7. package/src/assets/form.scss +7 -15
  8. package/src/assets/general.scss +14 -20
  9. package/src/assets/multiselect.scss +2 -2
  10. package/src/assets/share.scss +1 -12
  11. package/src/components/display/categories/CategoryChooser.vue +1 -1
  12. package/src/components/display/categories/CategoryFilter.vue +4 -4
  13. package/src/components/display/categories/CategoryList.vue +1 -1
  14. package/src/components/display/comments/CommentInput.vue +3 -3
  15. package/src/components/display/comments/CommentItem.vue +4 -3
  16. package/src/components/display/comments/CommentList.vue +4 -4
  17. package/src/components/display/comments/CommentParentInfo.vue +1 -1
  18. package/src/components/display/comments/CommentPlayer.vue +2 -2
  19. package/src/components/display/comments/CommentSection.vue +3 -3
  20. package/src/components/display/edit/EditBox.vue +1 -1
  21. package/src/components/display/edit/EditCommentBox.vue +1 -1
  22. package/src/components/display/emission/EmissionChooser.vue +2 -2
  23. package/src/components/display/emission/EmissionInlineList.vue +3 -3
  24. package/src/components/display/emission/EmissionItem.vue +3 -3
  25. package/src/components/display/emission/EmissionList.vue +4 -4
  26. package/src/components/display/emission/EmissionPlayerItem.vue +3 -3
  27. package/src/components/display/filter/AdvancedSearch.vue +40 -106
  28. package/src/components/display/filter/CategoryFilter.vue +10 -14
  29. package/src/components/display/filter/MonetizableFilter.vue +1 -1
  30. package/src/components/display/filter/ProductorSearch.vue +21 -40
  31. package/src/components/display/filter/RubriqueChoice.vue +4 -4
  32. package/src/components/display/filter/RubriqueFilter.vue +10 -14
  33. package/src/components/display/live/LiveHorizontalList.vue +1 -1
  34. package/src/components/display/live/LiveItem.vue +2 -2
  35. package/src/components/display/live/LiveList.vue +1 -1
  36. package/src/components/display/organisation/OrganisationChooser.vue +1 -1
  37. package/src/components/display/organisation/OrganisationChooserLight.vue +9 -3
  38. package/src/components/display/participant/ParticipantItem.vue +1 -1
  39. package/src/components/display/participant/ParticipantList.vue +1 -1
  40. package/src/components/display/playlist/PlaylistItem.vue +2 -2
  41. package/src/components/display/playlist/PlaylistList.vue +1 -1
  42. package/src/components/display/playlist/PodcastList.vue +10 -21
  43. package/src/components/display/podcasts/AnimatorsItem.vue +1 -1
  44. package/src/components/display/podcasts/ParticipantDescription.vue +2 -1
  45. package/src/components/display/podcasts/PodcastFilterList.vue +11 -20
  46. package/src/components/display/podcasts/PodcastImage.vue +3 -3
  47. package/src/components/display/podcasts/PodcastInlineList.vue +3 -3
  48. package/src/components/display/podcasts/PodcastItem.vue +3 -3
  49. package/src/components/display/podcasts/PodcastList.vue +2 -2
  50. package/src/components/display/podcasts/PodcastModuleBox.vue +2 -2
  51. package/src/components/display/rubriques/RubriqueChooser.vue +1 -1
  52. package/src/components/display/rubriques/RubriqueList.vue +4 -4
  53. package/src/components/display/sharing/PlayerParameters.vue +31 -103
  54. package/src/components/display/sharing/ShareButtons.vue +3 -3
  55. package/src/components/display/sharing/ShareDistribution.vue +1 -1
  56. package/src/components/display/sharing/SharePlayer.vue +35 -51
  57. package/src/components/display/sharing/SharePlayerColors.vue +2 -2
  58. package/src/components/display/sharing/SharePlayerTypes.vue +5 -5
  59. package/src/components/display/sharing/SubscribeButtons.vue +2 -2
  60. package/src/components/form/ClassicCheckbox.vue +61 -0
  61. package/src/components/form/ClassicLoading.vue +28 -0
  62. package/src/components/form/ClassicRadio.vue +61 -0
  63. package/src/components/form/ClassicSearch.vue +82 -0
  64. package/src/components/misc/ErrorMessage.vue +1 -1
  65. package/src/components/misc/Footer.vue +28 -37
  66. package/src/components/misc/HomeDropdown.vue +44 -93
  67. package/src/components/misc/LeftMenu.vue +111 -144
  68. package/src/components/misc/Player.vue +16 -30
  69. package/src/components/misc/PlayerButtons.vue +16 -39
  70. package/src/components/misc/PlayerClockAndTimeline.vue +1 -1
  71. package/src/components/misc/PlayerProgressBar.vue +16 -51
  72. package/src/components/misc/Popover.vue +8 -2
  73. package/src/components/misc/TopBar.vue +142 -224
  74. package/src/components/misc/modal/ClipboardModal.vue +1 -1
  75. package/src/components/misc/modal/NewsletterModal.vue +15 -29
  76. package/src/components/misc/modal/QrCodeModal.vue +2 -2
  77. package/src/components/misc/modal/ShareModalPlayer.vue +1 -1
  78. package/src/components/mixins/init.ts +1 -1
  79. package/src/components/mixins/organisationFilter.ts +1 -1
  80. package/src/components/pages/Category.vue +4 -9
  81. package/src/components/pages/Emission.vue +13 -25
  82. package/src/components/pages/Emissions.vue +10 -19
  83. package/src/components/pages/Home.vue +5 -7
  84. package/src/components/pages/Lives.vue +3 -5
  85. package/src/components/pages/Participant.vue +19 -27
  86. package/src/components/pages/Participants.vue +7 -15
  87. package/src/components/pages/Playlist.vue +17 -30
  88. package/src/components/pages/Playlists.vue +1 -11
  89. package/src/components/pages/Podcast.vue +20 -34
  90. package/src/components/pages/Podcasts.vue +12 -26
  91. package/src/components/pages/Search.vue +26 -64
  92. package/src/store/class/{adserverConfig.ts → adserver/adserverConfig.ts} +0 -0
  93. package/src/store/class/adserver/adserverOtherEmission.ts +13 -0
  94. package/src/store/class/{adserverTiming.ts → adserver/adserverTiming.ts} +0 -0
  95. package/src/store/class/cartouchier/cartouche.ts +15 -0
  96. package/src/store/class/cartouchier/cartouchier.ts +9 -0
  97. package/src/store/class/conference/conference.ts +35 -0
  98. package/src/store/class/conference/conferenceMessage.ts +10 -0
  99. package/src/store/class/conference/conferenceParticipant.ts +18 -0
  100. package/src/store/class/conference/pad.ts +15 -0
  101. package/src/store/class/conference/studioCall.ts +7 -0
  102. package/src/store/class/contract/contract.ts +7 -0
  103. package/src/store/class/contract/contractOrganisation.ts +7 -0
  104. package/src/store/class/ftp/ftpEmission.ts +41 -0
  105. package/src/store/class/ftp/ftpParam.ts +12 -0
  106. package/src/store/class/ftp/testFtpEmission.ts +5 -0
  107. package/src/store/class/general/audioView.ts +21 -0
  108. package/src/store/class/{category.ts → general/category.ts} +1 -1
  109. package/src/store/class/general/comment.ts +16 -0
  110. package/src/store/class/general/customPlayer.ts +8 -0
  111. package/src/store/class/{emission.ts → general/emission.ts} +2 -2
  112. package/src/store/class/general/fetchParam.ts +33 -0
  113. package/src/store/class/general/initState.ts +25 -0
  114. package/src/store/class/general/ituneCategory.ts +5 -0
  115. package/src/store/class/general/media.ts +14 -0
  116. package/src/store/class/general/organisation.ts +19 -0
  117. package/src/store/class/general/pageable.ts +13 -0
  118. package/src/store/class/{participant.ts → general/participant.ts} +0 -0
  119. package/src/store/class/{player.ts → general/player.ts} +0 -0
  120. package/src/store/class/{playlist.ts → general/playlist.ts} +2 -2
  121. package/src/store/class/{podcast.ts → general/podcast.ts} +2 -1
  122. package/src/store/class/general/sortPageable.ts +5 -0
  123. package/src/store/class/general/soundcastCategory.ts +8 -0
  124. package/src/store/class/ouestFrance/ofTag.ts +36 -0
  125. package/src/store/class/ouestFrance/ofTagInfo.ts +9 -0
  126. package/src/store/class/ouestFrance/ofTagPage.ts +7 -0
  127. package/src/store/class/ouestFrance/ofTagSeo.ts +7 -0
  128. package/src/store/class/ouestFrance/ofTagVente.ts +6 -0
  129. package/src/store/class/ouestFrance/ofTagWithParents.ts +26 -0
  130. package/src/store/class/rss/aggregator.ts +28 -0
  131. package/src/store/class/rss/rssEmission.ts +14 -0
  132. package/src/store/class/rss/rssInfo.ts +8 -0
  133. package/src/store/class/{rubriquage.ts → rubrique/rubriquage.ts} +0 -0
  134. package/src/store/class/rubrique/rubriquageFilter.ts +6 -0
  135. package/src/store/class/rubrique/rubrique.ts +8 -0
  136. package/src/store/class/stat/statArrayIncome.ts +6 -0
  137. package/src/store/class/stat/statArrayObject.ts +34 -0
  138. package/src/store/class/stat/statGraph.ts +7 -0
  139. package/src/store/class/{person.ts → user/person.ts} +2 -2
  140. package/src/store/class/user/profile.ts +12 -0
  141. package/src/store/class/user/userKeycloak.ts +24 -0
  142. package/src/store/paramStore.ts +1 -1
  143. package/src/store/typeAppStore.ts +10 -10
  144. package/src/store/class/comment.ts +0 -16
  145. package/src/store/class/conference.ts +0 -31
  146. package/src/store/class/customPlayer.ts +0 -8
  147. package/src/store/class/fetchParam.ts +0 -33
  148. package/src/store/class/media.ts +0 -14
  149. package/src/store/class/organisation.ts +0 -19
  150. package/src/store/class/rubriquageFilter.ts +0 -6
  151. package/src/store/class/rubrique.ts +0 -9
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="module-box flex-no-grow">
2
+ <div class="module-box flex-grow-0">
3
3
  <div class="d-flex align-items-center mb-3">
4
4
  <h3 class="mb-0 share-button-title">
5
5
  {{ $t('Subscribe emission') }}
@@ -123,7 +123,7 @@
123
123
  </template>
124
124
 
125
125
  <script lang="ts">
126
- import { Emission } from '@/store/class/emission';
126
+ import { Emission } from '@/store/class/general/emission';
127
127
  import { defineComponent } from 'vue'
128
128
  export default defineComponent({
129
129
  props: {
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div
3
+ class="form-check"
4
+ :class="isSwitch?'form-switch':''"
5
+ >
6
+ <input
7
+ :id="idCheckbox"
8
+ v-model="textValue"
9
+ type="checkbox"
10
+ class="form-check-input"
11
+ :disabled="isDisabled"
12
+ @click="emitClickAction"
13
+ >
14
+ <label
15
+ class="form-check-label"
16
+ :for="idCheckbox"
17
+ >{{ label }}</label>
18
+ </div>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { defineComponent } from 'vue';
23
+ export default defineComponent({
24
+ name: 'ClassicCheckbox',
25
+
26
+ props: {
27
+ idCheckbox: { default: '', type: String },
28
+ label: { default: '', type: String },
29
+ isDisabled: { default: false, type: Boolean },
30
+ textInit: { default: false, type: Boolean },
31
+ isSwitch:{default:false, type:Boolean}
32
+ },
33
+ emits: ['update:textInit', 'clickAction'],
34
+
35
+ data() {
36
+ return {
37
+ textValue: false as boolean,
38
+ };
39
+ },
40
+ watch: {
41
+ textValue(){
42
+ if(this.textInit !== this.textValue){
43
+ this.$emit('update:textInit', this.textValue)
44
+ }
45
+ },
46
+ textInit(){
47
+ if(this.textInit !== this.textValue){
48
+ this.textValue =this.textInit;
49
+ }
50
+ }
51
+ },
52
+ mounted(){
53
+ this.textValue = this.textInit;
54
+ },
55
+ methods:{
56
+ emitClickAction():void{
57
+ this.$emit('clickAction');
58
+ }
59
+ }
60
+ });
61
+ </script>
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <div
3
+ v-if="loadingText"
4
+ class="d-flex justify-content-center"
5
+ >
6
+ <div class="spinner-border me-3" />
7
+ <h3 class="mt-2">
8
+ {{ loadingText }}
9
+ </h3>
10
+ </div>
11
+ <div
12
+ v-else-if="errorText"
13
+ class="text-center"
14
+ >
15
+ <h3>{{ errorText }}</h3>
16
+ </div>
17
+ </template>
18
+
19
+ <script lang="ts">
20
+ import { defineComponent } from 'vue';
21
+ export default defineComponent({
22
+ name: "ClassicLoading",
23
+ props: {
24
+ loadingText: { default: undefined, type: String},
25
+ errorText: { default: undefined, type: String},
26
+ }
27
+ })
28
+ </script>
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div class="d-flex flex-column">
3
+ <div
4
+ v-for="option in options"
5
+ :key="option.title"
6
+ class="form-check"
7
+ >
8
+ <input
9
+ :id="idRadio + option.value"
10
+ v-model="textValue"
11
+ class="form-check-input"
12
+ type="radio"
13
+ :name="idRadio"
14
+ :value="option.value"
15
+ :disabled="isDisabled"
16
+ >
17
+ <label
18
+ class="form-check-label"
19
+ :for="idRadio + option.value"
20
+ >{{
21
+ option.title
22
+ }}</label>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <script lang="ts">
28
+ import { defineComponent } from 'vue';
29
+ export default defineComponent({
30
+ name: 'ClassicRadio',
31
+
32
+ props: {
33
+ idRadio: { default: '', type: String },
34
+ isDisabled: { default: false, type: Boolean },
35
+ options: { default: ()=>[], type: Array as () => Array<{title: string, value: string|undefined}> },
36
+ textInit: { default: undefined, type: String },
37
+ },
38
+ emits: ['update:textInit'],
39
+
40
+ data() {
41
+ return {
42
+ textValue: undefined as string|undefined,
43
+ };
44
+ },
45
+ watch: {
46
+ textValue(){
47
+ if(this.textInit !== this.textValue){
48
+ this.$emit('update:textInit', this.textValue)
49
+ }
50
+ },
51
+ textInit(){
52
+ if(this.textInit !== this.textValue){
53
+ this.textValue =this.textInit;
54
+ }
55
+ }
56
+ },
57
+ mounted(){
58
+ this.textValue = this.textInit;
59
+ }
60
+ });
61
+ </script>
@@ -0,0 +1,82 @@
1
+ <template>
2
+ <div class="position-relative champs-searchPage static-height">
3
+ <input
4
+ :id="idSearch"
5
+ ref="search"
6
+ v-model="textValue"
7
+ type="text"
8
+ class="search-input w-100 p-2 input-no-outline"
9
+ :placeholder="label"
10
+ :autofocus="autofocus"
11
+ >
12
+ <label
13
+ :for="idSearch"
14
+ :aria-label="label"
15
+ />
16
+ <div
17
+ v-if="!textValue"
18
+ class="saooti-search-bounty search-icon-container"
19
+ />
20
+ <div
21
+ v-else
22
+ class="saooti-cross search-icon-container c-hand"
23
+ @click="textValue = ''"
24
+ />
25
+ </div>
26
+ </template>
27
+
28
+ <script lang="ts">
29
+ import { defineComponent } from 'vue';
30
+ export default defineComponent({
31
+ name: 'ClassicSearch',
32
+ props: {
33
+ idSearch: { default: '', type: String },
34
+ label: { default: '', type: String },
35
+ textInit: { default: '', type: String },
36
+ autofocus: { default: false, type: Boolean },
37
+ },
38
+
39
+ emits: ['update:textInit'],
40
+
41
+ data() {
42
+ return {
43
+ textValue: '' as string,
44
+ };
45
+ },
46
+ watch: {
47
+ textValue(){
48
+ if(this.textInit !== this.textValue){
49
+ this.$emit('update:textInit', this.textValue)
50
+ }
51
+ },
52
+ textInit(){
53
+ if(this.textInit !== this.textValue){
54
+ this.textValue =this.textInit;
55
+ }
56
+ }
57
+ },
58
+ mounted(){
59
+ this.textValue = this.textInit;
60
+ }
61
+ });
62
+ </script>
63
+ <style lang="scss" scoped>
64
+ .champs-searchPage input {
65
+ border: 2px solid #dee2e6;
66
+ border-radius: 10px;
67
+ margin: 0 !important;
68
+ }
69
+ .saooti-search-bounty,
70
+ .saooti-cross {
71
+ font-size: 1rem;
72
+ }
73
+ .search-icon-container {
74
+ position: absolute;
75
+ top: 0;
76
+ bottom: 0;
77
+ right: 0;
78
+ display: flex;
79
+ align-items: center;
80
+ margin: 1rem;
81
+ }
82
+ </style>
@@ -4,7 +4,7 @@
4
4
  class="d-flex"
5
5
  >
6
6
  <div
7
- class="d-flex align-items-center bg-error-message p-2 rounded mt-1 mb-1"
7
+ class="d-flex align-items-center bg-error-message p-2 rounded my-1"
8
8
  >
9
9
  <img
10
10
  src="/img/caution.png"
@@ -2,9 +2,9 @@
2
2
  <div class="bg-dark">
3
3
  <div
4
4
  id="footer"
5
- class="d-flex p-3 secondary-bg border-top footer-display-phone"
5
+ class="d-flex-column p-3 secondary-bg border-top"
6
6
  >
7
- <div class="d-flex flex-grow align-items-end flex-column">
7
+ <div class="d-flex flex-column flex-grow-1 align-items-end">
8
8
  <div class="d-flex flex-column">
9
9
  <router-link
10
10
  :to="{
@@ -13,7 +13,7 @@
13
13
  iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
14
14
  rubriquesId: rubriqueQueryParam },
15
15
  }"
16
- class="linkHover"
16
+ class="link-hover"
17
17
  >
18
18
  {{ $t('Home') }}
19
19
  </router-link>
@@ -24,7 +24,7 @@
24
24
  iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined,
25
25
  rubriquesId: rubriqueQueryParam},
26
26
  }"
27
- class="linkHover"
27
+ class="link-hover"
28
28
  >
29
29
  {{ $t('Podcasts') }}
30
30
  </router-link>
@@ -34,7 +34,7 @@
34
34
  query: { productor: $store.state.filter.organisationId,
35
35
  iabId: $store.state.filter.iab ? $store.state.filter.iab.id : undefined },
36
36
  }"
37
- class="linkHover"
37
+ class="link-hover"
38
38
  >
39
39
  {{ $t('Emissions') }}
40
40
  </router-link>
@@ -44,7 +44,7 @@
44
44
  name: 'productors',
45
45
  query: { productor: $store.state.filter.organisationId },
46
46
  }"
47
- class="linkHover"
47
+ class="link-hover"
48
48
  >
49
49
  {{ $t('Productors') }}
50
50
  </router-link>
@@ -53,23 +53,23 @@
53
53
  name: 'participants',
54
54
  query: { productor: $store.state.filter.organisationId },
55
55
  }"
56
- class="linkHover"
56
+ class="link-hover"
57
57
  >
58
58
  {{ $t('Speakers') }}
59
59
  </router-link>
60
60
  </div>
61
61
  </div>
62
- <hr class="divided-line show-phone">
62
+ <hr class="show-phone">
63
63
  <div
64
64
  v-if="!isPodcastmaker"
65
- class="d-flex flex-grow align-items-center flex-column"
65
+ class="d-flex flex-grow-1 align-items-center flex-column"
66
66
  >
67
67
  <div class="d-flex flex-column">
68
68
  <div class="text-dark">
69
69
  &copy; Saooti 2019
70
70
  </div>
71
71
  <router-link
72
- class="linkHover"
72
+ class="link-hover"
73
73
  to="/main/pub/contact"
74
74
  >
75
75
  {{
@@ -77,7 +77,7 @@
77
77
  }}
78
78
  </router-link>
79
79
  <router-link
80
- class="linkHover"
80
+ class="link-hover"
81
81
  to="/main/pub/cgu"
82
82
  >
83
83
  {{
@@ -85,7 +85,7 @@
85
85
  }}
86
86
  </router-link>
87
87
  <router-link
88
- class="linkHover"
88
+ class="link-hover"
89
89
  to="/main/pub/libraries"
90
90
  >
91
91
  {{
@@ -93,15 +93,15 @@
93
93
  }}
94
94
  </router-link>
95
95
  <a
96
- class="linkHover c-hand"
96
+ class="link-hover c-hand"
97
97
  @click="changeLanguage"
98
98
  >{{
99
99
  $t('Change locale')
100
100
  }}</a>
101
101
  </div>
102
102
  </div>
103
- <hr class="divided-line show-phone">
104
- <div class="flex-grow">
103
+ <hr class="show-phone">
104
+ <div class="flex-grow-1">
105
105
  <a
106
106
  href="https://www.acpm.fr/L-ACPM/Certifications-et-Labels/Les-Podcasts"
107
107
  rel="noopener"
@@ -118,12 +118,12 @@
118
118
  </div>
119
119
  <div
120
120
  v-if="isPodcastmaker && isContactLink"
121
- class="d-flex flex-grow align-items-center flex-column"
121
+ class="d-flex flex-column flex-grow-1 align-items-center"
122
122
  >
123
123
  <div class="d-flex flex-column">
124
124
  <a
125
125
  id="footer-contact"
126
- class="linkHover"
126
+ class="link-hover"
127
127
  :href="isContactLink"
128
128
  rel="noopener"
129
129
  target="_blank"
@@ -140,8 +140,8 @@ import Player from './Player.vue';
140
140
  import { state } from '../../store/paramStore';
141
141
  import octopusApi from '@saooti/octopus-api';
142
142
  import moment from 'moment';
143
- import { Category } from '@/store/class/category';
144
- import { RubriquageFilter } from '@/store/class/rubriquageFilter';
143
+ import { Category } from '@/store/class/general/category';
144
+ import { RubriquageFilter } from '@/store/class/rubrique/rubriquageFilter';
145
145
  import { defineComponent } from 'vue'
146
146
  export default defineComponent({
147
147
  name: 'Footer',
@@ -201,33 +201,24 @@ export default defineComponent({
201
201
  </script>
202
202
 
203
203
  <style lang="scss">
204
- #footer {
204
+ #footer{
205
205
  font-size: 0.7rem;
206
- a {
207
- color: #666;
208
- }
209
206
  .acpm_image {
210
207
  width: 70px;
211
208
  height: 70px;
212
209
  }
213
- }
214
- .border-round {
215
- border-radius: 0 0 2rem 2rem;
216
- }
217
- /** PHONES*/
218
- @media (max-width: 960px) {
219
- .footer-display-phone {
220
- flex-direction: column;
210
+ a{
211
+ color: #666;
212
+ }
213
+ .border-round {
214
+ border-radius: 0 0 2rem 2rem;
215
+ }
216
+ /** PHONES*/
217
+ @media (max-width: 960px) {
221
218
  .align-items-center,
222
219
  .align-items-end {
223
220
  align-items: flex-start !important;
224
221
  }
225
222
  }
226
- .container {
227
- font-size: 0.6rem;
228
- .pages {
229
- margin-right: 3rem;
230
- }
231
- }
232
223
  }
233
224
  </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="d-flex align-items-center justify-content-end flex-no-wrap top-bar-dropdown"
3
+ class="top-bar-dropdown"
4
4
  >
5
5
  <div
6
6
  v-if="authenticated"
@@ -17,46 +17,37 @@
17
17
  data-bs-toggle="dropdown"
18
18
  aria-expanded="false"
19
19
  />
20
- <ul class="dropdown-menu dropdown-menu-right px-4">
21
- <li>
22
- <router-link
23
- v-if="isContribution && !isPodcastmaker"
24
- to="/main/priv/upload"
25
- class="align-self-center w-100"
26
- >
27
- <button class="btn btn-primary w-100 mb-2">
28
- {{ $t('Upload') }}
29
- </button>
30
- </router-link>
31
- </li>
32
- <li v-if="!isPodcastmaker">
20
+ <div class="dropdown-menu dropdown-menu-right px-4">
21
+ <router-link
22
+ v-if="isContribution && !isPodcastmaker"
23
+ class="btn btn-primary w-100"
24
+ to="/main/priv/upload"
25
+ >
26
+ {{ $t('Upload') }}
27
+ </router-link>
28
+ <template v-if="!isPodcastmaker">
33
29
  <router-link
34
30
  to="/main/priv/backoffice"
35
- class="linkSpace dropdown-item"
31
+ class="show-phone dropdown-item"
36
32
  >
37
33
  {{ $t('My space') }}
38
34
  </router-link>
39
- </li>
40
- <li v-if="!isPodcastmaker">
41
35
  <router-link
42
36
  class="dropdown-item"
43
37
  to="/main/priv/edit/profile"
44
38
  >
45
39
  {{ $t('Edit my profile') }}
46
40
  </router-link>
47
- </li>
48
- <li v-if="!isPodcastmaker && isOrganisation">
49
41
  <router-link
42
+ v-if="isOrganisation"
50
43
  class="dropdown-item"
51
44
  to="/main/priv/edit/organisation"
52
45
  >
53
46
  {{ $t('Edit my organisation') }}
54
47
  </router-link>
55
- </li>
56
- <li v-if="!isEducation">
48
+ </template>
49
+ <template v-if="!isEducation">
57
50
  <hr class="dropdown-divider">
58
- </li>
59
- <li v-if="!isEducation">
60
51
  <a
61
52
  href="https://help.octopus.saooti.com/Aide/"
62
53
  class="dropdown-item"
@@ -65,8 +56,6 @@
65
56
  >
66
57
  {{ $t('Help') }}
67
58
  </a>
68
- </li>
69
- <li v-if="!isEducation">
70
59
  <a
71
60
  href="https://help.octopus.saooti.com/"
72
61
  class="dropdown-item"
@@ -75,50 +64,41 @@
75
64
  >
76
65
  {{ $t('TutoMag') }}
77
66
  </a>
78
- </li>
79
- <li><hr class="dropdown-divider"></li>
80
- <li v-if="!isEducation">
67
+ <hr class="dropdown-divider">
81
68
  <a
82
69
  class="dropdown-item"
83
70
  href="/sso/logout"
84
71
  >
85
72
  {{ $t('Logout') }}
86
73
  </a>
87
- </li>
88
- </ul>
74
+ </template>
75
+ </div>
89
76
  </div>
90
77
  <div
91
78
  v-else
92
79
  class="dropdown btn-group"
93
80
  >
94
81
  <button
95
- class="btn dropdown-toggle btn-secondary text-decoration-none m-1 admin-button btn-rounded-icon dropdown-toggle-no-caret"
82
+ class="btn dropdown-toggle m-1 admin-button dropdown-toggle-no-caret saooti-user-octopus"
96
83
  data-bs-toggle="dropdown"
97
84
  aria-expanded="false"
98
- >
99
- <i class="saooti-user-octopus text-dark" />
100
- <span class="visually-hidden">Profile</span>
101
- </button>
102
- <ul class="dropdown-menu dropdown-menu-right px-4">
103
- <li>
104
- <a
105
- class="dropdown-item"
106
- href="/sso/login"
107
- >
108
- {{ $t('Login') }}
109
- </a>
110
- </li>
111
- <li v-if="!isPodcastmaker">
112
- <router-link
113
- class="dropdown-item"
114
- to="/main/pub/create"
115
- >
116
- {{
117
- $t('Create an account')
118
- }}
119
- </router-link>
120
- </li>
121
- </ul>
85
+ aria-label="Profile"
86
+ />
87
+ <div class="dropdown-menu dropdown-menu-right px-4">
88
+ <a
89
+ class="dropdown-item"
90
+ href="/sso/login"
91
+ >
92
+ {{ $t('Login') }}
93
+ </a>
94
+ <router-link
95
+ v-if="!isPodcastmaker"
96
+ class="dropdown-item"
97
+ to="/main/pub/create"
98
+ >
99
+ {{ $t('Create an account') }}
100
+ </router-link>
101
+ </div>
122
102
  </div>
123
103
  </div>
124
104
  </template>
@@ -133,12 +113,6 @@ export default defineComponent({
133
113
  isEducation: { default: false, type: Boolean},
134
114
  },
135
115
 
136
- data() {
137
- return {
138
- showMenu: false as boolean
139
- };
140
- },
141
-
142
116
  computed: {
143
117
  isPodcastmaker(): boolean {
144
118
  return (state.generalParameters.podcastmaker as boolean);
@@ -154,7 +128,6 @@ export default defineComponent({
154
128
  },
155
129
  },
156
130
 
157
-
158
131
  methods: {
159
132
  goToUrl(url: string): void {
160
133
  if (this.authenticated) {
@@ -167,19 +140,24 @@ export default defineComponent({
167
140
 
168
141
  <style lang="scss">
169
142
  .top-bar-dropdown {
143
+ display: flex;
144
+ align-items: center;
145
+
170
146
  .main-button-dropdown {
171
147
  padding-bottom: 0.4rem;
172
148
  width: 140px;
173
149
  text-align: left;
174
150
  padding-left: 15px;
175
151
  margin-right: 30px;
152
+ @media (max-width: 650px) {
153
+ display: none;
154
+ }
176
155
  }
177
156
  .btn-group .dropdown-toggle-split {
178
157
  align-items: center;
179
- border-radius: 50% !important;
180
- width: 40px !important;
181
- height: 40px !important;
182
- display: flex;
158
+ border-radius: 50%;
159
+ width: 40px;
160
+ height: 40px;
183
161
  justify-content: center;
184
162
  position: absolute;
185
163
  right: 5px;
@@ -190,32 +168,5 @@ export default defineComponent({
190
168
  right: auto;
191
169
  }
192
170
  }
193
- .dropdown-header {
194
- display: flex;
195
- align-items: center;
196
- font-weight: bold;
197
- }
198
- .linkSpace {
199
- display: none;
200
- }
201
-
202
- /** PHONES*/
203
- @media (max-width: 1200px) {
204
- .linkSpace {
205
- display: block;
206
- }
207
- }
208
- @media (max-width: 650px) {
209
- .dropdown {
210
- .main-button-dropdown {
211
- display: none;
212
- }
213
- }
214
- .btn-group .dropdown-toggle-split {
215
- height: 30px;
216
- width: 30px;
217
- border-radius: 50% !important;
218
- }
219
- }
220
171
  }
221
172
  </style>