From 5c9dab0163217fe428cfdb21cf80a73960dc788a Mon Sep 17 00:00:00 2001 From: yasushiito Date: Wed, 16 Apr 2014 11:11:12 +0900 Subject: [PATCH] add folder --- Gemfile | 1 + app/assets/javascripts/folders.js.coffee | 3 +++ app/assets/stylesheets/folders.css.scss | 3 +++ app/controllers/folders_controller.rb | 32 +++++++++++++++++++++++++++++ app/helpers/folders_helper.rb | 2 ++ app/models/folder.rb | 17 +++++++++++++++ db/migrate/20140415021754_create_folders.rb | 17 +++++++++++++++ spec/controllers/folders_controller_spec.rb | 5 +++++ spec/helpers/folders_helper_spec.rb | 15 ++++++++++++++ spec/models/folder_spec.rb | 5 +++++ 10 files changed, 100 insertions(+) create mode 100644 app/assets/javascripts/folders.js.coffee create mode 100644 app/assets/stylesheets/folders.css.scss create mode 100644 app/controllers/folders_controller.rb create mode 100644 app/helpers/folders_helper.rb create mode 100644 app/models/folder.rb create mode 100644 db/migrate/20140415021754_create_folders.rb create mode 100644 spec/controllers/folders_controller_spec.rb create mode 100644 spec/helpers/folders_helper_spec.rb create mode 100644 spec/models/folder_spec.rb diff --git a/Gemfile b/Gemfile index baf7f925..21d79f0f 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,7 @@ gem 'backbone-rails' gem 'kaminari' gem 'sanitize' gem 'aws-s3' +gem 'awesome_nested_set' gem 'validates_existence' gem "validate_url" gem "pettanr_creative_commons_v30_licenses" diff --git a/app/assets/javascripts/folders.js.coffee b/app/assets/javascripts/folders.js.coffee new file mode 100644 index 00000000..76156794 --- /dev/null +++ b/app/assets/javascripts/folders.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ diff --git a/app/assets/stylesheets/folders.css.scss b/app/assets/stylesheets/folders.css.scss new file mode 100644 index 00000000..1dea7914 --- /dev/null +++ b/app/assets/stylesheets/folders.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the folders controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/folders_controller.rb b/app/controllers/folders_controller.rb new file mode 100644 index 00000000..318f1c84 --- /dev/null +++ b/app/controllers/folders_controller.rb @@ -0,0 +1,32 @@ +class FoldersController < ApplicationController + if Manifest.manifest.magic_numbers['run_mode'] == 0 + before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy] + else + before_filter :authenticate_reader, :only => [:index, :show] + before_filter :authenticate_admin, :only => [:new, :create, :edit, :update, :destroy] + end + + def self.model + Folder + end + + def index + filer_list + end + + def show_html_format format + format.html { + @folder = @item + } + end + + def show + set_show + respond_to do |format| + show_html_format format + show_prof_format format + show_json_format format + end + end + +end diff --git a/app/helpers/folders_helper.rb b/app/helpers/folders_helper.rb new file mode 100644 index 00000000..d27e7b4f --- /dev/null +++ b/app/helpers/folders_helper.rb @@ -0,0 +1,2 @@ +module FoldersHelper +end diff --git a/app/models/folder.rb b/app/models/folder.rb new file mode 100644 index 00000000..c3c8673c --- /dev/null +++ b/app/models/folder.rb @@ -0,0 +1,17 @@ +class Folder < Peta::Item + acts_as_nested_set + + validates :controller_name, :length => {:maximum => 200} + validates :action_name, :length => {:maximum => 200} + validates :category_id, :presence => true, :numericality => true + validates :t, :presence => true, :numericality => true + + def self.generate + if self.root + else + self.create :category_id => 0 + end + + end + +end diff --git a/db/migrate/20140415021754_create_folders.rb b/db/migrate/20140415021754_create_folders.rb new file mode 100644 index 00000000..265e3790 --- /dev/null +++ b/db/migrate/20140415021754_create_folders.rb @@ -0,0 +1,17 @@ +class CreateFolders < ActiveRecord::Migration + def change + create_table :folders do |t| + t.string :controller_name, :null => false + t.string :action_name, :null => false + t.integer :category_id, :null => false, :default => 0 + t.integer :t, :null => false, :default => 0 + t.integer :parent_id + t.integer :lft + t.integer :rgt + t.integer :depth # this is optional. + + t.timestamps + end + add_index :folders , [:rgt] + end +end diff --git a/spec/controllers/folders_controller_spec.rb b/spec/controllers/folders_controller_spec.rb new file mode 100644 index 00000000..b43fe5c4 --- /dev/null +++ b/spec/controllers/folders_controller_spec.rb @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe FoldersController do + +end diff --git a/spec/helpers/folders_helper_spec.rb b/spec/helpers/folders_helper_spec.rb new file mode 100644 index 00000000..7f196678 --- /dev/null +++ b/spec/helpers/folders_helper_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +# Specs in this file have access to a helper object that includes +# the FoldersHelper. For example: +# +# describe FoldersHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# helper.concat_strings("this","that").should == "this that" +# end +# end +# end +describe FoldersHelper do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/folder_spec.rb b/spec/models/folder_spec.rb new file mode 100644 index 00000000..e8035fd6 --- /dev/null +++ b/spec/models/folder_spec.rb @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe Folder do + pending "add some examples to (or delete) #{__FILE__}" +end -- 2.11.0