Add move operation for documents plugin
This commit is contained in:
parent
3fb3fa409b
commit
3a4519757e
10 changed files with 41 additions and 0 deletions
|
@ -1714,6 +1714,7 @@ de:
|
||||||
delete: Löschen
|
delete: Löschen
|
||||||
download: Herunterladen
|
download: Herunterladen
|
||||||
edit: Bearbeiten
|
edit: Bearbeiten
|
||||||
|
move: Verschieben
|
||||||
or_cancel: oder abbrechen
|
or_cancel: oder abbrechen
|
||||||
please_wait: Bitte warten...
|
please_wait: Bitte warten...
|
||||||
restore: Wiederherstellen
|
restore: Wiederherstellen
|
||||||
|
|
|
@ -1772,6 +1772,7 @@ en:
|
||||||
marks:
|
marks:
|
||||||
close: "×"
|
close: "×"
|
||||||
success: <i class="icon icon-ok"></i>
|
success: <i class="icon icon-ok"></i>
|
||||||
|
move: Move
|
||||||
or_cancel: or cancel
|
or_cancel: or cancel
|
||||||
please_wait: Please wait...
|
please_wait: Please wait...
|
||||||
restore: Restore
|
restore: Restore
|
||||||
|
|
|
@ -43,6 +43,14 @@ class DocumentsController < ApplicationController
|
||||||
redirect_to @document.parent || documents_path, alert: t('.error', error: error.message)
|
redirect_to @document.parent || documents_path, alert: t('.error', error: error.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@document = Document.find(params[:id])
|
||||||
|
@document.update_attribute(:parent_id, params[:parent_id])
|
||||||
|
redirect_to @document.parent || documents_path, notice: t('.notice')
|
||||||
|
rescue => error
|
||||||
|
redirect_to @document.parent || documents_path, alert: t('errors.general_msg', msg: error.message)
|
||||||
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@document = Document.find(params[:id])
|
@document = Document.find(params[:id])
|
||||||
if @document.created_by == current_user or current_user.role_admin?
|
if @document.created_by == current_user or current_user.role_admin?
|
||||||
|
@ -65,6 +73,10 @@ class DocumentsController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def move
|
||||||
|
@document = Document.find(params[:document_id])
|
||||||
|
end
|
||||||
|
|
||||||
def allowed_mime?(mime)
|
def allowed_mime?(mime)
|
||||||
whitelist = FoodsoftConfig[:documents_allowed_extension].split
|
whitelist = FoodsoftConfig[:documents_allowed_extension].split
|
||||||
MIME::Types.type_for(whitelist).each do |type|
|
MIME::Types.type_for(whitelist).each do |type|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
class Document < ApplicationRecord
|
class Document < ApplicationRecord
|
||||||
include ActsAsTree
|
include ActsAsTree
|
||||||
|
extend ActsAsTree::TreeWalker
|
||||||
|
|
||||||
belongs_to :created_by, class_name: 'User', foreign_key: 'created_by_user_id'
|
belongs_to :created_by, class_name: 'User', foreign_key: 'created_by_user_id'
|
||||||
|
|
||||||
|
|
|
@ -16,5 +16,6 @@
|
||||||
%td= h show_user(document.created_by)
|
%td= h show_user(document.created_by)
|
||||||
%td
|
%td
|
||||||
- if document.created_by == current_user or current_user.role_admin?
|
- if document.created_by == current_user or current_user.role_admin?
|
||||||
|
= link_to t('ui.move'), document_move_path(document), remote: true, class: 'btn btn-mini'
|
||||||
= link_to t('ui.delete'), document, :method => :delete, :data => {:confirm => t('ui.confirm_delete', name: document.name)},
|
= link_to t('ui.delete'), document, :method => :delete, :data => {:confirm => t('ui.confirm_delete', name: document.name)},
|
||||||
class: 'btn btn-mini btn-danger'
|
class: 'btn btn-mini btn-danger'
|
||||||
|
|
12
plugins/documents/app/views/documents/_move.html.haml
Normal file
12
plugins/documents/app/views/documents/_move.html.haml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
.modal-header
|
||||||
|
= close_button :modal
|
||||||
|
%h3= t('.title')
|
||||||
|
.modal-body
|
||||||
|
= link_to t('.root_folder'), document_path(@document, parent_id: nil), method: :patch
|
||||||
|
- Document.walk_tree do |document, level|
|
||||||
|
- if document.folder?
|
||||||
|
%br
|
||||||
|
= (' ' * 2 * (level + 1)).html_safe
|
||||||
|
= link_to document.name, document_path(@document, parent_id: document.id), method: :patch
|
||||||
|
.modal-footer
|
||||||
|
= link_to t('ui.close'), '#', class: 'btn', data: {dismiss: 'modal'}
|
2
plugins/documents/app/views/documents/move.js.haml
Normal file
2
plugins/documents/app/views/documents/move.js.haml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
$('#modalContainer').html('#{j(render("move"))}');
|
||||||
|
$('#modalContainer').modal();
|
|
@ -32,3 +32,8 @@ de:
|
||||||
new: Neues Dokument anlegen
|
new: Neues Dokument anlegen
|
||||||
new_folder: Neuen Ordner anlegen
|
new_folder: Neuen Ordner anlegen
|
||||||
title: Dokumente
|
title: Dokumente
|
||||||
|
move:
|
||||||
|
root_folder: Start
|
||||||
|
title: Verschieben
|
||||||
|
update:
|
||||||
|
notice: Dokument oder Ordner wurde verschoben
|
||||||
|
|
|
@ -33,3 +33,8 @@ en:
|
||||||
new: Upload new document
|
new: Upload new document
|
||||||
new_folder: Create new folder
|
new_folder: Create new folder
|
||||||
title: Documents
|
title: Documents
|
||||||
|
move:
|
||||||
|
root_folder: Start
|
||||||
|
title: Move
|
||||||
|
update:
|
||||||
|
notice: Document or folder was moved
|
||||||
|
|
|
@ -3,6 +3,7 @@ Rails.application.routes.draw do
|
||||||
scope '/:foodcoop' do
|
scope '/:foodcoop' do
|
||||||
|
|
||||||
resources :documents do
|
resources :documents do
|
||||||
|
get :move
|
||||||
get :new
|
get :new
|
||||||
get :new_folder
|
get :new_folder
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue