From 0add714cbd049592e938dc923069d15542b2d6d8 Mon Sep 17 00:00:00 2001 From: "vit.jonas@gmail.com" Date: Sat, 21 May 2011 15:44:07 +0000 Subject: [PATCH] * folder validation completed * fixed Issue 18: DMSF menu is not always selected git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@67 5e329b0b-a2ee-ea63-e329-299493fc886d --- app/controllers/dmsf_detail_controller.rb | 6 ++++++ app/controllers/dmsf_state_controller.rb | 2 ++ app/models/dmsf_file.rb | 3 +++ app/models/dmsf_folder.rb | 7 +++++++ 4 files changed, 18 insertions(+) diff --git a/app/controllers/dmsf_detail_controller.rb b/app/controllers/dmsf_detail_controller.rb index f59659c0..689699ec 100644 --- a/app/controllers/dmsf_detail_controller.rb +++ b/app/controllers/dmsf_detail_controller.rb @@ -19,6 +19,8 @@ class DmsfDetailController < ApplicationController unloadable + menu_item :dmsf + before_filter :find_project before_filter :authorize before_filter :find_parent, :only => [:folder_new, :create_folder, :save_folder] @@ -52,6 +54,10 @@ class DmsfDetailController < ApplicationController end def save_folder + unless params[:dmsf_folder] + redirect_to :controller => "dmsf", :action => "index", :id => @project, :folder_id => @folder + return + end @pathfolder = copy_folder(@folder) @folder.attributes = params[:dmsf_folder] if @folder.save diff --git a/app/controllers/dmsf_state_controller.rb b/app/controllers/dmsf_state_controller.rb index ef05e34f..bdf684e2 100644 --- a/app/controllers/dmsf_state_controller.rb +++ b/app/controllers/dmsf_state_controller.rb @@ -19,6 +19,8 @@ class DmsfStateController < ApplicationController unloadable + menu_item :dmsf + before_filter :find_project before_filter :authorize before_filter :find_folder, :only => [:folder_notify_activate, :folder_notify_deactivate] diff --git a/app/models/dmsf_file.rb b/app/models/dmsf_file.rb index 75f74093..c8478965 100644 --- a/app/models/dmsf_file.rb +++ b/app/models/dmsf_file.rb @@ -36,6 +36,9 @@ class DmsfFile < ActiveRecord::Base belongs_to :deleted_by_user, :class_name => "User", :foreign_key => "deleted_by_user_id" validates_presence_of :name + validates_format_of :name, :with => DmsfFolder.invalid_characters, + :message => "contains invalid character(s)" + validate_on_create :validates_name_uniqueness def validates_name_uniqueness diff --git a/app/models/dmsf_folder.rb b/app/models/dmsf_folder.rb index 98bb6973..f7f6a954 100644 --- a/app/models/dmsf_folder.rb +++ b/app/models/dmsf_folder.rb @@ -18,6 +18,10 @@ class DmsfFolder < ActiveRecord::Base unloadable + + cattr_reader :invalid_characters + @@invalid_characters = /\A[^\/\\\?":<>]*\z/ + belongs_to :project belongs_to :folder, :class_name => "DmsfFolder", :foreign_key => "dmsf_folder_id" has_many :subfolders, :class_name => "DmsfFolder", :foreign_key => "dmsf_folder_id", :order => "name ASC" @@ -28,6 +32,9 @@ class DmsfFolder < ActiveRecord::Base validates_presence_of :name validates_uniqueness_of :name, :scope => [:dmsf_folder_id, :project_id] + validates_format_of :name, :with => @@invalid_characters, + :message => "contains invalid character(s)" + validate :check_cycle def check_cycle