System sub-folders

This commit is contained in:
Karel Pičman 2025-01-30 10:17:05 +01:00
parent d094f511f2
commit 88177213d8
3 changed files with 9 additions and 4 deletions

View File

@ -139,7 +139,7 @@ module DmsfQueriesHelper
else else
tag = link_to(sprite_icon('folder', nil, tag = link_to(sprite_icon('folder', nil,
icon_only: true, icon_only: true,
css_class: value.start_with?('.') ? 'dmsf-system' : ''), css_class: item.system ? 'dmsf-system' : ''),
dmsf_folder_path(id: item.project, folder_id: item.id)) dmsf_folder_path(id: item.project, folder_id: item.id))
tag += link_to(h(value), dmsf_folder_path(id: item.project, folder_id: item.id), class: 'dmsf-label') tag += link_to(h(value), dmsf_folder_path(id: item.project, folder_id: item.id), class: 'dmsf-label')
unless filter_any? unless filter_any?

View File

@ -341,6 +341,7 @@ class DmsfQuery < Query
projects.description AS description, projects.description AS description,
'' AS comment, '' AS comment,
0 AS locked, 0 AS locked,
0 AS `system`,
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
@ -382,6 +383,7 @@ class DmsfQuery < Query
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, (case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
dmsf_folders.`system` AS `system`,
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 .joins("LEFT JOIN dmsf_locks ON dmsf_folders.id = dmsf_locks.entity_id AND
@ -427,6 +429,7 @@ class DmsfQuery < Query
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, (case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
0 AS `system`,
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)')
@ -473,6 +476,7 @@ class DmsfQuery < Query
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, (case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
0 AS `system`,
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 ')
@ -519,6 +523,7 @@ class DmsfQuery < Query
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, (case when dmsf_locks.id IS NULL then 0 else 1 end) AS locked,
0 AS `system`,
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')
@ -566,6 +571,7 @@ class DmsfQuery < Query
'' AS description, '' AS description,
'' AS comment, '' AS comment,
0 AS locked, 0 AS locked,
0 AS `system`,
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 ')
scope = deleted ? scope.deleted : scope.visible scope = deleted ? scope.deleted : scope.visible

View File

@ -24,7 +24,6 @@
<% options[:limit] = dmsf_pages.per_page %> <% options[:limit] = dmsf_pages.per_page %>
<% end %> <% end %>
<% query.dmsf_nodes(options).each do |node| %> <% query.dmsf_nodes(options).each do |node| %>
<% system = node.title =~ /^\./ %>
<% case node.type %> <% case node.type %>
<% when 'project'%> <% when 'project'%>
<% id = "#{node.id}pspan" %> <% id = "#{node.id}pspan" %>
@ -38,13 +37,13 @@
class="<%= cycle('odd', 'even') %> class="<%= cycle('odd', 'even') %>
<%= node.css_classes(query.deleted) %> <%= params[:classes] %> <%= @idnt > 0 ? "idnt idnt-#{@idnt}" : nil %>"> <%= node.css_classes(query.deleted) %> <%= params[:classes] %> <%= @idnt > 0 ? "idnt idnt-#{@idnt}" : nil %>">
<td class="checkbox hide-when-print"> <td class="checkbox hide-when-print">
<%= check_box_tag('ids[]', "#{node.type}-#{node.id}", false, id: nil) unless system %> <%= check_box_tag('ids[]', "#{node.type}-#{node.id}", false, id: nil) unless node.system %>
</td> </td>
<% query.inline_columns.each do |column| %> <% query.inline_columns.each do |column| %>
<%= content_tag 'td', column_content(column, node), class: column.css_classes %> <%= content_tag 'td', column_content(column, node), class: column.css_classes %>
<% end %> <% end %>
<td class="buttons"> <td class="buttons">
<% unless system %> <% unless node.system %>
<% if defined?(EasyExtensions) %> <% if defined?(EasyExtensions) %>
<%= link_to '', '#', title: l(:button_actions), <%= link_to '', '#', title: l(:button_actions),
class: 'icon-only icon-actions js-contextmenu icon-more-horiz', class: 'icon-only icon-actions js-contextmenu icon-more-horiz',