diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb
index 29527b57..d8d59f52 100644
--- a/app/controllers/admin/tags_controller.rb
+++ b/app/controllers/admin/tags_controller.rb
@@ -23,7 +23,7 @@ class Admin::TagsController < ApplicationController
@tag = Tag.create(params[:tag])
else
module_app = ModuleApp.find(params[:tag][:module_app_id])
- @tag = eval("#{module_app.key.capitalize}Tag").create(params[:tag])
+ @tag = eval("#{module_app.key.camelize}Tag").create(params[:tag])
end
end
diff --git a/vendor/built_in_modules/announcement/app/models/bulletin - 複製.rb b/vendor/built_in_modules/announcement/app/models/bulletin - 複製.rb
new file mode 100644
index 00000000..c65e65f7
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/models/bulletin - 複製.rb
@@ -0,0 +1,101 @@
+# encoding: utf-8
+
+class Bulletin
+ include Mongoid::Document
+ include Mongoid::Timestamps
+ include Mongoid::MultiParameterAttributes
+
+ # field :category_id, :type => Integer
+ field :title
+ # has_one :title_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ # has_one :subtitle_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ # has_one :text_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ field :subtitle
+ field :text
+ field :postdate , :type => Date
+ field :deadline , :type => Date
+ # field :url
+ field :create_user_id
+ field :update_user_id
+
+ field :is_top, :type => Boolean, :default => false
+
+ mount_uploader :image, ImageUploader
+
+ belongs_to :bulletin_category
+
+ embeds_many :bulletin_links, :cascade_callbacks => true
+ embeds_many :bulletin_files, :cascade_callbacks => true
+
+ # has_many :bulletin_files, :autosave => true, :dependent => :destroy
+
+ accepts_nested_attributes_for :bulletin_files, :allow_destroy => true
+ accepts_nested_attributes_for :bulletin_links, :allow_destroy => true
+
+ # validates_presence_of :title_variable
+ validates_presence_of :title
+
+ after_save :save_bulletin_links
+ after_save :save_bulletin_files
+
+
+ def self.search( search = nil, category_id = nil )
+
+ if category_id.to_s.size > 0 and search.to_s.size > 0
+
+ key = /#{search}/
+
+ find(:all, :conditions => {title: key, bulletin_category_id: category_id}).desc( :is_top, :postdate )
+
+ elsif category_id.to_s.size > 0 and search.to_s.size < 1
+
+ find(:all, :conditions => {bulletin_category_id: category_id}).desc( :is_top, :postdate )
+
+ elsif search.to_s.size > 0 and category_id.to_s.size < 1
+
+ key = /#{search}/
+
+ find(:all, :conditions => {title: key}).desc( :is_top, :postdate )
+ else
+
+ find(:all).desc( :is_top, :postdate)
+
+ end
+
+ end
+
+
+ def self.widget_datas
+
+ date_now = Time.now
+
+ # find(:all, :conditions => {:postdate => {"$lte" => Date.today}, deadline: nil} ).desc( :is_top, :postdate)
+ # where( :postdate.lte => date_now ).where( :deadline => nil ).desc(:is_top, :postdate)
+ # any_of({ :title => "test" },{:deadline => nil, :title => "123"})
+ any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).limit(5)
+
+
+ end
+
+
+ def is_top?
+ self.is_top
+ end
+
+ def save_bulletin_links
+ self.bulletin_links.each do |t|
+ if t.should_destroy
+ t.destroy
+ end
+ end
+ end
+
+ def save_bulletin_files
+ self.bulletin_files.each do |t|
+ if t.should_destroy
+ t.destroy
+ end
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html - 複製.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html - 複製.erb
new file mode 100644
index 00000000..2c4cd153
--- /dev/null
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html - 複製.erb
@@ -0,0 +1,42 @@
+
+
+<% if @bulletin and !@bulletin.nil? %>
+
+
+
<%= @bulletin.title %>
+
<%= @bulletin.subtitle %>
+ <%= link_to "read more >",panel_announcement_front_end_bulletin_path(@bulletin.id) %>
+
read more >
+
+
+<% end %>
+
+<% if @bulletins and !@bulletins.nil? %>
+
+
+
news
+
+ <% @bulletins.each do |post| %>
+ <%= post.postdate.to_s.gsub("-", "") %> <%= link_to post.title,panel_announcement_front_end_bulletin_path(post) %>
+ <% end %>
+
+<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %>
+
read more >
+
+
+
+
news
+
+ <% @bulletins.each do |post| %>
+
+ <%= image_tag(post.image.url, :size => "160x140") if post.image.file %>
+ <%= post.title %>
+ <%= post.subtitle %>
+
+ <% end %>
+
+<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %>
+
read more >
+
+
+<% end %>
diff --git a/vendor/built_in_modules/web_resource/.gitignore b/vendor/built_in_modules/web_resource/.gitignore
new file mode 100644
index 00000000..1463de6d
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/.gitignore
@@ -0,0 +1,6 @@
+.bundle/
+log/*.log
+pkg/
+test/dummy/db/*.sqlite3
+test/dummy/log/*.log
+test/dummy/tmp/
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/Gemfile b/vendor/built_in_modules/web_resource/Gemfile
new file mode 100644
index 00000000..3dd698e7
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/Gemfile
@@ -0,0 +1,17 @@
+source "http://rubygems.org"
+
+# Declare your gem's dependencies in web_resource.gemspec.
+# Bundler will treat runtime dependencies like base dependencies, and
+# development dependencies will be added by default to the :development group.
+gemspec
+
+# jquery-rails is used by the dummy application
+gem "jquery-rails"
+
+# Declare any dependencies that are still in development here instead of in
+# your gemspec. These might include edge Rails or gems from your path or
+# Git. Remember to move these dependencies to your gemspec before releasing
+# your gem to rubygems.org.
+
+# To use debugger
+# gem 'ruby-debug19', :require => 'ruby-debug'
diff --git a/vendor/built_in_modules/web_resource/MIT-LICENSE b/vendor/built_in_modules/web_resource/MIT-LICENSE
new file mode 100644
index 00000000..406f17b7
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/MIT-LICENSE
@@ -0,0 +1,20 @@
+Copyright 2012 YOURNAME
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/built_in_modules/web_resource/README.rdoc b/vendor/built_in_modules/web_resource/README.rdoc
new file mode 100644
index 00000000..2764e5c7
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/README.rdoc
@@ -0,0 +1,3 @@
+= WebResource
+
+This project rocks and uses MIT-LICENSE.
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/Rakefile b/vendor/built_in_modules/web_resource/Rakefile
new file mode 100644
index 00000000..d5065a39
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/Rakefile
@@ -0,0 +1,39 @@
+#!/usr/bin/env rake
+begin
+ require 'bundler/setup'
+rescue LoadError
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
+end
+begin
+ require 'rdoc/task'
+rescue LoadError
+ require 'rdoc/rdoc'
+ require 'rake/rdoctask'
+ RDoc::Task = Rake::RDocTask
+end
+
+RDoc::Task.new(:rdoc) do |rdoc|
+ rdoc.rdoc_dir = 'rdoc'
+ rdoc.title = 'WebResource'
+ rdoc.options << '--line-numbers'
+ rdoc.rdoc_files.include('README.rdoc')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+end
+
+APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
+load 'rails/tasks/engine.rake'
+
+
+Bundler::GemHelper.install_tasks
+
+require 'rake/testtask'
+
+Rake::TestTask.new(:test) do |t|
+ t.libs << 'lib'
+ t.libs << 'test'
+ t.pattern = 'test/**/*_test.rb'
+ t.verbose = false
+end
+
+
+task :default => :test
diff --git a/vendor/built_in_modules/web_resource/app/assets/images/web_resource/.gitkeep b/vendor/built_in_modules/web_resource/app/assets/images/web_resource/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/assets/javascripts/web_resource/.gitkeep b/vendor/built_in_modules/web_resource/app/assets/javascripts/web_resource/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/.gitkeep b/vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/controllers/.gitkeep b/vendor/built_in_modules/web_resource/app/controllers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/controllers/application_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/application_controller.rb
new file mode 100644
index 00000000..307a4acd
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/controllers/application_controller.rb
@@ -0,0 +1,23 @@
+class ApplicationController < ActionController::Base
+ protect_from_forgery
+ before_filter :set_locale
+
+ # Set I18n.locale
+ def set_locale
+ # update session if passed
+ session[:locale] = params[:locale] if params[:locale]
+
+ # set locale based on session or default
+ begin
+ # check if locale is valid for non site pages
+ if !VALID_LOCALES.include?(session[:locale])
+ I18n.locale = I18n.default_locale
+ else
+ I18n.locale = session[:locale]
+ end
+ rescue
+ I18n.locale = I18n.default_locale
+ end
+ end
+
+end
diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/tags_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/tags_controller.rb
new file mode 100644
index 00000000..5ea3562a
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/tags_controller.rb
@@ -0,0 +1,8 @@
+class Panel::WebResource::BackEnd::TagsController < Admin::TagsController
+
+ def initialize
+ super
+ @app_title = 'web_resource'
+ end
+
+end
diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_link_categorys_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_link_categorys_controller.rb
new file mode 100644
index 00000000..3db38add
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_link_categorys_controller.rb
@@ -0,0 +1,112 @@
+class Panel::WebResource::BackEnd::WebLinkCategorysController < ApplicationController
+
+ layout 'admin'
+
+ def index
+ @web_link_categorys = WebLinkCategory.all
+ @web_link_category = WebLinkCategory.new(:display => 'List')
+
+ @url = panel_web_resource_back_end_web_link_categorys_path
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.js
+ end
+ end
+
+ # GET /web_links/1
+ # GET /web_links/1.xml
+ def show
+ @web_link_category = WebLinkCategory.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.js
+ end
+ end
+
+ # GET /web_links/new
+ # GET /web_links/new.xml
+ def new
+ @web_link_category = WebLinkCategory.new(:display => 'List')
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.js
+ end
+ end
+
+ def quick_edit
+ # debugger
+
+ @web_link_category = WebLinkCategory.find(params[:web_link_category_id])
+
+ @url = panel_web_resource_back_end_web_link_category_path(@web_link_category)
+
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ # GET /web_links/1/edit
+ def edit
+ @web_link_category = WebLinkCategory.find(params[:id])
+ @i18n_variable = @web_link_category.i18n_variable
+
+ @url = panel_web_resource_back_end_web_link_category_path(@web_link_category)
+
+ respond_to do |format|
+ format.html
+ format.js
+ end
+ end
+
+ # POST /web_links
+ # POST /web_links.xml
+ def create
+ @web_link_category = WebLinkCategory.new(params[:web_link_category])
+
+ respond_to do |format|
+ if @web_link_category.save
+ format.html { redirect_to(panel_web_resource_back_end_web_link_categorys_url, :notice => t('web_link_category.create_web_link_category_success')) }
+ format.js
+ else
+ format.html { render :action => "new" }
+ format.js { render action: "new" }
+ end
+ end
+ end
+
+ # PUT /web_links/1
+ # PUT /web_links/1.xml
+ def update
+ @web_link_category = WebLinkCategory.find(params[:id])
+
+ @url = panel_web_resource_back_end_web_link_category_path(@web_link_category)
+
+ respond_to do |format|
+ if @web_link_category.update_attributes(params[:web_link_category])
+ format.html { redirect_to(panel_web_resource_back_end_web_link_categorys_url, :notice => t('web_link_category.update_web_link_category_success')) }
+ # format.xml { head :ok }
+ format.js
+ else
+ format.html { render :action => "edit" }
+ format.js { render :action => "edit" }
+ end
+ end
+ end
+
+ # DELETE /web_links/1
+ # DELETE /web_links/1.xml
+ def destroy
+ @web_link_category = WebLinkCategory.find(params[:id])
+ @web_link_category.destroy
+
+ respond_to do |format|
+ format.html { redirect_to(panel_web_resource_back_end_web_link_categorys_url) }
+ # format.xml { head :ok }
+ format.js
+ end
+ end
+end
diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb
new file mode 100644
index 00000000..9cdcd0a2
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb
@@ -0,0 +1,109 @@
+class Panel::WebResource::BackEnd::WebLinksController < ApplicationController
+
+
+ layout 'admin'
+
+ before_filter :authenticate_user!
+ before_filter :is_admin?
+
+ def index
+
+ get_categorys(params[:web_link_category_id])
+
+ @web_links = WebLink.search(params[:search],params[:category_id])
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.xml { render :xml => @web_links }
+ end
+ end
+
+ # GET /web_links/1
+ # GET /web_links/1.xml
+ def show
+ @web_link = WebLink.find(params[:id])
+ # get_categorys
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.xml { render :xml => @web_link }
+ end
+ end
+
+ # GET /web_links/new
+ # GET /web_links/new.xml
+ def new
+ @web_link = WebLink.new
+
+ get_categorys
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.xml { render :xml => @web_link }
+ end
+ end
+
+ # GET /web_links/1/edit
+ def edit
+ @web_link = WebLink.find(params[:id])
+ get_categorys
+ end
+
+ # POST /web_links
+ # POST /web_links.xml
+ def create
+ @web_link = WebLink.new(params[:web_link])
+
+ @web_link.create_user_id = current_user.id
+ @web_link.update_user_id = current_user.id
+
+ respond_to do |format|
+ if @web_link.save
+ format.html { redirect_to(panel_web_resource_back_end_web_links_url, :notice => t('web_resource.create_web_resource_success')) }
+ format.xml { render :xml => @web_link, :status => :created, :location => @web_link }
+ else
+ format.html { render :action => "new" }
+ format.xml { render :xml => @web_link.errors, :status => :unprocessable_entity }
+ end
+ end
+ end
+
+ # PUT /web_links/1
+ # PUT /web_links/1.xml
+ def update
+ @web_link = WebLink.find(params[:id])
+
+ @web_link.update_user_id = current_user.id
+
+ respond_to do |format|
+ if @web_link.update_attributes(params[:web_link])
+ format.html { redirect_to(panel_web_resource_back_end_web_links_url, :notice => t('web_resource.update_web_resource_success')) }
+ format.js { render 'toggle_enable' }
+ format.xml { head :ok }
+ else
+ format.html { render :action => "edit" }
+ format.xml { render :xml => @web_link.errors, :status => :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /web_links/1
+ # DELETE /web_links/1.xml
+ def destroy
+ @web_link = WebLink.find(params[:id])
+ @web_link.destroy
+
+ respond_to do |format|
+ format.html { redirect_to(panel_web_resource_back_end_web_links_url) }
+ # format.xml { head :ok }
+ format.js
+ end
+ end
+
+ protected
+
+ def get_categorys(id = nil)
+ @web_link_categorys = (id ? WebLinkCategory.find(id).to_a : WebLinkCategory.excludes('disabled' => true))
+ end
+
+end
diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb
new file mode 100644
index 00000000..e7400b27
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb
@@ -0,0 +1,34 @@
+class Panel::WebResource::FrontEnd::WebLinksController < ObitWidgetController
+
+ def initialize
+ super
+ @app_title = NewBlog::MOUDLEAPP_TITLE
+ end
+
+ # GET /web_links
+ # GET /web_links.xml
+
+ def index
+
+ date_now = Time.now
+
+ # @web_links = WebLink.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(1)
+
+ @web_links = WebLink.desc("is_top").page( params[:page])
+
+ get_categorys
+ end
+
+ def show
+ @web_link = WebLink.find(params[:id])
+ get_categorys
+ end
+
+
+ protected
+
+ def get_categorys
+ @web_link_categorys = WebLinkCategory.excludes('disabled' => true)
+ end
+
+end
diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb
new file mode 100644
index 00000000..5ba9ffc0
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb
@@ -0,0 +1,30 @@
+class Panel::Announcement::Widget::BulletinsController < ObitWidgetController
+
+ def initialize
+ super
+ @app_title = NewBlog::MOUDLEAPP_TITLE
+ end
+
+ # GET /bulletins
+ # GET /bulletins.xml
+
+ def index
+
+ # deadline
+
+ @bulletin = Bulletin.where( :postdate.lte => Date.today ).desc(:is_top, :postdate).first
+
+ @bulletins = Bulletin.widget_datas
+
+ get_categorys
+
+ end
+
+
+ protected
+
+ def get_categorys
+ @bulletin_categorys = BulletinCategory.excludes('disabled' => true)
+ end
+
+end
diff --git a/vendor/built_in_modules/web_resource/app/helpers/.gitkeep b/vendor/built_in_modules/web_resource/app/helpers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/mailers/.gitkeep b/vendor/built_in_modules/web_resource/app/mailers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/models/.gitkeep b/vendor/built_in_modules/web_resource/app/models/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/models/web_link.rb b/vendor/built_in_modules/web_resource/app/models/web_link.rb
new file mode 100644
index 00000000..364713a6
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/models/web_link.rb
@@ -0,0 +1,93 @@
+# encoding: utf-8
+
+class WebLink
+ include Mongoid::Document
+ include Mongoid::Timestamps
+ include Mongoid::MultiParameterAttributes
+
+
+ has_one :name, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+ has_one :context, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
+
+ has_and_belongs_to_many :tags, :class_name => "WebResourceTag"
+
+ field :url
+ field :create_user_id
+ field :update_user_id
+
+ field :is_top, :type => Boolean, :default => false
+ field :is_hot, :type => Boolean, :default => false
+ field :is_hidden, :type => Boolean, :default => false
+
+ belongs_to :web_link_category
+
+ validates_presence_of :name
+
+ before_save :set_key
+
+ def self.search( search = nil, category_id = nil )
+
+ if category_id.to_s.size > 0 and search.to_s.size > 0
+
+ key = /#{search}/
+
+ find(:all, :conditions => {name: key, web_resource_category_id: category_id}).desc( :is_top, :postdate )
+
+ elsif category_id.to_s.size > 0 and search.to_s.size < 1
+
+ find(:all, :conditions => {web_resource_category_id: category_id}).desc( :is_top, :postdate )
+
+ elsif search.to_s.size > 0 and category_id.to_s.size < 1
+
+ key = /#{search}/
+
+ find(:all, :conditions => {name: key}).desc( :is_top, :postdate )
+ else
+
+ find(:all).desc( :is_top, :postdate)
+
+ end
+
+ end
+
+
+ def self.widget_datas
+
+ date_now = Time.now
+
+ # find(:all, :conditions => {:postdate => {"$lte" => Date.today}, deadline: nil} ).desc( :is_top, :postdate)
+ # where( :postdate.lte => date_now ).where( :deadline => nil ).desc(:is_top, :postdate)
+ # any_of({ :name => "test" },{:deadline => nil, :name => "123"})
+ any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate)
+
+
+ end
+
+ def is_top?
+ self.is_top
+ end
+
+ def name
+ @name ||= I18nVariable.first(:conditions => {:key => 'name', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ def context
+ @context ||= I18nVariable.first(:conditions => {:key => 'context', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ def text
+ @text ||= I18nVariable.first(:conditions => {:key => 'text', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
+ end
+
+ protected
+
+ def set_key
+ if name.new_record?
+ name.key = 'name'
+ end
+ if context.new_record?
+ context.key = 'context'
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/models/web_link_category.rb b/vendor/built_in_modules/web_resource/app/models/web_link_category.rb
new file mode 100644
index 00000000..c2a95f4b
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/models/web_link_category.rb
@@ -0,0 +1,14 @@
+# encoding: utf-8
+
+class WebLinkCategory
+ include Mongoid::Document
+ include Mongoid::Timestamps
+ # include Mongoid::MultiParameterAttributes
+
+ field :key
+
+ has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
+
+ has_many :web_links
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb b/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb
new file mode 100644
index 00000000..724075cd
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb
@@ -0,0 +1,5 @@
+class WebResourceTag < Tag
+
+ has_and_belongs_to_many :web_resources
+
+end
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/.gitkeep b/vendor/built_in_modules/web_resource/app/views/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/_form.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/_form.html.erb
new file mode 100644
index 00000000..7eb698ea
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/_form.html.erb
@@ -0,0 +1,26 @@
+<% # encoding: utf-8 %>
+
+<%= form_for(@web_link_category, :remote => true, :url => @url) do |f| %>
+<%#= form_for(@web_link_category, :remote => true, :url => panel_web_resource_back_end_web_link_category_path(@web_link_category)) do |f| %>
+
+
+ <%= f.label :key %>
+ <%= f.text_field :key %>
+
+
+
+ <%= f.label :name %>
+ <%= f.fields_for :i18n_variable, (@web_link_category.new_record? ? @web_link_category.build_i18n_variable : @web_link_category.i18n_variable) do |f| %>
+ <% @site_valid_locales.each do |locale| %>
+ <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+ <%= f.text_field locale, :style => "width:130px" %>
+ <% end %>
+ <% end %>
+
+
+
+ <%= f.submit %>
+
+
+<% end %>
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/_web_link_category.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/_web_link_category.html.erb
new file mode 100644
index 00000000..d6e27e8d
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/_web_link_category.html.erb
@@ -0,0 +1,12 @@
+
+
+ <%= web_link_category.key %>
+ <% @site_valid_locales.each do |locale| %>
+ <%= web_link_category.i18n_variable[locale] rescue nil %>
+ <% end %>
+
+ <%= link_to t('web_link_category.edit'), edit_panel_web_resource_back_end_web_link_category_path(web_link_category), :remote => true %> |
+ <%= link_to t('web_link_category.quick_edit'), panel_web_resource_back_end_web_link_category_quick_edit_path(web_link_category), :remote => true %> |
+ <%= link_to t('web_link_category.delete'), panel_web_resource_back_end_web_link_category_path(web_link_category), :confirm => t('sure?'), :method => :delete, :remote => true %>
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/create.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/create.js.erb
new file mode 100644
index 00000000..de1f5f8f
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/create.js.erb
@@ -0,0 +1,2 @@
+$('<%= j render :partial => 'web_link_category', :collection => [@web_link_category] %>').appendTo('#web_link_categorys').hide().fadeIn();
+$("#new_web_link_category")[0].reset();
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/destroy.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/destroy.js.erb
new file mode 100644
index 00000000..bea99633
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/destroy.js.erb
@@ -0,0 +1 @@
+$("#<%= dom_id @web_link_category %>").remove();
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/edit.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/edit.js.erb
new file mode 100644
index 00000000..eaff01fa
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/edit.js.erb
@@ -0,0 +1 @@
+$("#form > form").replaceWith("<%= j render "form" %>");
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/index.html.erb
new file mode 100644
index 00000000..45842451
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/index.html.erb
@@ -0,0 +1,43 @@
+<% content_for :secondary do %>
+
+
+
+
+
+
+ <%#= link_to t('web_link_category.new_web_resource_class'), new_panel_web_resource_back_end_web_link_category_path, :class => 'seclink1' %>
+
+<% end -%>
+
+<%= flash_messages %>
+
+<%= t('web_link_category.list_web_resource_class') %>
+
+
+
+
+
+
+
+ <%= t('web_link_category.key') %>
+ <% @site_valid_locales.each do |locale| %>
+ <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+ <% end %>
+ <%= t('web_link.action') %>
+
+
+<%# @web_link_categorys.each do |post| %>
+ <%= render :partial => 'web_link_category', :collection => @web_link_categorys %>
+<%# end %>
+
+
+
+
+
+
+
+Add New
+<%= render :partial => "form" %>
+
+
+
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/new.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/new.js.erb
new file mode 100644
index 00000000..40061b9f
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/new.js.erb
@@ -0,0 +1 @@
+$("#form > form").replaceWith("<%= j render "form" %>");
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/quick_edit.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/quick_edit.js.erb
new file mode 100644
index 00000000..82c957e9
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/quick_edit.js.erb
@@ -0,0 +1,3 @@
+$.each($(".quick_edit"),function(obj){ $(this).remove(); });
+$("#<%= dom_id @web_link_category %>").append("<%= j render "form" %>
");
+//$("#form > form").replaceWith("<%= j render "form" %>");
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/update.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/update.js.erb
new file mode 100644
index 00000000..b3a45bd4
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_link_categorys/update.js.erb
@@ -0,0 +1,4 @@
+$("#<%= dom_id @web_link_category %>").replaceWith("<%= j render :partial => 'link_category', :collection => [@web_link_category] %>");
+<% @web_link_category = WebLinkCategory.new(:display => 'List') # reset for new form %>
+$(".edit_web_link_category").replaceWith("<%= j render "form" %>")
+$(".new_web_link_category")[0].reset();
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb
new file mode 100644
index 00000000..e57cba07
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb
@@ -0,0 +1,54 @@
+<% # encoding: utf-8 %>
+
+ <%= f.error_messages %>
+ <%#= debugger %>
+
+
+ <%= f.label :category %>
+ <%= f.select :web_link_category_id, @web_link_categorys.collect {|t| [ t.i18n_variable[I18n.locale], t.id ]} %>
+
+
+
+ <%= f.label :name %>
+ <%= f.fields_for :name, (@web_link.new_record? ? @web_link.build_name : @web_link.name ) do |f| %>
+ <% @site_valid_locales.each do |locale| %>
+
+ <%= I18nVariable.from_locale(locale) %>
+ <%= f.text_field locale %>
+
+ <% end %>
+ <% end %>
+
+
+
+ <%= f.label :url %>
+ <%= f.text_field :url, :size => 60 %>
+
+
+
+ <%= f.label :describe %>
+ <%= f.fields_for :context, (@web_link.new_record? ? @web_link.build_context : @web_link.context ) do |f| %>
+ <% @site_valid_locales.each do |locale| %>
+
+ <%= I18nVariable.from_locale(locale) %>
+ <%= f.text_area locale, :rows => 10, :cols => 40 %>
+
+ <% end %>
+ <% end %>
+
+
+
+ <%= f.label :status %>
+ <%= f.check_box :is_top %><%= t('top') %>
+ <%= f.check_box :is_hot %><%= t('hot') %>
+ <%= f.check_box :is_hidden %><%= t('hidden') %>
+
+
+
+
+
+
+
+ <%= f.submit %>
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_links.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_links.html.erb
new file mode 100644
index 00000000..fae2b22a
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_links.html.erb
@@ -0,0 +1,16 @@
+
+
+
+ <%= post.web_link_category.i18n_variable[I18n.locale] %>
+
+ <%= link_to post.name[I18n.locale], panel_web_resource_back_end_web_link_path(post) %>
+
+
+ <%= link_to t('web_link.edit'), edit_panel_web_resource_back_end_web_link_path(post) %> |
+
+ <%= link_to t(:set_top), eval("panel_web_resource_back_end_web_link_path(post, :authenticity_token => form_authenticity_token, :web_link => {:is_top => true})"), :remote => true, :method => :put, :id => "disable_#{post.id}", :style => "display:#{post.is_top? ? 'none' : ''}", :class => 'switch' %>
+ <%= link_to t(:cancel_top), eval("panel_web_resource_back_end_web_link_path(post, :authenticity_token => form_authenticity_token, :web_link => {:is_top => false})"), :remote => true, :method => :put, :id => "enable_#{post.id}", :style => "display:#{post.is_top? ? '' : 'none'}", :class => 'switch' %>
+
+ | <%= link_to t('web_link.delete'), panel_web_resource_back_end_web_link_path(post), :confirm => t('sure?'), :method => :delete, :remote => true %>
+
+
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/destroy.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/destroy.js.erb
new file mode 100644
index 00000000..05490b09
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/destroy.js.erb
@@ -0,0 +1 @@
+$("#<%= dom_id @bulletin %>").remove();
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb
new file mode 100644
index 00000000..3bf35d16
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb
@@ -0,0 +1,16 @@
+
+
+
+
+
+<%= t('web_resource.editing_web_resource') %>
+
+<%= form_for @web_link, :url => panel_web_resource_back_end_web_link_path(@web_link) do |f| %>
+ <%= render :partial => 'form', :locals => {:f => f} %>
+<% end %>
+
+<%= link_back %>
+
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb
new file mode 100644
index 00000000..5e1fceee
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb
@@ -0,0 +1,58 @@
+<% content_for :secondary do %>
+
+
+
+
+
+
+ <%= link_to t('web_link.new_link'), new_panel_web_resource_back_end_web_link_path %>
+ <%= link_to t('web_link.link_list'), panel_web_resource_back_end_web_links_path %>
+ <%= link_to t('web_link.new_link_class'), panel_web_resource_back_end_web_link_categorys_path %>
+
+<% end -%>
+
+<%= flash_messages %>
+
+
+
+
+
+
+
+ <%= t('web_link.search') %>
+
+ <%= form_for :web_link, :action => 'search', :method => 'get', :url => panel_web_resource_back_end_web_links_path do |f| %>
+
+ <%#= f.select :web_link_category_id, @web_link_categorys.collect {|t| [ t.i18n_variable[I18n.locale], t.id ] },{ :include_blank => t('web_link.select') }%>
+
+ Category <%= select_tag "category_id", options_for_select(@web_link_categorys.collect{|t| [t.i18n_variable[I18n.locale], t.id]}), :prompt => t('web_link.select') %>
+
+ KeyWord <%= text_field_tag :search, params[:search], :id => 'search_field' %>
+
+ <%= submit_tag "Search", :name => nil %>
+
+ <% end %>
+
+
+
+
+
+
+
+<%= t('web_link.list_link') %>
+
+
+
+ <%= t('web_link.status') %>
+ <%= t('web_link.category') %>
+ <%= t('web_link.name') %>
+ <%= t('web_link.action') %>
+
+
+ <% @web_links.each do |post| %>
+ <%= render :partial => 'web_links', :locals => {:post => post} %>
+ <% end %>
+
+
+
+
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb
new file mode 100644
index 00000000..5bc81f44
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb
@@ -0,0 +1,24 @@
+
+
+
+
+
+<% content_for :secondary do %>
+
+ <%= link_to t('web_link.index'), panel_web_resource_back_end_web_links_path, :class => 'seclink2' %>
+
+<% end -%>
+
+<%= flash_messages %>
+<%= t('web_link.new_web_resource') %>
+<%= form_for @web_link, :url => panel_web_resource_back_end_web_links_path do |f| %>
+ <%= render :partial => 'form', :locals => {:f => f} %>
+<% end %>
+
+<%= link_back %>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/show.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/show.html.erb
new file mode 100644
index 00000000..c3ba2c09
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/show.html.erb
@@ -0,0 +1,57 @@
+<% # encoding: utf-8 %>
+
+
+
+
+
+<%= flash_messages %>
+
+
+
+ <%= t('announcement.category') %>
+ <%= @bulletin.bulletin_category.i18n_variable[I18n.locale] %>
+
+
+ <%= t('announcement.postdate') %>
+ <%= @bulletin.postdate %>
+
+
+ <%= t('announcement.title') %>
+ <%= @bulletin.title %>
+
+
+ <%#= image_tag(@bulletin.image.url, :size => "320x240") if @bulletin.image.file %>
+ <%= link_to image_tag(@bulletin.image.url, :size => "320x240"), @bulletin.image.url, {:target => '_blank', :title => @bulletin.image_filename} if @bulletin.image.file %>
+
+
+ <%= t('announcement.subtitle') %>
+ <%= @bulletin.subtitle %>
+
+
+ <%= t('announcement.text') %>
+ <%= @bulletin.text %>
+
+
+
+ <%= t('announcement.link') %>
+ <% @bulletin.bulletin_links.each do | blink | %>
+ <%= link_to blink.name, blink.url, :target => '_blank' %>
+ <% end %>
+
+
+ <%= t('announcement.file') %>
+ <% @bulletin.bulletin_files.each do | bfile | %>
+ <%= link_to bfile.filetitle, bfile.file.url, {:target => '_blank', :title => bfile.description} if bfile.file.file %>
+ <% end %>
+
+
+ <%= t('announcement.撘菔票') %>
+ <%= User.find(@bulletin.create_user_id).name %>
+
+
+ <%= t('announcement.敺靽格寞') %>
+ <%= @bulletin.updated_at %>
+
+
+
+<%= link_back %>
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/toggle_enable.js.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/toggle_enable.js.erb
new file mode 100644
index 00000000..b00cfa07
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/toggle_enable.js.erb
@@ -0,0 +1,3 @@
+$("#enable_<%= @bulletin.id %>").toggle();
+$("#disable_<%= @bulletin.id %>").toggle();
+$("#bulletin_<%= @bulletin.id %>").toggleClass('disable');
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb
new file mode 100644
index 00000000..2c30da53
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb
@@ -0,0 +1,30 @@
+<% # encoding: utf-8 %>
+
+<%= flash_messages %>
+
+<%= paginate @web_links %>
+
+<%= t('web_link.list_web_resource') %>
+
+
+
+
+ <%= t('web_link.category') %>
+ <%= t('web_link.name') %>
+
+
+ <% @web_links.each do |post| %>
+
+ <%= post.web_link_category.i18n_variable[I18n.locale] %>
+
+ <%#= link_to post.name[I18n.locale], panel_web_resource_front_end_web_link_path(post) %>
+ <%= link_to post.name[I18n.locale], post.url, {:target => '_blank', :title => post.name[I18n.locale]} %>
+
+
+
+ <% end %>
+
+
+
+
+
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/show.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/show.html.erb
new file mode 100644
index 00000000..755766fe
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/show.html.erb
@@ -0,0 +1,57 @@
+<% # encoding: utf-8 %>
+
+
+
+
+
+<%= flash_messages %>
+
+
+
+ <%= t('announcement.category') %>
+ <%= @bulletin.bulletin_category.i18n_variable[I18n.locale] %>
+
+
+ <%= t('announcement.postdate') %>
+ <%= @bulletin.postdate %>
+
+
+ <%= t('announcement.title') %>
+ <%= @bulletin.title %>
+
+
+ <%#= image_tag(@bulletin.image.url, :size => "320x240") if @bulletin.image.file %>
+ <%= link_to image_tag(@bulletin.image.url, :size => "320x240"), @bulletin.image.url, {:target => '_blank', :title => @bulletin.image_identifier} if @bulletin.image.file %>
+
+
+ <%= t('announcement.subtitle') %>
+ <%= @bulletin.subtitle %>
+
+
+ <%= t('announcement.text') %>
+ <%= @bulletin.text %>
+
+
+
+ <%= t('announcement.link') %>
+ <% @bulletin.bulletin_links.each do | blink | %>
+ <%= link_to blink.name, blink.url, :target => '_blank' %>
+ <% end %>
+
+
+ <%= t('announcement.file') %>
+ <% @bulletin.bulletin_files.each do | bfile | %>
+ <%= link_to bfile.filetitle, bfile.file.url, {:target => '_blank', :title => bfile.description} if bfile.file.file %>
+ <% end %>
+
+
+ <%= t('announcement.撘菔票') %>
+ <%= User.find(@bulletin.create_user_id).name %>
+
+
+ <%= t('announcement.敺靽格寞') %>
+ <%= @bulletin.updated_at.strftime("%Y-%m-%d %H:%I:%S") %>
+
+
+
+<%#= link_back %>
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb
new file mode 100644
index 00000000..2c4cd153
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb
@@ -0,0 +1,42 @@
+
+
+<% if @bulletin and !@bulletin.nil? %>
+
+
+
<%= @bulletin.title %>
+
<%= @bulletin.subtitle %>
+ <%= link_to "read more >",panel_announcement_front_end_bulletin_path(@bulletin.id) %>
+
read more >
+
+
+<% end %>
+
+<% if @bulletins and !@bulletins.nil? %>
+
+
+
news
+
+ <% @bulletins.each do |post| %>
+ <%= post.postdate.to_s.gsub("-", "") %> <%= link_to post.title,panel_announcement_front_end_bulletin_path(post) %>
+ <% end %>
+
+<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %>
+
read more >
+
+
+
+
news
+
+ <% @bulletins.each do |post| %>
+
+ <%= image_tag(post.image.url, :size => "160x140") if post.image.file %>
+ <%= post.title %>
+ <%= post.subtitle %>
+
+ <% end %>
+
+<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %>
+
read more >
+
+
+<% end %>
diff --git a/vendor/built_in_modules/web_resource/config/locales/en.yml b/vendor/built_in_modules/web_resource/config/locales/en.yml
new file mode 100644
index 00000000..4fcaafe7
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/config/locales/en.yml
@@ -0,0 +1,129 @@
+# Sample localization file for English. Add more files in this directory for other locales.
+# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
+
+en:
+
+ _locale: English
+
+ add: Add
+ back: Back
+ create: Create
+ delete: Delete
+ disable: Disable
+ downloaded: Downloaded
+ download: Download
+ edit: Edit
+ enable: Enable
+ hide: Hide
+ homepage: Homepage
+ no_: "No"
+ nothing: Nothing
+ show: Show
+ sure?: Are you sure?
+ update: Update
+ yes_: "Yes"
+
+ announcement:
+ sure?: Sure?
+
+ # admin:
+ # action: Action
+ # add_language: Add language
+ # admin: Admin
+ # action: Action
+ # announcement: Announcement
+ # asset: Asset
+ # attributes: Attributes
+ # cant_delete_self: You can not delete yourself.
+ # cant_revoke_self_admin: You can not revoke your admin role yourself.
+ # class: Class
+ # content: Content
+ # create_error_link: Error when creating link.
+ # create_error_page: Error when creating page.
+ # create_success_home: Homepage was successfully created.
+ # create_success_layout: Layout was successfully created.
+ # create_success_link: Link was successfully created.
+ # create_success_page: Page was successfully created.
+ # create_success_snippet: Snippet was successfully created.
+ # create_success_user: User was successfully created.
+ # data: Data
+ # delete_language: Delete language
+ # description: Description
+ # design: Design
+ # disable_language: Disable language
+ # editing_home: Editing homepage
+ # editing_layout: Editing layout
+ # editing_link: Editing link
+ # editing_page: Editing page
+ # editing_snippet: Editing snippet
+ # editing_user_info: Editing user information
+ # editing_user_role: Editing user role
+ # email: Email
+ # enable_language: Enable language
+ # file_name: Filename
+ # file_size: File size
+ # format: Format
+ # home: Home
+ # id: ID
+ # info: Information
+ # is_published: Is published
+ # item: Item
+ # key: Key
+ # language: Language
+ # layout: Layout
+ # layout_name: Layout name
+ # list_assets: Assets list
+ # list_designs: Designs list
+ # list_items: Items list
+ # list_puchases: Purchases list
+ # list_snippets: Snippets list
+ # list_users: Users list
+ # list_user_infos: User information list
+ # list_user_roles: User roles list
+ # member: Member
+ # move_down: Move down
+ # move_up: Move up
+ # multilingual: Multilingual
+ # my_avatar: My Avatar
+ # no_home_page: You don't have a homepage
+ # no_layout: You don't have a layout
+ # name: Name
+ # new_asset: New asset
+ # new_component: New component
+ # new_home: New homepage
+ # new_layout: New layout
+ # new_link: New link
+ # new_page: New page
+ # new_snippet: New snippet
+ # new_user: New user
+ # new_user_info: New user information
+ # new_user_role: New user role
+ # non_multilingual: Non multilingual
+ # options: Options
+ # orig_upload_file: Original filename
+ # position: Position
+ # published?: Published?
+ # purchase: Purchase
+ # registered: Registered
+ # role: Role
+ # roles: Roles
+ # title: Title
+ # translation: Translation
+ # type: Type
+ # up_to_date: Up-to-date
+ # update_error_link: Error when updating link.
+ # update_error_page: Error when updating page.
+ # update_success_content: Content was successfully updated.
+ # update_success_home: Homepage was successfully updated.
+ # update_success_layout: Layout was successfully updated.
+ # update_success_link: Link was successfully updated.
+ # update_success_page: Page was successfully updated.
+ # update_success_snippet: Snippet was successfully updated.
+ # update_success_user: User was successfully updated.
+ # url: URL
+ # user: User
+ # user_info: User information
+ # user_panel: User panel
+ # user_role: User role
+
+ panel:
diff --git a/vendor/built_in_modules/web_resource/config/locales/zh_tw.yml b/vendor/built_in_modules/web_resource/config/locales/zh_tw.yml
new file mode 100644
index 00000000..4ef309e6
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/config/locales/zh_tw.yml
@@ -0,0 +1,330 @@
+zh_tw:
+
+ _locale: 銝剜
+
+ add: 啣
+ back:
+ create: 菟
+ delete: 芷
+ disable: 蝳
+ edit: 蝺刻摩
+ enable:
+ hide: 梯
+ homepage: 擐
+ no_: "No"
+ nothing:
+ show: 憿舐內
+ sure?: 刻臬?
+ update: 湔
+ yes_: "Yes"
+
+ admin:
+ action: 銵
+ add_language: 啣隤閮
+ admin: 蝞∠
+ action: 銵
+ announcement: 砍
+ asset: 鞈
+ attributes: 撅祆
+ cant_delete_self: 其臭誑芷方芸楛
+ cant_revoke_self_admin: 其臭誑日瑁芸楛蝞∠雿具
+ class: 蝝
+ content: 批捆
+ create_error_link: 萄遣交粹胯
+ create_error_page: 萄遣X粹胯
+ create_success_home: 擐撌脫萄遣
+ create_success_layout: 璅踹歇萄遣
+ create_success_link: 蝯撌脫萄遣
+ create_success_page: W歇萄遣
+ create_success_snippet: 畾萄歇萄遣
+ create_success_user: 冽嗅歇萄遣
+ data: 豢
+ delete_language: 芷方閮
+ description: 餈
+ disable_language: 蝳刻閮
+ editing_home: 蝺刻摩擐
+ editing_layout: 蝺刻摩璅
+ editing_link: 蝺刻摩蝯
+ editing_page: 蝺刻摩
+ editing_snippet: 蝺刻摩畾
+ editing_user_info: 蝺刻摩冽嗉
+ editing_user_role: 蝺刻摩冽嗉
+ email: Email
+ enable_language: 刻閮
+ file_name: 瑼
+ file_size: 瑼獢憭批
+ format: 澆
+ home: 擐
+ id: ID
+ info: 鞈
+ is_published: 鋡怠箇
+ item:
+ key:
+ language: 隤閮
+ layout: 雿撅
+ layout_name: 雿撅摮
+ list_assets: 鞈X
+ list_items: 格
+ list_layouts: 雿撅皜
+ list_snippets: 瑞皜
+ list_users: 雿輻冽
+ list_user_infos: 冽嗉皜
+ list_user_roles: 冽嗉脫
+ member:
+ move_down: 敺銝蝘
+ move_up: 敺銝蝘
+ multilingual: 憭蝔株閮
+ my_avatar: 剖
+ no_home_page: 冽擐
+ no_layout: 冽雿撅
+ name: 蝔
+ new_asset: 啣鞈
+ new_component: 啣隞
+ new_home: 啣擐
+ new_layout: 啣璅
+ new_link: 啣蝯
+ new_page: 啣
+ new_snippet: 啣畾
+ new_user: 啣雿輻
+ new_user_info: 啣冽嗉
+ new_user_role: 啣冽嗉
+ non_multilingual: 憭蝔株閮
+ options: 賊
+ orig_upload_file: 銝單
+ position: 雿蝵
+ published?: 澆?
+ role: 閫
+ roles: 閫脯
+ title: 璅憿
+ translation: 蝧餉陌
+ type: 憿
+ update_error_link: 湔圈交箇暸航炊
+ update_error_page: 湔圈X箇暸航炊
+ update_success_content: 批捆撌脫湔啜
+ update_success_home: 擐撌脫湔啜
+ update_success_layout: 璅踹歇湔啜
+ update_success_link: 蝯撌脫湔啜
+ update_success_page: W歇湔啜
+ update_success_snippet: 畾萄歇湔啜
+ update_success_user: 冽嗅歇湔
+ url: URL
+ user: 冽
+ user_info: 冽嗉
+ user_panel: 冽園X
+ user_role: 冽嗉
+
+ panel:
+
+
+
+# Chinese (Taiwan) translations for Ruby on Rails
+# by tsechingho (http://github.com/tsechingho)
+ date:
+ formats:
+ default: "%Y-%m-%d"
+ short: "%b%d"
+ long: "%Y撟%b%d"
+ day_names: [, 銝, 鈭, 銝, , 鈭, 苗
+ abbr_day_names: [, 銝, 鈭, 銝, , 鈭, 苗
+ month_names: [~, 銝, 鈭, 銝, , 鈭, 剜, 銝, 急, 銋, , 銝, 鈭]
+ abbr_month_names: [~, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
+ order: [ :year, :month, :day ]
+
+ time:
+ formats:
+ default: "%Y撟%b%d %A %H:%M:%S %Z"
+ short: "%b%d %H:%M"
+ long: "%Y撟%b%d %H:%M"
+ am: "銝"
+ pm: "銝"
+
+ datetime:
+ distance_in_words:
+ half_a_minute: ""
+ less_than_x_seconds:
+ one: "銝唬蝘"
+ other: "銝 %{count} 蝘"
+ x_seconds:
+ one: "銝蝘"
+ other: "%{count} 蝘"
+ less_than_x_minutes:
+ one: "銝唬"
+ other: "銝 %{count} "
+ x_minutes:
+ one: "銝"
+ other: "%{count} "
+ about_x_hours:
+ one: "憭抒銝撠"
+ other: "憭抒 %{count} 撠"
+ x_days:
+ one: "銝憭"
+ other: "%{count} 憭"
+ about_x_months:
+ one: "憭抒銝"
+ other: "憭抒 %{count} "
+ x_months:
+ one: "銝"
+ other: "%{count} "
+ about_x_years:
+ one: "憭抒銝撟"
+ other: "憭抒 %{count} 撟"
+ over_x_years:
+ one: "銝撟游"
+ other: "%{count} 撟游"
+ almost_x_years:
+ one: "亥銝撟"
+ other: "亥 %{count} 撟"
+ prompts:
+ year: "撟"
+ month: ""
+ day: ""
+ hour: ""
+ minute: ""
+ second: "蝘"
+
+ number:
+ format:
+ separator: "."
+ delimiter: ","
+ precision: 3
+ significant: false
+ strip_insignificant_zeros: false
+ currency:
+ format:
+ format: "%u %n"
+ unit: "NT$"
+ separator: "."
+ delimiter: ","
+ precision: 2
+ significant: false
+ strip_insignificant_zeros: false
+ percentage:
+ format:
+ delimiter: ""
+ precision:
+ format:
+ delimiter: ""
+ human:
+ format:
+ delimiter: ""
+ precision: 1
+ significant: false
+ strip_insignificant_zeros: false
+ storage_units:
+ format: "%n %u"
+ units:
+ byte:
+ one: "Byte"
+ other: "Bytes"
+ kb: "KB"
+ mb: "MB"
+ gb: "GB"
+ tb: "TB"
+ decimal_units:
+ format: "%n %u"
+ units:
+ # 10^-21 zepto, 10^-24 yocto
+ atto: "皜" # 10^-18
+ femto: "憌" # 10^-15 瘥怠凝敺
+ pico: "瞍" # 10^-12 敺桀凝
+ nano: "憟" # 10^-9 瘥怠凝
+ micro: "敺" # 10^-6
+ mili: "瘥" # 10^-3 milli
+ centi: "" # 10^-2
+ deci: "" # 10^-1
+ unit: ""
+ ten:
+ one: ""
+ other: "" # 10^1
+ hundred: "" # 10^2
+ thousand: "" # 10^3 kilo
+ million: "曇" # 10^6 mega
+ billion: "" # 10^9 giga
+ trillion: "" # 10^12 tera
+ quadrillion: "" # 10^15 peta
+ # 10^18 exa, 10^21 zetta, 10^24 yotta
+
+ support:
+ array:
+ words_connector: ", "
+ two_words_connector: " "
+ last_word_connector: ", "
+ select:
+ prompt: "隢豢"
+
+ activerecord:
+ errors:
+ template: # ~ 2.3.5 backward compatible
+ header:
+ one: " 1 航炊潛雿踹%{model}⊥鋡怠脣"
+ other: " %{count} 航炊潛雿踹%{model}⊥鋡怠脣"
+ body: "隞乩甈雿潛憿嚗"
+ full_messages:
+ format: "%{attribute} %{message}"
+ messages:
+ inclusion: "瘝怠典銵其葉"
+ exclusion: "航◤靽萄"
+ invalid: "舐⊥"
+ confirmation: "銝蝚血蝣箄"
+ accepted: "敹臬航◤亙"
+ empty: "銝賜蝛"
+ blank: "銝賣舐征賢"
+ too_long: "瘀瑟 %{count} 摮嚗"
+ too_short: "哨剜 %{count} 摮嚗"
+ wrong_length: "摮賊航炊嚗敹 %{count} 摮嚗"
+ not_a_number: "銝舀詨"
+ not_an_integer: "敹舀湔"
+ greater_than: "敹憭扳 %{count}"
+ greater_than_or_equal_to: "敹憭扳潭蝑 %{count}"
+ equal_to: "敹蝑 %{count}"
+ less_than: "敹撠 %{count}"
+ less_than_or_equal_to: "敹撠潭蝑 %{count}"
+ odd: "敹臬"
+ even: "敹臬嗆"
+ taken: "撌脩鋡思蝙"
+ record_invalid: "⊿憭望: %{errors}"
+
+ activemodel:
+ errors:
+ template:
+ header:
+ one: " 1 航炊潛雿踹%{model}⊥鋡怠脣"
+ other: " %{count} 航炊潛雿踹%{model}⊥鋡怠脣"
+ body: "隞乩甈雿潛憿嚗"
+
+ errors:
+ format: "%{attribute} %{message}"
+ messages:
+ inclusion: "瘝怠典銵其葉"
+ exclusion: "航◤靽萄"
+ invalid: "舐⊥"
+ confirmation: "銝蝚血蝣箄"
+ accepted: "敹臬航◤亙"
+ empty: "銝賜蝛"
+ blank: "銝賣舐征賢"
+ too_long: "瘀瑟 %{count} 摮嚗"
+ too_short: "哨剜 %{count} 摮嚗"
+ wrong_length: "摮賊航炊嚗敹 %{count} 摮嚗"
+ not_a_number: "銝舀詨"
+ not_an_integer: "敹舀湔"
+ greater_than: "敹憭扳 %{count}"
+ greater_than_or_equal_to: "敹憭扳潭蝑 %{count}"
+ equal_to: "敹蝑 %{count}"
+ less_than: "敹撠 %{count}"
+ less_than_or_equal_to: "敹撠潭蝑 %{count}"
+ odd: "敹臬"
+ even: "敹臬嗆"
+ template:
+ header:
+ one: " 1 航炊潛雿踹%{model}⊥鋡怠脣"
+ other: " %{count} 航炊潛雿踹%{model}⊥鋡怠脣"
+ body: "隞乩甈雿潛憿嚗"
+
+ helpers:
+ select:
+ prompt: "隢豢"
+ submit:
+ create: "啣%{model}"
+ update: "湔%{model}"
+ submit: "脣%{model}"
+
diff --git a/vendor/built_in_modules/web_resource/config/routes.rb b/vendor/built_in_modules/web_resource/config/routes.rb
new file mode 100644
index 00000000..59c49707
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/config/routes.rb
@@ -0,0 +1,23 @@
+Rails.application.routes.draw do
+
+ namespace :panel do
+ namespace :web_resource do
+ namespace :back_end do
+ root :to => "web_links#index"
+ resources :web_links
+ resources :web_link_categorys, :controller => 'web_link_categorys' do
+ match "quick_edit/:web_link_category_id" => "web_link_categorys#quick_edit" ,:as => :quick_edit
+ end
+ resources :tags
+ end
+ namespace :front_end do
+ root :to => "web_links#index"
+ resources :web_links
+ end
+ namespace :widget do
+ root :to => "web_links#index"
+ end
+ end
+ end
+ match "/appfront/*path" => redirect("/panel/*path")
+end
diff --git a/vendor/built_in_modules/web_resource/lib/tasks/web_resource_tasks.rake b/vendor/built_in_modules/web_resource/lib/tasks/web_resource_tasks.rake
new file mode 100644
index 00000000..964a3127
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/lib/tasks/web_resource_tasks.rake
@@ -0,0 +1,4 @@
+# desc "Explaining what the task does"
+# task :web_resource do
+# # Task goes here
+# end
diff --git a/vendor/built_in_modules/web_resource/lib/web_resource.rb b/vendor/built_in_modules/web_resource/lib/web_resource.rb
new file mode 100644
index 00000000..e034a157
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/lib/web_resource.rb
@@ -0,0 +1,4 @@
+require "web_resource/engine"
+
+module WebResource
+end
diff --git a/vendor/built_in_modules/web_resource/lib/web_resource/engine.rb b/vendor/built_in_modules/web_resource/lib/web_resource/engine.rb
new file mode 100644
index 00000000..b11c8458
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/lib/web_resource/engine.rb
@@ -0,0 +1,4 @@
+module WebResource
+ class Engine < Rails::Engine
+ end
+end
diff --git a/vendor/built_in_modules/web_resource/lib/web_resource/version.rb b/vendor/built_in_modules/web_resource/lib/web_resource/version.rb
new file mode 100644
index 00000000..bfe2c780
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/lib/web_resource/version.rb
@@ -0,0 +1,3 @@
+module WebResource
+ VERSION = "0.0.1"
+end
diff --git a/vendor/built_in_modules/web_resource/script/rails b/vendor/built_in_modules/web_resource/script/rails
new file mode 100644
index 00000000..23bd81fa
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/script/rails
@@ -0,0 +1,6 @@
+#!/usr/bin/env ruby.exe
+#!/usr/bin/env ruby
+# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
+
+ENGINE_PATH = File.expand_path('../..', __FILE__)
+load File.expand_path('../../test/dummy/script/rails', __FILE__)
diff --git a/vendor/built_in_modules/web_resource/test/dummy/Rakefile b/vendor/built_in_modules/web_resource/test/dummy/Rakefile
new file mode 100644
index 00000000..36458522
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/Rakefile
@@ -0,0 +1,7 @@
+#!/usr/bin/env rake
+# Add your own tasks in files placed in lib/tasks ending in .rake,
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
+
+require File.expand_path('../config/application', __FILE__)
+
+Dummy::Application.load_tasks
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/assets/javascripts/application.js b/vendor/built_in_modules/web_resource/test/dummy/app/assets/javascripts/application.js
new file mode 100644
index 00000000..37c7bfcd
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/app/assets/javascripts/application.js
@@ -0,0 +1,9 @@
+// This is a manifest file that'll be compiled into including all the files listed below.
+// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
+// be included in the compiled file accessible from http://example.com/assets/application.js
+// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
+// the compiled file.
+//
+//= require jquery
+//= require jquery_ujs
+//= require_tree .
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/assets/stylesheets/application.css b/vendor/built_in_modules/web_resource/test/dummy/app/assets/stylesheets/application.css
new file mode 100644
index 00000000..fc25b572
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/app/assets/stylesheets/application.css
@@ -0,0 +1,7 @@
+/*
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
+ *= require_self
+ *= require_tree .
+*/
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/controllers/application_controller.rb b/vendor/built_in_modules/web_resource/test/dummy/app/controllers/application_controller.rb
new file mode 100644
index 00000000..e8065d95
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/app/controllers/application_controller.rb
@@ -0,0 +1,3 @@
+class ApplicationController < ActionController::Base
+ protect_from_forgery
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/helpers/application_helper.rb b/vendor/built_in_modules/web_resource/test/dummy/app/helpers/application_helper.rb
new file mode 100644
index 00000000..de6be794
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/app/helpers/application_helper.rb
@@ -0,0 +1,2 @@
+module ApplicationHelper
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/mailers/.gitkeep b/vendor/built_in_modules/web_resource/test/dummy/app/mailers/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/models/.gitkeep b/vendor/built_in_modules/web_resource/test/dummy/app/models/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/test/dummy/app/views/layouts/application.html.erb b/vendor/built_in_modules/web_resource/test/dummy/app/views/layouts/application.html.erb
new file mode 100644
index 00000000..9a8a761b
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/app/views/layouts/application.html.erb
@@ -0,0 +1,14 @@
+
+
+
+ Dummy
+ <%= stylesheet_link_tag "application" %>
+ <%= javascript_include_tag "application" %>
+ <%= csrf_meta_tags %>
+
+
+
+<%= yield %>
+
+
+
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config.ru b/vendor/built_in_modules/web_resource/test/dummy/config.ru
new file mode 100644
index 00000000..1989ed8d
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config.ru
@@ -0,0 +1,4 @@
+# This file is used by Rack-based servers to start the application.
+
+require ::File.expand_path('../config/environment', __FILE__)
+run Dummy::Application
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/application.rb b/vendor/built_in_modules/web_resource/test/dummy/config/application.rb
new file mode 100644
index 00000000..5baea537
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/application.rb
@@ -0,0 +1,45 @@
+require File.expand_path('../boot', __FILE__)
+
+require 'rails/all'
+
+Bundler.require
+require "web_resource"
+
+module Dummy
+ class Application < Rails::Application
+ # Settings in config/environments/* take precedence over those specified here.
+ # Application configuration should go into files in config/initializers
+ # -- all .rb files in that directory are automatically loaded.
+
+ # Custom directories with classes and modules you want to be autoloadable.
+ # config.autoload_paths += %W(#{config.root}/extras)
+
+ # Only load the plugins named here, in the order given (default is alphabetical).
+ # :all can be used as a placeholder for all plugins not explicitly named.
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
+
+ # Activate observers that should always be running.
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
+
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
+ # config.time_zone = 'Central Time (US & Canada)'
+
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
+ # config.i18n.default_locale = :de
+
+ # Configure the default encoding used in templates for Ruby 1.9.
+ config.encoding = "utf-8"
+
+ # Configure sensitive parameters which will be filtered from the log file.
+ config.filter_parameters += [:password]
+
+ # Enable the asset pipeline
+ config.assets.enabled = true
+
+ # Version of your assets, change this if you want to expire all your assets
+ config.assets.version = '1.0'
+ end
+end
+
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/boot.rb b/vendor/built_in_modules/web_resource/test/dummy/config/boot.rb
new file mode 100644
index 00000000..eba06813
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/boot.rb
@@ -0,0 +1,10 @@
+require 'rubygems'
+gemfile = File.expand_path('../../../../Gemfile', __FILE__)
+
+if File.exist?(gemfile)
+ ENV['BUNDLE_GEMFILE'] = gemfile
+ require 'bundler'
+ Bundler.setup
+end
+
+$:.unshift File.expand_path('../../../../lib', __FILE__)
\ No newline at end of file
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/database.yml b/vendor/built_in_modules/web_resource/test/dummy/config/database.yml
new file mode 100644
index 00000000..51a4dd45
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/database.yml
@@ -0,0 +1,25 @@
+# SQLite version 3.x
+# gem install sqlite3
+#
+# Ensure the SQLite 3 gem is defined in your Gemfile
+# gem 'sqlite3'
+development:
+ adapter: sqlite3
+ database: db/development.sqlite3
+ pool: 5
+ timeout: 5000
+
+# Warning: The database defined as "test" will be erased and
+# re-generated from your development database when you run "rake".
+# Do not set this db to the same as development or production.
+test:
+ adapter: sqlite3
+ database: db/test.sqlite3
+ pool: 5
+ timeout: 5000
+
+production:
+ adapter: sqlite3
+ database: db/production.sqlite3
+ pool: 5
+ timeout: 5000
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/environment.rb b/vendor/built_in_modules/web_resource/test/dummy/config/environment.rb
new file mode 100644
index 00000000..3da5eb91
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/environment.rb
@@ -0,0 +1,5 @@
+# Load the rails application
+require File.expand_path('../application', __FILE__)
+
+# Initialize the rails application
+Dummy::Application.initialize!
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/environments/development.rb b/vendor/built_in_modules/web_resource/test/dummy/config/environments/development.rb
new file mode 100644
index 00000000..95a50b91
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/environments/development.rb
@@ -0,0 +1,30 @@
+Dummy::Application.configure do
+ # Settings specified here will take precedence over those in config/application.rb
+
+ # In the development environment your application's code is reloaded on
+ # every request. This slows down response time but is perfect for development
+ # since you don't have to restart the web server when you make code changes.
+ config.cache_classes = false
+
+ # Log error messages when you accidentally call methods on nil.
+ config.whiny_nils = true
+
+ # Show full error reports and disable caching
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
+
+ # Don't care if the mailer can't send
+ config.action_mailer.raise_delivery_errors = false
+
+ # Print deprecation notices to the Rails logger
+ config.active_support.deprecation = :log
+
+ # Only use best-standards-support built into browsers
+ config.action_dispatch.best_standards_support = :builtin
+
+ # Do not compress assets
+ config.assets.compress = false
+
+ # Expands the lines which load the assets
+ config.assets.debug = true
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/environments/production.rb b/vendor/built_in_modules/web_resource/test/dummy/config/environments/production.rb
new file mode 100644
index 00000000..ca2c5888
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/environments/production.rb
@@ -0,0 +1,60 @@
+Dummy::Application.configure do
+ # Settings specified here will take precedence over those in config/application.rb
+
+ # Code is not reloaded between requests
+ config.cache_classes = true
+
+ # Full error reports are disabled and caching is turned on
+ config.consider_all_requests_local = false
+ config.action_controller.perform_caching = true
+
+ # Disable Rails's static asset server (Apache or nginx will already do this)
+ config.serve_static_assets = false
+
+ # Compress JavaScripts and CSS
+ config.assets.compress = true
+
+ # Don't fallback to assets pipeline if a precompiled asset is missed
+ config.assets.compile = false
+
+ # Generate digests for assets URLs
+ config.assets.digest = true
+
+ # Defaults to Rails.root.join("public/assets")
+ # config.assets.manifest = YOUR_PATH
+
+ # Specifies the header that your server uses for sending files
+ # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
+
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
+ # config.force_ssl = true
+
+ # See everything in the log (default is :info)
+ # config.log_level = :debug
+
+ # Use a different logger for distributed setups
+ # config.logger = SyslogLogger.new
+
+ # Use a different cache store in production
+ # config.cache_store = :mem_cache_store
+
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server
+ # config.action_controller.asset_host = "http://assets.example.com"
+
+ # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
+ # config.assets.precompile += %w( search.js )
+
+ # Disable delivery errors, bad email addresses will be ignored
+ # config.action_mailer.raise_delivery_errors = false
+
+ # Enable threaded mode
+ # config.threadsafe!
+
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
+ # the I18n.default_locale when a translation can not be found)
+ config.i18n.fallbacks = true
+
+ # Send deprecation notices to registered listeners
+ config.active_support.deprecation = :notify
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/environments/test.rb b/vendor/built_in_modules/web_resource/test/dummy/config/environments/test.rb
new file mode 100644
index 00000000..6810c914
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/environments/test.rb
@@ -0,0 +1,39 @@
+Dummy::Application.configure do
+ # Settings specified here will take precedence over those in config/application.rb
+
+ # The test environment is used exclusively to run your application's
+ # test suite. You never need to work with it otherwise. Remember that
+ # your test database is "scratch space" for the test suite and is wiped
+ # and recreated between test runs. Don't rely on the data there!
+ config.cache_classes = true
+
+ # Configure static asset server for tests with Cache-Control for performance
+ config.serve_static_assets = true
+ config.static_cache_control = "public, max-age=3600"
+
+ # Log error messages when you accidentally call methods on nil
+ config.whiny_nils = true
+
+ # Show full error reports and disable caching
+ config.consider_all_requests_local = true
+ config.action_controller.perform_caching = false
+
+ # Raise exceptions instead of rendering exception templates
+ config.action_dispatch.show_exceptions = false
+
+ # Disable request forgery protection in test environment
+ config.action_controller.allow_forgery_protection = false
+
+ # Tell Action Mailer not to deliver emails to the real world.
+ # The :test delivery method accumulates sent emails in the
+ # ActionMailer::Base.deliveries array.
+ config.action_mailer.delivery_method = :test
+
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
+ # like if you have constraints or database-specific column types
+ # config.active_record.schema_format = :sql
+
+ # Print deprecation notices to the stderr
+ config.active_support.deprecation = :stderr
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/initializers/backtrace_silencers.rb b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/backtrace_silencers.rb
new file mode 100644
index 00000000..59385cdf
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/backtrace_silencers.rb
@@ -0,0 +1,7 @@
+# Be sure to restart your server when you modify this file.
+
+# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
+# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
+
+# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
+# Rails.backtrace_cleaner.remove_silencers!
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/initializers/inflections.rb b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/inflections.rb
new file mode 100644
index 00000000..9e8b0131
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/inflections.rb
@@ -0,0 +1,10 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new inflection rules using the following format
+# (all these examples are active by default):
+# ActiveSupport::Inflector.inflections do |inflect|
+# inflect.plural /^(ox)$/i, '\1en'
+# inflect.singular /^(ox)en/i, '\1'
+# inflect.irregular 'person', 'people'
+# inflect.uncountable %w( fish sheep )
+# end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/initializers/mime_types.rb b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/mime_types.rb
new file mode 100644
index 00000000..72aca7e4
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/mime_types.rb
@@ -0,0 +1,5 @@
+# Be sure to restart your server when you modify this file.
+
+# Add new mime types for use in respond_to blocks:
+# Mime::Type.register "text/richtext", :rtf
+# Mime::Type.register_alias "text/html", :iphone
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/initializers/secret_token.rb b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/secret_token.rb
new file mode 100644
index 00000000..5e47873d
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/secret_token.rb
@@ -0,0 +1,7 @@
+# Be sure to restart your server when you modify this file.
+
+# Your secret key for verifying the integrity of signed cookies.
+# If you change this key, all old signed cookies will become invalid!
+# Make sure the secret is at least 30 characters and all random,
+# no regular words or you'll be exposed to dictionary attacks.
+Dummy::Application.config.secret_token = 'ee68f8d3b8adc3f8bf4c227ae7db968e1d07dd6e6c8ea0f5deb0e55d8e19ba22fb5be6fd77ec4bffb8e78f60cd667a37d906090e8a1b03ab06bf11bb5e1b24ad'
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/initializers/session_store.rb b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/session_store.rb
new file mode 100644
index 00000000..952473ff
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/session_store.rb
@@ -0,0 +1,8 @@
+# Be sure to restart your server when you modify this file.
+
+Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
+
+# Use the database for sessions instead of the cookie-based default,
+# which shouldn't be used to store highly confidential information
+# (create the session table with "rails generate session_migration")
+# Dummy::Application.config.session_store :active_record_store
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/initializers/wrap_parameters.rb b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/wrap_parameters.rb
new file mode 100644
index 00000000..999df201
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/initializers/wrap_parameters.rb
@@ -0,0 +1,14 @@
+# Be sure to restart your server when you modify this file.
+#
+# This file contains settings for ActionController::ParamsWrapper which
+# is enabled by default.
+
+# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
+ActiveSupport.on_load(:action_controller) do
+ wrap_parameters format: [:json]
+end
+
+# Disable root element in JSON by default.
+ActiveSupport.on_load(:active_record) do
+ self.include_root_in_json = false
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/locales/en.yml b/vendor/built_in_modules/web_resource/test/dummy/config/locales/en.yml
new file mode 100644
index 00000000..179c14ca
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/locales/en.yml
@@ -0,0 +1,5 @@
+# Sample localization file for English. Add more files in this directory for other locales.
+# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
+
+en:
+ hello: "Hello world"
diff --git a/vendor/built_in_modules/web_resource/test/dummy/config/routes.rb b/vendor/built_in_modules/web_resource/test/dummy/config/routes.rb
new file mode 100644
index 00000000..bb509f27
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/config/routes.rb
@@ -0,0 +1,58 @@
+Dummy::Application.routes.draw do
+ # The priority is based upon order of creation:
+ # first created -> highest priority.
+
+ # Sample of regular route:
+ # match 'products/:id' => 'catalog#view'
+ # Keep in mind you can assign values other than :controller and :action
+
+ # Sample of named route:
+ # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
+ # This route can be invoked with purchase_url(:id => product.id)
+
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
+ # resources :products
+
+ # Sample resource route with options:
+ # resources :products do
+ # member do
+ # get 'short'
+ # post 'toggle'
+ # end
+ #
+ # collection do
+ # get 'sold'
+ # end
+ # end
+
+ # Sample resource route with sub-resources:
+ # resources :products do
+ # resources :comments, :sales
+ # resource :seller
+ # end
+
+ # Sample resource route with more complex sub-resources
+ # resources :products do
+ # resources :comments
+ # resources :sales do
+ # get 'recent', :on => :collection
+ # end
+ # end
+
+ # Sample resource route within a namespace:
+ # namespace :admin do
+ # # Directs /admin/products/* to Admin::ProductsController
+ # # (app/controllers/admin/products_controller.rb)
+ # resources :products
+ # end
+
+ # You can have the root of your site routed with "root"
+ # just remember to delete public/index.html.
+ # root :to => 'welcome#index'
+
+ # See how all your routes lay out with "rake routes"
+
+ # This is a legacy wild controller route that's not recommended for RESTful applications.
+ # Note: This route will make all actions in every controller accessible via GET requests.
+ # match ':controller(/:action(/:id(.:format)))'
+end
diff --git a/vendor/built_in_modules/web_resource/test/dummy/lib/assets/.gitkeep b/vendor/built_in_modules/web_resource/test/dummy/lib/assets/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/test/dummy/log/.gitkeep b/vendor/built_in_modules/web_resource/test/dummy/log/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/test/dummy/public/404.html b/vendor/built_in_modules/web_resource/test/dummy/public/404.html
new file mode 100644
index 00000000..9a48320a
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/public/404.html
@@ -0,0 +1,26 @@
+
+
+
+ The page you were looking for doesn't exist (404)
+
+
+
+
+
+
+
The page you were looking for doesn't exist.
+
You may have mistyped the address or the page may have moved.
+
+
+
diff --git a/vendor/built_in_modules/web_resource/test/dummy/public/422.html b/vendor/built_in_modules/web_resource/test/dummy/public/422.html
new file mode 100644
index 00000000..83660ab1
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/public/422.html
@@ -0,0 +1,26 @@
+
+
+
+ The change you wanted was rejected (422)
+
+
+
+
+
+
+
The change you wanted was rejected.
+
Maybe you tried to change something you didn't have access to.
+
+
+
diff --git a/vendor/built_in_modules/web_resource/test/dummy/public/500.html b/vendor/built_in_modules/web_resource/test/dummy/public/500.html
new file mode 100644
index 00000000..b80307fc
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/public/500.html
@@ -0,0 +1,26 @@
+
+
+
+ We're sorry, but something went wrong (500)
+
+
+
+
+
+
+
We're sorry, but something went wrong.
+
We've been notified about this issue and we'll take a look at it shortly.
+
+
+
diff --git a/vendor/built_in_modules/web_resource/test/dummy/public/favicon.ico b/vendor/built_in_modules/web_resource/test/dummy/public/favicon.ico
new file mode 100644
index 00000000..e69de29b
diff --git a/vendor/built_in_modules/web_resource/test/dummy/script/rails b/vendor/built_in_modules/web_resource/test/dummy/script/rails
new file mode 100644
index 00000000..81eab02f
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/dummy/script/rails
@@ -0,0 +1,6 @@
+#!/usr/bin/env ruby.exe
+# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
+
+APP_PATH = File.expand_path('../../config/application', __FILE__)
+require File.expand_path('../../config/boot', __FILE__)
+require 'rails/commands'
diff --git a/vendor/built_in_modules/web_resource/test/integration/navigation_test.rb b/vendor/built_in_modules/web_resource/test/integration/navigation_test.rb
new file mode 100644
index 00000000..97a94c9b
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/integration/navigation_test.rb
@@ -0,0 +1,10 @@
+require 'test_helper'
+
+class NavigationTest < ActionDispatch::IntegrationTest
+ fixtures :all
+
+ # test "the truth" do
+ # assert true
+ # end
+end
+
diff --git a/vendor/built_in_modules/web_resource/test/test_helper.rb b/vendor/built_in_modules/web_resource/test/test_helper.rb
new file mode 100644
index 00000000..dcd3b276
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/test_helper.rb
@@ -0,0 +1,10 @@
+# Configure Rails Environment
+ENV["RAILS_ENV"] = "test"
+
+require File.expand_path("../dummy/config/environment.rb", __FILE__)
+require "rails/test_help"
+
+Rails.backtrace_cleaner.remove_silencers!
+
+# Load support files
+Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
diff --git a/vendor/built_in_modules/web_resource/test/web_resource_test.rb b/vendor/built_in_modules/web_resource/test/web_resource_test.rb
new file mode 100644
index 00000000..638a4997
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/test/web_resource_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class WebResourceTest < ActiveSupport::TestCase
+ test "truth" do
+ assert_kind_of Module, WebResource
+ end
+end
diff --git a/vendor/built_in_modules/web_resource/web_resource.gemspec b/vendor/built_in_modules/web_resource/web_resource.gemspec
new file mode 100644
index 00000000..c583d4a8
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/web_resource.gemspec
@@ -0,0 +1,23 @@
+$:.push File.expand_path("../lib", __FILE__)
+
+# Maintain your gem's version:
+require "web_resource/version"
+
+# Describe your gem and declare its dependencies:
+Gem::Specification.new do |s|
+ s.name = "web_resource"
+ s.version = WebResource::VERSION
+ s.authors = ["TODO: Your name"]
+ s.email = ["TODO: Your email"]
+ s.homepage = "TODO"
+ s.summary = "TODO: Summary of WebResource."
+ s.description = "TODO: Description of WebResource."
+
+ s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
+ s.test_files = Dir["test/**/*"]
+
+ s.add_dependency "rails", "~> 3.1.3"
+ # s.add_dependency "jquery-rails"
+
+ s.add_development_dependency "sqlite3"
+end
diff --git a/vendor/built_in_modules/web_resource/web_resource.json b/vendor/built_in_modules/web_resource/web_resource.json
new file mode 100644
index 00000000..e1dc59de
--- /dev/null
+++ b/vendor/built_in_modules/web_resource/web_resource.json
@@ -0,0 +1,11 @@
+{
+ "title": "web_resource",
+ "version": "0.1",
+ "organization": "Rulingcom",
+ "author": "RD dep",
+ "intro": "A simple blog色",
+ "update_info": "Some info",
+ "create_date": "11-11-2011",
+ "app_pages": ["web_links"],
+ "enable_frontend": true
+}