mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-08 07:21:03 +08:00
Merge pull request #8527 from artoscinote/ma_SCI_11942
Project list fixes [SCI-11942]
This commit is contained in:
commit
9103188975
5 changed files with 28 additions and 34 deletions
|
|
@ -8,6 +8,7 @@
|
|||
:borderless="true"
|
||||
:optionRenderer="optionRenderer"
|
||||
:labelRenderer="optionRenderer"
|
||||
:disabled="!params.data.urls.update"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div v-if="params.data.comments" class="w-9 flex justify-end items-center h-10">
|
||||
<span v-if="!params.data.permissions.create_comments && params.data.comments.count === 0">0</span>
|
||||
<span class="px-1" v-if="!params.data.permissions.create_comments && params.data.comments.count === 0">0</span>
|
||||
<a v-else
|
||||
href="#"
|
||||
class="open-comments-sidebar relative px-1 h-4 leading-4" tabindex=0 :id="'comment-count-' + params.data.id"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div v-if="hasFavorite">
|
||||
<div v-if="canFavorite">
|
||||
<button @click="updateFavorite(!favorite)"
|
||||
class="p-0 flex items-center w-full h-9 bg-transparent border-none cursor-pointer">
|
||||
<div v-if="favorite" class="sn-icon sn-icon-star-filled text-sn-alert-brittlebush"></div>
|
||||
|
|
@ -29,8 +29,8 @@ export default {
|
|||
this.favorite = this.params.data.favorite;
|
||||
},
|
||||
computed: {
|
||||
hasFavorite() {
|
||||
return this.params.data.favorite !== null;
|
||||
canFavorite() {
|
||||
return this.params.data.urls.favorite;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
|||
|
|
@ -124,13 +124,11 @@ module Lists
|
|||
|
||||
urls_list[:show] = nil if project? && !can_read_project?(object)
|
||||
|
||||
urls_list[:update] = if project?
|
||||
project_path(object)
|
||||
else
|
||||
project_folder_path(object)
|
||||
end
|
||||
if !project? || can_manage_project?(object)
|
||||
urls_list[:update] = project? ? project_path(object) : project_folder_path(object)
|
||||
end
|
||||
|
||||
if project?
|
||||
if project? && can_read_project?(object)
|
||||
urls_list[:favorite] = favorite_project_url(object)
|
||||
urls_list[:unfavorite] = unfavorite_project_url(object)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Lists
|
||||
class ProjectsService < BaseService
|
||||
include ActionView::Helpers::SanitizeHelper
|
||||
include Canaid::Helpers::PermissionsHelper
|
||||
|
||||
def initialize(team, user, folder, params)
|
||||
@team = team
|
||||
|
|
@ -167,13 +170,13 @@ module Lists
|
|||
when 'status_DESC'
|
||||
@records = @records.sort_by { |object| project_status(object, 'desc') }.reverse!
|
||||
when 'supervised_by_ASC'
|
||||
@records = @records.sort_by { |object| project_supervised_by(object, 'asc') }
|
||||
@records = @records.sort_by { |object| project_supervised_by(object) }
|
||||
when 'supervised_by_DESC'
|
||||
@records = @records.sort_by { |object| project_supervised_by(object, 'desc') }.reverse!
|
||||
@records = @records.sort_by { |object| project_supervised_by(object) }.reverse!
|
||||
when 'description_ASC'
|
||||
@records = @records.sort_by { |object| project_description(object, 'asc') }
|
||||
@records = @records.sort_by { |object| project_description(object) }
|
||||
when 'description_DESC'
|
||||
@records = @records.sort_by { |object| project_description(object, 'desc') }.reverse!
|
||||
@records = @records.sort_by { |object| project_description(object) }.reverse!
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -182,11 +185,15 @@ module Lists
|
|||
end
|
||||
|
||||
def project_comments_count(object)
|
||||
project?(object) ? object.comments.count : -1
|
||||
return [0, 0, -1] unless project?(object)
|
||||
|
||||
[1, can_create_project_comments?(@user, object) ? 1 : 0, object.comments.count]
|
||||
end
|
||||
|
||||
def project_users_count(object)
|
||||
project?(object) ? object.users.count : -1
|
||||
return [0, -1] unless project?(object)
|
||||
|
||||
[1, object.users.count]
|
||||
end
|
||||
|
||||
def project_favorites(object)
|
||||
|
|
@ -221,28 +228,16 @@ module Lists
|
|||
statuses[object.status.to_sym]
|
||||
end
|
||||
|
||||
def project_supervised_by(object, direction)
|
||||
no_value = direction == 'asc' ? 1 : 0
|
||||
has_value = direction == 'asc' ? 0 : 1
|
||||
def project_supervised_by(object)
|
||||
return [1, '', 1] unless project?(object)
|
||||
|
||||
return [no_value, ''] unless project?(object)
|
||||
|
||||
if object.supervised_by
|
||||
[has_value, object.supervised_by.name]
|
||||
else
|
||||
[no_value, '']
|
||||
end
|
||||
[object.supervised_by_id ? 0 : 1, object.supervised_by&.full_name || '', 0]
|
||||
end
|
||||
|
||||
def project_description(object, direction)
|
||||
no_value = direction == 'asc' ? 1 : 0
|
||||
has_value = direction == 'asc' ? 0 : 1
|
||||
def project_description(object)
|
||||
return [1, '', 1] unless project?(object)
|
||||
|
||||
if object.description.present?
|
||||
[has_value, strip_tags(object.description)]
|
||||
else
|
||||
[no_value, '']
|
||||
end
|
||||
[object.description ? 0 : 1, strip_tags(object.description || ''), 0]
|
||||
end
|
||||
|
||||
def project?(object)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue