Skip to content

Commit ab66fcc

Browse files
committed
fix: update display mode when editing context
Signed-off-by: Cleopatra Enjeck M. <[email protected]>
1 parent 4f9536b commit ab66fcc

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

src/modules/modals/CreateContext.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export default {
171171
isUser: true,
172172
key: 'user-' + getCurrentUser().uid,
173173
})
174-
const displayMode = this.showInNavigation ? 'NAV_ENTRY_MODE_ALL' : 'NAV_ENTRY_MODE_HIDDEN'
174+
const displayMode = this.showInNavigation ? 'NAV_ENTRY_MODE_RECIPIENTS' : 'NAV_ENTRY_MODE_HIDDEN'
175175
const res = await this.$store.dispatch('insertNewContext', { data, previousReceivers: [], receivers: this.receivers, displayMode: NAV_ENTRY_MODE[displayMode] })
176176
if (res) {
177177
return res.id

src/modules/modals/EditContext.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ export default {
185185
isUser: true,
186186
key: 'user-' + getCurrentUser().uid,
187187
})
188-
const displayMode = this.showInNavigation ? 'NAV_ENTRY_MODE_ALL' : 'NAV_ENTRY_MODE_HIDDEN'
188+
const displayMode = this.showInNavigationDefault ? 'NAV_ENTRY_MODE_RECIPIENTS' : 'NAV_ENTRY_MODE_HIDDEN'
189189
const res = await this.$store.dispatch('updateContext', { id: this.contextId, data, previousReceivers: Object.values(context.sharing), receivers: this.receivers, displayMode: NAV_ENTRY_MODE[displayMode] })
190190
if (res) {
191191
showSuccess(t('tables', 'Updated application "{contextTitle}".', { contextTitle: this.title }))
@@ -269,7 +269,7 @@ export default {
269269
270270
},
271271
updateDisplayMode() {
272-
this.showInNavigation = !this.showInNavigation
272+
this.showInNavigationDefault = !this.showInNavigationDefault
273273
},
274274
actionTransfer() {
275275
emit('tables:context:edit', null)

src/modules/navigation/partials/NavigationContextItem.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ export default {
117117
},
118118
updateDisplayMode() {
119119
const value = !this.showInNavigation
120-
let displayMode = value ? NAV_ENTRY_MODE.NAV_ENTRY_MODE_RECIPIENTS : NAV_ENTRY_MODE.NAV_ENTRY_MODE_HIDDEN
120+
let displayMode = value ? NAV_ENTRY_MODE.NAV_ENTRY_MODE_ALL : NAV_ENTRY_MODE.NAV_ENTRY_MODE_HIDDEN
121121
if (this.ownsContext(this.context)) {
122-
displayMode = value ? NAV_ENTRY_MODE.NAV_ENTRY_MODE_ALL : NAV_ENTRY_MODE.NAV_ENTRY_MODE_HIDDEN
122+
displayMode = value ? NAV_ENTRY_MODE.NAV_ENTRY_MODE_RECIPIENTS : NAV_ENTRY_MODE.NAV_ENTRY_MODE_HIDDEN
123123
}
124124
const share = Object.values(this.context.sharing || {}).find(share => share.receiver === getCurrentUser().uid)
125125
if (share) {

src/store/store.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { showError } from '@nextcloud/dialogs'
1010
import '@nextcloud/dialogs/style.css'
1111
import data from './data.js'
1212
import displayError from '../shared/utils/displayError.js'
13-
import { NODE_TYPE_TABLE, NODE_TYPE_VIEW } from '../shared/constants.js'
13+
import { NODE_TYPE_TABLE, NODE_TYPE_VIEW, NAV_ENTRY_MODE } from '../shared/constants.js'
14+
import { getCurrentUser } from '@nextcloud/auth'
1415

1516
Vue.use(Vuex)
1617

@@ -359,7 +360,15 @@ export default new Vuex.Store({
359360
// Avoid duplicate shares by checking if share exists first
360361
const existingShare = previousReceivers.find((p) => p.receiver === share.receiver && p.receiver_type === share.receiverType)
361362
if (!existingShare) {
362-
await axios.post(generateUrl('/apps/tables/share'), share)
363+
const createdShare = await axios.post(generateUrl('/apps/tables/share'), share)
364+
if (createdShare?.data && createdShare?.data?.id) {
365+
const shareId = createdShare.data.id
366+
await dispatch('updateDisplayMode', { shareId, displayMode, target: 'default' })
367+
// since we switch between NAV_ENTRY_MODE_HIDDEN and NAV_ENTRY_MODE_RECIPIENTS, we need to handle owner separately
368+
if (receiver.id === getCurrentUser().uid) {
369+
await dispatch('updateDisplayMode', { shareId, displayMode: displayMode === NAV_ENTRY_MODE.NAV_ENTRY_MODE_HIDDEN ? NAV_ENTRY_MODE.NAV_ENTRY_MODE_HIDDEN : NAV_ENTRY_MODE.NAV_ENTRY_MODE_ALL, target: 'self' })
370+
}
371+
}
363372
}
364373
}
365374
} catch (e) {
@@ -374,6 +383,9 @@ export default new Vuex.Store({
374383
})
375384
if (!currentShare) {
376385
await axios.delete(generateUrl('/apps/tables/share/' + previousReceiver.share_id))
386+
} else {
387+
const shareId = previousReceiver.share_id
388+
await dispatch('updateDisplayMode', { shareId, displayMode, target: 'default' })
377389
}
378390
}
379391
} catch (e) {

0 commit comments

Comments
 (0)