@enso-ui/users 2.0.5 → 2.0.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enso-ui/users",
3
- "version": "2.0.5",
3
+ "version": "2.0.9",
4
4
  "description": "Basic users package",
5
5
  "main": "bulma/index.js",
6
6
  "scripts": {
@@ -36,7 +36,6 @@
36
36
  "@fortawesome/fontawesome-svg-core": "^1.2.2",
37
37
  "@fortawesome/free-solid-svg-icons": "^5.2.0",
38
38
  "@fortawesome/vue-fontawesome": "3.0.0-5",
39
- "v-tooltip": "4.0.0-alpha.1",
40
39
  "vue": "^3.0",
41
40
  "vuex": "^4.0.0"
42
41
  },
@@ -47,7 +46,7 @@
47
46
  "autoprefixer": "^9.6.1",
48
47
  "babel-eslint": "^10.0.1",
49
48
  "cross-env": "^6.0.0",
50
- "eslint": "^8.0.0",
49
+ "eslint": "^7.0.0",
51
50
  "eslint-import-resolver-alias": "^1.1.2",
52
51
  "eslint-plugin-vue": "^8.0.0"
53
52
  }
@@ -1,15 +1,10 @@
1
1
  <template>
2
2
  <core-profile-control>
3
- <template #default="{ user, avatarLink, hide, isTouch, visitProfile, toggle, visible }">
3
+ <template #default="{ user, hide, isTouch, visitProfile, toggle, visible }">
4
4
  <a class="navbar-item"
5
5
  @click="visitProfile()"
6
6
  v-if="isTouch">
7
- <img class="is-rounded"
8
- :src="avatarLink">
9
- <span v-if="!isTouch"
10
- class="ml-1">
11
- {{ user.person.appellative || user.person.name }}
12
- </span>
7
+ <avatar :user="user"/>
13
8
  </a>
14
9
  <div v-click-outside="hide"
15
10
  :class="[
@@ -19,15 +14,13 @@
19
14
  ]" v-else>
20
15
  <a class="navbar-link is-arrowless"
21
16
  @click="toggle()">
22
- <img class="is-rounded"
23
- :src="avatarLink">
24
- <span v-if="!isTouch"
25
- class="ml-1">
17
+ <avatar :user="user"/>
18
+ <span class="ml-1">
26
19
  {{ user.person.appellative || user.person.name }}
27
20
  </span>
28
21
  </a>
29
- <div v-if="visible"
30
- class="navbar-dropdown is-right">
22
+ <div class="navbar-dropdown is-right"
23
+ v-if="visible">
31
24
  <div class="user-panel p-2">
32
25
  <avatar class="is-96x96"
33
26
  :user="user"/>
@@ -1,19 +1,15 @@
1
1
  <template>
2
- <figure class="image avatar"
3
- v-tooltip="tooltip">
2
+ <figure class="image avatar">
4
3
  <img class="is-rounded"
5
- :src="route('core.avatars.show', user.avatar.id)">
4
+ :src="link">
6
5
  </figure>
7
6
  </template>
8
7
 
9
8
  <script>
10
- import { VTooltip } from 'v-tooltip';
11
9
 
12
10
  export default {
13
11
  name: 'Avatar',
14
12
 
15
- directives: { tooltip: VTooltip },
16
-
17
13
  inject: ['route'],
18
14
 
19
15
  props: {
@@ -24,11 +20,14 @@ export default {
24
20
  },
25
21
 
26
22
  computed: {
23
+ link() {
24
+ return this.route('core.avatars.show', this.user.avatar.id);
25
+ },
27
26
  tooltip() {
28
27
  return this.user.person?.appellative
29
28
  ?? this.user.person?.name;
30
- }
31
- }
29
+ },
30
+ },
32
31
  };
33
32
  </script>
34
33
 
@@ -43,7 +43,6 @@
43
43
  </template>
44
44
 
45
45
  <script>
46
- import { VTooltip } from 'v-tooltip';
47
46
  import { FontAwesomeIcon as Fa } from '@fortawesome/vue-fontawesome';
48
47
  import { library } from '@fortawesome/fontawesome-svg-core';
49
48
  import {
@@ -72,8 +71,6 @@ export default {
72
71
 
73
72
  inject: ['canAccess'],
74
73
 
75
- directives: { tooltip: VTooltip },
76
-
77
74
  components: { Confirmation, Fa },
78
75
 
79
76
  props: {
@@ -37,7 +37,6 @@
37
37
  </template>
38
38
 
39
39
  <script>
40
- import { VTooltip } from 'v-tooltip';
41
40
  import { FontAwesomeIcon as Fa } from '@fortawesome/vue-fontawesome';
42
41
  import { library } from '@fortawesome/fontawesome-svg-core';
43
42
  import {
@@ -55,8 +54,6 @@ export default {
55
54
 
56
55
  inject: ['canAccess'],
57
56
 
58
- directives: { tooltip: VTooltip },
59
-
60
57
  components: { Confirmation, Fa },
61
58
 
62
59
  props: {
@@ -57,7 +57,7 @@
57
57
  && !impersonating
58
58
  ">
59
59
  <a class="button is-warning"
60
- @click="$root.$emit('start-impersonating', profile.id)">
60
+ @click="startImpersonating">
61
61
  <span class="icon">
62
62
  <fa icon="user-circle"/>
63
63
  </span>
@@ -158,6 +158,7 @@ import {
158
158
  faUser, faUserCircle, faSyncAlt, faTrashAlt, faUpload, faSignOutAlt, faPencilAlt,
159
159
  } from '@fortawesome/free-solid-svg-icons';
160
160
  import { Uploader } from '@enso-ui/uploader/bulma';
161
+ import eventBus from '@enso-ui/ui/src/core/services/eventBus';
161
162
  import Divider from '@enso-ui/divider';
162
163
  import format from '@enso-ui/ui/src/modules/plugins/date-fns/format';
163
164
 
@@ -197,21 +198,24 @@ export default {
197
198
 
198
199
  methods: {
199
200
  ...mapMutations(['setUserAvatar']),
201
+ dateFormat(date) {
202
+ return date
203
+ ? format(date, this.meta.dateFormat)
204
+ : null;
205
+ },
200
206
  fetch() {
201
207
  axios.get(this.route(this.$route.name, this.$route.params.user))
202
208
  .then(response => (this.profile = response.data.user))
203
209
  .catch(this.errorHandler);
204
210
  },
211
+ startImpersonating() {
212
+ eventBus.$emit('start-impersonating', this.profile.id);
213
+ },
205
214
  updateAvatar() {
206
215
  axios.patch(this.route('core.avatars.update', this.user.avatar.id))
207
216
  .then(({ data }) => this.setUserAvatar(data.avatarId))
208
217
  .catch(this.errorHandler);
209
218
  },
210
- dateFormat(date) {
211
- return date
212
- ? format(date, this.meta.dateFormat)
213
- : null;
214
- },
215
219
  },
216
220
  };
217
221
  </script>
@@ -35,7 +35,6 @@ export default {
35
35
  user: this.user,
36
36
  isTouch: this.isTouch,
37
37
  visitProfile: this.visitProfile,
38
- avatarLink: this.route('core.avatars.show', this.user.avatar.id),
39
38
  hide: this.hide,
40
39
  toggle: this.toggle,
41
40
  visible: this.visible,