diff --git a/app/javascript/vue/projects/modals/edit.vue b/app/javascript/vue/projects/modals/edit.vue index 2a4fc9c1c..04f3ac812 100644 --- a/app/javascript/vue/projects/modals/edit.vue +++ b/app/javascript/vue/projects/modals/edit.vue @@ -29,12 +29,12 @@
- +
@@ -60,12 +60,25 @@ export default { components: { SelectDropdown, }, + watch: { + visible(newValue) { + if (newValue) { + [this.defaultRole] = this.userRoles.find((role) => role[1] === 'Viewer'); + } else { + this.defaultRole = null; + } + } + }, + mounted() { + this.fetchUserRoles(); + }, data() { return { name: this.project.name, visible: !this.project.hidden, defaultRole: this.project.default_public_user_role_id, error: null, + userRoles: [] }; }, methods: { @@ -86,6 +99,14 @@ export default { changeRole(role) { this.defaultRole = role; }, + fetchUserRoles() { + if (this.userRolesUrl) { + axios.get(this.userRolesUrl) + .then((response) => { + this.userRoles = response.data.data; + }); + } + } }, }; diff --git a/app/javascript/vue/projects/modals/new.vue b/app/javascript/vue/projects/modals/new.vue index 5eefccedd..9d48fa18d 100644 --- a/app/javascript/vue/projects/modals/new.vue +++ b/app/javascript/vue/projects/modals/new.vue @@ -36,7 +36,7 @@ diff --git a/app/javascript/vue/protocols/modals/new.vue b/app/javascript/vue/protocols/modals/new.vue index 467b34750..5ca00669a 100644 --- a/app/javascript/vue/protocols/modals/new.vue +++ b/app/javascript/vue/protocols/modals/new.vue @@ -30,12 +30,12 @@
- +
@@ -61,11 +61,24 @@ export default { components: { SelectDropdown }, + watch: { + visible(newValue) { + if (newValue) { + [this.defaultRole] = this.userRoles.find((role) => role[1] === 'Viewer'); + } else { + this.defaultRole = null; + } + } + }, + mounted() { + this.fetchUserRoles(); + }, data() { return { name: '', visible: false, defaultRole: null, + userRoles: [], error: null }; }, @@ -86,6 +99,14 @@ export default { }, changeRole(role) { this.defaultRole = role; + }, + fetchUserRoles() { + if (this.userRolesUrl) { + axios.get(this.userRolesUrl) + .then((response) => { + this.userRoles = response.data.data; + }); + } } } }; diff --git a/app/serializers/lists/project_and_folder_serializer.rb b/app/serializers/lists/project_and_folder_serializer.rb index 1ee7c3df0..f0e7e2b08 100644 --- a/app/serializers/lists/project_and_folder_serializer.rb +++ b/app/serializers/lists/project_and_folder_serializer.rb @@ -64,8 +64,6 @@ module Lists count: object.comments.count, count_unseen: count_unseen_comments(object, @user) } - else - {} end end @@ -98,7 +96,7 @@ module Lists def permissions { - create_comments: comment_addable?(object) + create_comments: can_create_project_comments?(object) } end