New UI: Add additional filter 'Locked documents' #1124
This commit is contained in:
parent
679c448e1d
commit
417b9bff0a
@ -101,6 +101,7 @@ class DmsfQuery < Query
|
|||||||
|
|
||||||
# Returns the count of all items
|
# Returns the count of all items
|
||||||
def dmsf_count
|
def dmsf_count
|
||||||
|
Rails.logger.info ">>> #{base_scope.where(statement).to_sql}"
|
||||||
base_scope.where(statement).count
|
base_scope.where(statement).count
|
||||||
rescue ::ActiveRecord::StatementInvalid => e
|
rescue ::ActiveRecord::StatementInvalid => e
|
||||||
raise StatementInvalid.new e.message
|
raise StatementInvalid.new e.message
|
||||||
@ -110,6 +111,7 @@ class DmsfQuery < Query
|
|||||||
add_available_filter 'author', type: :list, values: lambda { author_values }
|
add_available_filter 'author', type: :list, values: lambda { author_values }
|
||||||
add_available_filter 'title', type: :text
|
add_available_filter 'title', type: :text
|
||||||
add_available_filter 'updated', type: :date_past
|
add_available_filter 'updated', type: :date_past
|
||||||
|
add_available_filter 'locked', type: :list, values: [[l(:general_text_yes), '1'], [l(:general_text_no), '0']]
|
||||||
add_custom_fields_filters DmsfFileRevisionCustomField.all
|
add_custom_fields_filters DmsfFileRevisionCustomField.all
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -240,6 +242,15 @@ class DmsfQuery < Query
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def now
|
||||||
|
case ActiveRecord::Base.connection.adapter_name.downcase
|
||||||
|
when 'sqlserver'
|
||||||
|
'GETDATE()'
|
||||||
|
else
|
||||||
|
'NOW()'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def get_cf_query(id, type, table)
|
def get_cf_query(id, type, table)
|
||||||
if Redmine::Database.mysql? || Redmine::Database.sqlite?
|
if Redmine::Database.mysql? || Redmine::Database.sqlite?
|
||||||
aggr_func = 'GROUP_CONCAT(value)'
|
aggr_func = 'GROUP_CONCAT(value)'
|
||||||
@ -277,6 +288,7 @@ class DmsfQuery < Query
|
|||||||
0 AS customized_id,
|
0 AS customized_id,
|
||||||
projects.description AS description,
|
projects.description AS description,
|
||||||
'' AS comment,
|
'' AS comment,
|
||||||
|
0 AS locked,
|
||||||
0 AS sort#{cf_columns}}).visible
|
0 AS sort#{cf_columns}}).visible
|
||||||
if dmsf_folder_id || deleted
|
if dmsf_folder_id || deleted
|
||||||
scope.none
|
scope.none
|
||||||
@ -313,8 +325,11 @@ class DmsfQuery < Query
|
|||||||
dmsf_folders.id AS customized_id,
|
dmsf_folders.id AS customized_id,
|
||||||
dmsf_folders.description AS description,
|
dmsf_folders.description AS description,
|
||||||
'' AS comment,
|
'' AS comment,
|
||||||
|
(case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
|
||||||
1 AS sort#{cf_columns}}).
|
1 AS sort#{cf_columns}}).
|
||||||
joins('LEFT JOIN users ON dmsf_folders.user_id = users.id')
|
joins('LEFT JOIN users ON dmsf_folders.user_id = users.id').
|
||||||
|
joins("LEFT JOIN dmsf_locks ON dmsf_folders.id = dmsf_locks.entity_id AND dmsf_locks.entity_type = 1 AND
|
||||||
|
(dmsf_locks.expires_at IS NULL OR dmsf_locks.expires_at > #{now})")
|
||||||
return scope.none unless project
|
return scope.none unless project
|
||||||
if deleted
|
if deleted
|
||||||
scope = scope.deleted
|
scope = scope.deleted
|
||||||
@ -360,9 +375,12 @@ class DmsfQuery < Query
|
|||||||
dmsf_folders.id AS customized_id,
|
dmsf_folders.id AS customized_id,
|
||||||
dmsf_folders.description AS description,
|
dmsf_folders.description AS description,
|
||||||
'' AS comment,
|
'' AS comment,
|
||||||
|
(case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
|
||||||
1 AS sort#{cf_columns}}).
|
1 AS sort#{cf_columns}}).
|
||||||
joins('LEFT JOIN dmsf_folders ON dmsf_links.target_id = dmsf_folders.id').
|
joins('LEFT JOIN dmsf_folders ON dmsf_links.target_id = dmsf_folders.id').
|
||||||
joins('LEFT JOIN users ON users.id = COALESCE(dmsf_folders.user_id, dmsf_links.user_id)')
|
joins('LEFT JOIN users ON users.id = COALESCE(dmsf_folders.user_id, dmsf_links.user_id)').
|
||||||
|
joins("LEFT JOIN dmsf_locks ON dmsf_folders.id = dmsf_locks.entity_id AND dmsf_locks.entity_type = 1 AND
|
||||||
|
(dmsf_locks.expires_at IS NULL OR dmsf_locks.expires_at > #{now})")
|
||||||
if deleted
|
if deleted
|
||||||
scope = scope.deleted
|
scope = scope.deleted
|
||||||
else
|
else
|
||||||
@ -407,9 +425,12 @@ class DmsfQuery < Query
|
|||||||
dmsf_file_revisions.id AS customized_id,
|
dmsf_file_revisions.id AS customized_id,
|
||||||
dmsf_file_revisions.description AS description,
|
dmsf_file_revisions.description AS description,
|
||||||
dmsf_file_revisions.comment AS comment,
|
dmsf_file_revisions.comment AS comment,
|
||||||
|
(case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
|
||||||
2 AS sort#{cf_columns}}).
|
2 AS sort#{cf_columns}}).
|
||||||
joins(:dmsf_file_revisions).
|
joins(:dmsf_file_revisions).
|
||||||
joins('LEFT JOIN users ON dmsf_file_revisions.user_id = users.id ').
|
joins('LEFT JOIN users ON dmsf_file_revisions.user_id = users.id ').
|
||||||
|
joins("LEFT JOIN dmsf_locks ON dmsf_files.id = dmsf_locks.entity_id AND dmsf_locks.entity_type = 0 AND
|
||||||
|
(dmsf_locks.expires_at IS NULL OR dmsf_locks.expires_at > #{now})").
|
||||||
where(sub_query)
|
where(sub_query)
|
||||||
if deleted
|
if deleted
|
||||||
scope = scope.deleted
|
scope = scope.deleted
|
||||||
@ -422,7 +443,7 @@ class DmsfQuery < Query
|
|||||||
if statement.present? || deleted
|
if statement.present? || deleted
|
||||||
scope.where dmsf_files: { project_id: project.id }
|
scope.where dmsf_files: { project_id: project.id }
|
||||||
else
|
else
|
||||||
scope.where dmsf_files: { project_id: project.id, dmsf_folder_id: nil }
|
scope.where(dmsf_files: { project_id: project.id, dmsf_folder_id: nil })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -455,10 +476,13 @@ class DmsfQuery < Query
|
|||||||
dmsf_file_revisions.id AS customized_id,
|
dmsf_file_revisions.id AS customized_id,
|
||||||
dmsf_file_revisions.description AS description,
|
dmsf_file_revisions.description AS description,
|
||||||
dmsf_file_revisions.comment AS comment,
|
dmsf_file_revisions.comment AS comment,
|
||||||
|
(case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
|
||||||
2 AS sort#{cf_columns}}).
|
2 AS sort#{cf_columns}}).
|
||||||
joins('JOIN dmsf_files ON dmsf_files.id = dmsf_links.target_id').
|
joins('JOIN dmsf_files ON dmsf_files.id = dmsf_links.target_id').
|
||||||
joins('JOIN dmsf_file_revisions ON dmsf_file_revisions.dmsf_file_id = dmsf_files.id').
|
joins('JOIN dmsf_file_revisions ON dmsf_file_revisions.dmsf_file_id = dmsf_files.id').
|
||||||
joins('LEFT JOIN users ON dmsf_file_revisions.user_id = users.id ').
|
joins('LEFT JOIN users ON dmsf_file_revisions.user_id = users.id ').
|
||||||
|
joins("LEFT JOIN dmsf_locks ON dmsf_files.id = dmsf_locks.entity_id AND dmsf_locks.entity_type = 0 AND
|
||||||
|
(dmsf_locks.expires_at IS NULL OR dmsf_locks.expires_at > #{now})").
|
||||||
where(sub_query)
|
where(sub_query)
|
||||||
if deleted
|
if deleted
|
||||||
scope = scope.deleted
|
scope = scope.deleted
|
||||||
@ -505,6 +529,7 @@ class DmsfQuery < Query
|
|||||||
0 AS customized_id,
|
0 AS customized_id,
|
||||||
'' AS description,
|
'' AS description,
|
||||||
'' AS comment,
|
'' AS comment,
|
||||||
|
0 AS locked,
|
||||||
2 AS sort#{cf_columns}}).
|
2 AS sort#{cf_columns}}).
|
||||||
joins('LEFT JOIN users ON dmsf_links.user_id = users.id ')
|
joins('LEFT JOIN users ON dmsf_links.user_id = users.id ')
|
||||||
if deleted
|
if deleted
|
||||||
|
|||||||
@ -404,6 +404,7 @@ cs:
|
|||||||
field_first_at: První
|
field_first_at: První
|
||||||
field_last_at: Poslední
|
field_last_at: Poslední
|
||||||
field_size: Velikost
|
field_size: Velikost
|
||||||
|
field_locked: Zamčen
|
||||||
|
|
||||||
label_add_width: Přidat s
|
label_add_width: Přidat s
|
||||||
|
|
||||||
@ -459,8 +460,8 @@ cs:
|
|||||||
label_column_description: Popis
|
label_column_description: Popis
|
||||||
label_column_comment: Komentář
|
label_column_comment: Komentář
|
||||||
|
|
||||||
label_dmsf_global_menu_disabled: Global DMS menu disabled
|
label_dmsf_global_menu_disabled: Globální DMS menu zakázáno
|
||||||
note_dmsf_global_menu_disabled: If yes, DMS menu item is not present in the top menu.
|
note_dmsf_global_menu_disabled: Pokud je zašrtnuto, tak položka DMS není v hlavním menu.
|
||||||
|
|
||||||
easy_pages:
|
easy_pages:
|
||||||
modules:
|
modules:
|
||||||
|
|||||||
@ -400,6 +400,7 @@ de:
|
|||||||
field_first_at: Erste
|
field_first_at: Erste
|
||||||
field_last_at: Letzte
|
field_last_at: Letzte
|
||||||
field_size: Größe
|
field_size: Größe
|
||||||
|
field_locked: Gesperrt
|
||||||
|
|
||||||
label_add_width: Zugeben mit
|
label_add_width: Zugeben mit
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ en:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Size
|
field_size: Size
|
||||||
|
field_locked: Locked
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ es:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Tamaño
|
field_size: Tamaño
|
||||||
|
field_locked: Bloqueado
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -385,6 +385,7 @@ fa:
|
|||||||
field_first_at: اولین
|
field_first_at: اولین
|
||||||
field_last_at: آخرین
|
field_last_at: آخرین
|
||||||
field_size: حجم
|
field_size: حجم
|
||||||
|
field_locked: Locked
|
||||||
|
|
||||||
label_add_width: اضافه با
|
label_add_width: اضافه با
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ fr:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Taille
|
field_size: Taille
|
||||||
|
field_locked: Verrouillé
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -403,6 +403,7 @@ hu:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Méret
|
field_size: Méret
|
||||||
|
field_locked: Lezárták
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ it: # Italian strings thx 2 Matteo Arceci!
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Dydis
|
field_size: Dydis
|
||||||
|
field_locked: Bloccato
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -405,6 +405,7 @@ ja:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: サイズ
|
field_size: サイズ
|
||||||
|
field_locked: Locked
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ ko:
|
|||||||
field_first_at: 처음
|
field_first_at: 처음
|
||||||
field_last_at: 마지막
|
field_last_at: 마지막
|
||||||
field_size: 크기
|
field_size: 크기
|
||||||
|
field_locked: Locked
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ nl:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Grootte
|
field_size: Grootte
|
||||||
|
field_locked: Vergrendeld
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ pl:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Rozmiar
|
field_size: Rozmiar
|
||||||
|
field_locked: Zablokowany
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ pt-BR:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Tamanho
|
field_size: Tamanho
|
||||||
|
field_locked: Bloqueado
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ sl:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: Velikost
|
field_size: Velikost
|
||||||
|
field_locked: Zaklenjena
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -403,6 +403,7 @@ zh-TW:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: 大小
|
field_size: 大小
|
||||||
|
field_locked: Locked
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
@ -404,6 +404,7 @@ zh:
|
|||||||
field_first_at: First
|
field_first_at: First
|
||||||
field_last_at: Last
|
field_last_at: Last
|
||||||
field_size: 大小
|
field_size: 大小
|
||||||
|
field_locked: Locked
|
||||||
|
|
||||||
label_add_width: Add with
|
label_add_width: Add with
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user