archive and web_resouce for new ui

Conflicts:
	app/assets/stylesheets/lib/main-forms.css
This commit is contained in:
Spen authored and chris committed 2013-07-22 18:14:33 +08:00
1 parent 1ba1703e90
commit 5d3bc07488
30 files changed
+1531 -620

No files matched your search

@@ -1,100 +1,117 @@
/* General style with default layout */
.o-archives {}
.o-archives-content {}
.o-archives-group {
.o-archives .o-archives-content {}
.o-archives .o-archives-group {
margin: 20px 0 0 0;
padding: 20px 0 0 0;
border-top: dashed 1px #eee;
}
.o-archives-group:first-child {
.o-archives .o-archives-group:first-child {
margin: 0;
padding: 0;
border: 0;
}
.o-archives-category {
.o-archives .o-archives-category {
padding-bottom: 16px;
margin-bottom: 16px;
border-bottom: solid 2px #ccc;
font-weight: bold;
}
.o-archives-list {}
.o-archives-list ul {
.o-archives .o-archives-list {}
.o-archives .o-archives-list ul {
margin: 0;
padding: 0;
list-style: none;
}
.o-archives-list li {}
.o-archives-title {
.o-archives .o-archives-list li {}
.o-archives .o-archives-title {
border-left: solid 8px #eee;
border-bottom: solid 1px #eee;
padding: 0 0 0 16px;
line-height: 2em;
}
.o-archives-list-item {}
.o-archives-list-item ol {
list-style-type: decimal;
.o-archives .o-archives-list-item {
padding: 12px 0;
}
.o-archives-list-item li {
margin: 0 0 10px 0;
.o-archives .o-archives-list-item ol {
list-style-type: disc;
margin: 0;
}
.o-archives-file {}
.o-archives-file:hover {}
.o-archives-file-type {
display: inline-block;
vertical-align: middle;
margin-left: 8px;
padding: 0 4px;
height: 15px;
font-size: 9px;
text-transform: uppercase;
line-height: 15px;
background-color: #999;
color: #FFF;
border-radius: 3px;
-webkit-text-size-adjust: none;
.o-archives .o-archives-list-item li {
margin: 0 0 8px 0;
}
.o-archives .o-archives-file {
font-size: 0.85em;
}
.o-archives .o-archives-file:hover {}
.o-archives .o-archives-file-type {
display: inline-block;
vertical-align: top;
margin-left: 8px;
padding: 0 6px;
height: 16px;
font-size: 10px;
text-transform: uppercase;
line-height: 16px;
background-color: #666;
color: #fff;
border-radius: 3px;
}
.o-archives .o-archives-hot {
font-size: 11px;
font-weight: normal;
padding: 0 4px;
display: inline-block;
vertical-align: top;
margin: 0 0 0 8px;
background-color: #D83131;
color: #FFF;
}
/* Tag list */
.o-archives-tag-list {}
.o-archives-tag-list ul {
.o-archives .o-archives-tag-list {}
.o-archives .o-archives-tag-list ul {
margin: 0 -4px;
padding: 0;
list-style: none;
}
.o-archives-tag-list ul:after {
.o-archives .o-archives-tag-list ul:after {
content: ".";
clear: both;
display: block;
height: 0;
visibility: hidden;
}
.o-archives-tag-list li {
.o-archives .o-archives-tag-list li {
float: left;
margin: 0 4px 8px 4px;
}
.o-archives-tag {
.o-archives .o-archives-tag {
display: block;
border: solid 1px #ccc;
padding: 2px 6px;
padding: 4px;
font-size: 0.85em;
}
.o-archives-tag:hover {}
.o-archives .o-archives-tag:hover {}
/* Table layout */
.o-archives.layout-table {}
.o-archives-search {
.o-archives .o-archives-search {
overflow: hidden;
margin: 0 0 10px 0;
}
.o-archives-search label {
.o-archives .o-archives-search label {
display: inline-block;
margin: 0 8px 0 0;
}
.o-archives-search-option {
.o-archives .o-archives-search-option {
float: right;
}
.o-archives-search-option select {
.o-archives .o-archives-search-option select {
width: 80px;
}
.o-archives-search-keyword {}
.o-archives-search-keyword input[type=submit] {
.o-archives .o-archives-search-keyword {}
.o-archives .o-archives-search-keyword input[type=submit] {
display: inline-block;
vertical-align: top;
margin: 0 0 0 8px;
@@ -112,6 +129,8 @@ border-radius: 3px;
.o-archives.layout-table .even td {}
.o-archives.layout-table .column-ctrl {
text-align: left;
padding: 8px 4px;
font-size: 0.85em;
}
.o-archives.layout-table .column-ctrl.col-title { width: 30% }
.o-archives.layout-table .column-ctrl.col-file {}
@@ -121,16 +140,18 @@ border-radius: 3px;
font-weight: bold;
border: 0;
padding: 0;
line-height: 1.2em;
}
.o-archives.layout-table .o-archives-category {
padding: 0;
margin: 0;
border: 0;
font-weight: normal;
}
.o-archives.layout-table .o-archives-tag {
display: inline-block;
margin-bottom: 3px;
}
.o-archives.layout-table .o-archives-category {
font-weight: normal;
.o-archives.layout-table .o-archives-list-item {
padding: 0;
}
@@ -1,48 +1,66 @@
class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController
# before_filter :for_app_manager,:except => [:index,:show]
include OrbitControllerLib::DivisionForDisable
# include OrbitControllerLib::DivisionForDisable
before_filter :force_order_for_visitor,:only=>[:index]
before_filter :force_order_for_user,:except => [:index]
before_filter :for_app_sub_manager,:except => [:index]
before_filter :only => [ :new,:edit,:update,:create] do |controller|
controller.get_categorys('ArchiveFileCategory')
# before_filter :only => [ :new,:edit,:update,:create] do |controller|
# controller.get_categorys('ArchiveFileCategory')
# end
before_filter :only => [ :new, :create, :edit, :update ] do |controller|
@categories = get_categories_for_form
end
def index
@tags = get_tags
@categories = get_categories_for_index
@statuses = get_statuses
category_ids = @categories.collect{|t| t.id}
get_categorys("ArchiveFileCategory",params[:archive_file_category_id])
@filter = params[:filter]
new_filter = params[:new_filter]
if @filter && params[:clear]
@filter.delete(params[:type])
elsif @filter && new_filter
if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
@filter[new_filter[:type]].delete(new_filter[:id].to_s)
elsif @filter.has_key?(new_filter[:type])
@filter[new_filter[:type]] << new_filter[:id].to_s
else
@filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
end
elsif new_filter
@filter = {new_filter[:type] => [new_filter[:id].to_s]}
end
@archive_filecategories = get_categories_for_index("ArchiveFileCategory")
@archive_file_category_ids = @archive_file_categories.collect{|t| t.id.to_s} + [nil]
@archive_files = (params[:sort] || @filter) ? get_sorted_and_filtered("archive_file",:archive_file_category_id.in => @archive_file_category_ids) : get_viewable("archive_file",:archive_file_category_id.in => @archive_file_category_ids)
@tags = get_tags
@archive_files = get_sorted_and_filtered("archive_file", :category_id.in => category_ids)
respond_to do |format|
format.html # index.html.erb
format.js { }
format.xml { render :xml => @archive_files }
format.js
end
end
# def index
# get_categorys("ArchiveFileCategory",params[:archive_file_category_id])
# @filter = params[:filter]
# new_filter = params[:new_filter]
# if @filter && params[:clear]
# @filter.delete(params[:type])
# elsif @filter && new_filter
# if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
# @filter[new_filter[:type]].delete(new_filter[:id].to_s)
# elsif @filter.has_key?(new_filter[:type])
# @filter[new_filter[:type]] << new_filter[:id].to_s
# else
# @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
# end
# elsif new_filter
# @filter = {new_filter[:type] => [new_filter[:id].to_s]}
# end
# @archive_filecategories = get_categories_for_index("ArchiveFileCategory")
# @archive_file_category_ids = @archive_file_categories.collect{|t| t.id.to_s} + [nil]
# @archive_files = (params[:sort] || @filter) ? get_sorted_and_filtered("archive_file",:archive_file_category_id.in => @archive_file_category_ids) : get_viewable("archive_file",:archive_file_category_id.in => @archive_file_category_ids)
# @tags = get_tags
# respond_to do |format|
# format.html # index.html.erb
# format.xml { render :xml => @archive_files }
# format.js
# end
# end
# GET /archive_files/1
# GET /archive_files/1.xml
def show
@@ -57,7 +75,12 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController
# GET /archive_files/new
# GET /archive_files/new.xml
def new
@archive_file = ArchiveFile.new
if(session[:in_validate_object].blank?)
@archive_file = ArchiveFile.new
else
@archive_file = session[:in_validate_object]
session[:in_validate_object] = {}
end
@tags = get_tags
@@ -70,8 +93,11 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController
# GET /archive_files/1/edit
def edit
@archive_file = ArchiveFile.find(params[:id])
@tags = get_tags
if !current_user.admin?
redirect_to :action => :index
else
@tags = get_tags
end
end
# POST /archive_files
@@ -21,6 +21,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
def index
@item = Page.find(params[:page_id])
@title = @item.title
@frontend_style = @item.frontend_style
if !@item.frontend_data_count.blank?
@page_num = @item.frontend_data_count
else
@@ -28,23 +29,69 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
end
date_now = Time.now
@archive_file_categorys = ArchiveFileCategory.all
# @archive_file_categorys = ArchiveFileCategory.all
# @archive_files = ArchiveFile.where( :is_hidden => false ).desc(:is_top).page(params[:page]).per(@page_num)
if !params[:category_id].blank? && !params[:tag_id].blank?
@archive_files = @archive_files.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
elsif !params[:category_id].blank?
@archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
if !params[:category_id].blank?
@archive_file_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
@archive_file_category_ids = @module_app.categories.enabled.any_in(:_id => params[:category_id]).collect{|a|a.id}
else
@archive_files = ArchiveFile.default_sort(params[:sort]).can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
@archive_file_categorys = @module_app.categories.enabled
@archive_file_category_ids = @module_app.categories.enabled.collect{|a|a.id}
end
get_categorys
if @frontend_style == "1"
if !params[:category_id].blank? && !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
elsif !params[:category_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
elsif !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids,:tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
else
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
end
elsif @frontend_style == "2"
@archive_file_datas = Array.new
@archive_file_categorys.each do |afcg|
if !params[:category_id].blank? && !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort])
elsif !params[:category_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id]).desc( :is_top ).default_sort(params[:sort])
elsif !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort])
else
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id).desc( :is_top ).default_sort(params[:sort])
end
archive_file_datas = Array.new
@archive_files.each do |af|
archive_file_multiple_datas = Array.new
af.archive_file_multiples.asc(:sort_number).each do | afile |
archive_file_multiple_datas << {
"file_title" => (!afile.file_title.blank? ? afile.file_title : t('archive.download') ) ,
"url" => afile.file.url,
"icon" => af.get_file_icon(afile.file.url)
} if afile.file.file and afile.choose_lang_display(I18n.locale.to_s)
end
archive_file_datas << { "title" => af.title, "is_hot" => (!af.is_hot.blank? ? '1' : ''), "archive_file_multiples" => archive_file_multiple_datas } if !af.archive_file_multiples.blank? and !archive_file_multiple_datas.blank?
end
@archive_file_datas << { "title" => afcg.title, "archive_files" => archive_file_datas } if !@archive_files.blank?
end
end
# get_categorys
if params[:sort]
@archive_files = get_sorted_and_filtered('archive_file', nil, @archive_files)
@@ -28,17 +28,91 @@ class Panel::Archive::Widget::ArchiveFilesController < OrbitWidgetController
date_now = Time.now
# if !params[:category_id].blank?
# @archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:category_id => params[:category_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
# @archive_file_categorys = ArchiveFileCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
# elsif !params[:tag_id].blank?
# @archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
# get_categorys
# else
# @archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top).page( params[:page_main] ).per(@page_num)
# get_categorys
# end
# if !params[:category_id].blank? && !params[:tag_id].blank?
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
# elsif !params[:category_id].blank?
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:category_id.in => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
# elsif !params[:tag_id].blank?
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
# else
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
# end
if !params[:category_id].blank?
@archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:archive_file_category_id => params[:category_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
@archive_file_categorys = ArchiveFileCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
elsif !params[:tag_id].blank?
@archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
get_categorys
@archive_file_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
@archive_file_category_ids = @module_app.categories.enabled.any_in(:_id => params[:category_id]).collect{|a|a.id}
else
@archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top).page( params[:page_main] ).per(@page_num)
get_categorys
@archive_file_categorys = @module_app.categories.enabled
@archive_file_category_ids = @module_app.categories.enabled.collect{|a|a.id}
end
if @widget_style == "1"
if !params[:category_id].blank? && !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
elsif !params[:category_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
elsif !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids,:tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
else
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
end
elsif @widget_style == "2"
@archive_file_datas = Array.new
@archive_file_categorys.each do |afcg|
if !params[:category_id].blank? && !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
elsif !params[:category_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id]).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
elsif !params[:tag_id].blank?
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
else
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
end
archive_file_datas = Array.new
@archive_files.each do |af|
archive_file_multiple_datas = Array.new
af.archive_file_multiples.asc(:sort_number).each do | afile |
archive_file_multiple_datas << {
"file_title" => (!afile.file_title.blank? ? afile.file_title : t('archive.download') ) ,
"url" => afile.file.url,
"icon" => af.get_file_icon(afile.file.url)
} if afile.file.file and afile.choose_lang_display(I18n.locale.to_s)
end
archive_file_datas << { "title" => af.title, "is_hot" => (!af.is_hot.blank? ? '1' : ''), "archive_file_multiples" => archive_file_multiple_datas } if !af.archive_file_multiples.blank? and !archive_file_multiple_datas.blank?
end
@archive_file_datas << { "title" => afcg.title, "archive_files" => archive_file_datas } if !@archive_files.blank?
end
end
if params[:sort]
@archive_files = get_sorted_and_filtered('archive_file', nil, @archive_files)
end
+9 -5
View File
@@ -1,22 +1,25 @@
# encoding: utf-8
class ArchiveFile
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include Mongoid::Sortable
include Sunspot::Mongo
include OrbitCategory::Categorizable
include OrbitModel::LanguageRestrict
include OrbitModel::Status
include OrbitModel::TimeFrame
include OrbitTag::Taggable
BelongsToCategory = :archive_file_category
# BelongsToCategory = :archive_file_category
PAYMENT_TYPES = @site_valid_locales
# PAYMENT_TYPES = @site_valid_locales
field :title, localize: true
field :create_user_id
field :update_user_id
field :update_user_id, :class_name => "User"
# belongs_to :archive_file_category
@@ -31,12 +34,13 @@ class ArchiveFile
# searchable do
# text :titles do
# title_translations.to_a.collect{|t| t[1]}
# end
# end
# boolean :frontend_search do
# !is_hidden
# end
# end
def self.search( category_id = nil )
@@ -4,9 +4,8 @@ class ArchiveFileCategory
include Mongoid::Document
include Mongoid::Timestamps
include OrbitCoreLib::ObjectAuthable
include OrbitCoreLib::ObjectDisable
include Sunspot::Mongo
# include Mongoid::MultiParameterAttributes
include OrbitCoreLib::ObjectDisable
APP_NAME = 'Archive'
ObjectAuthTitlesOptions = %W{submit_new fact_check}
AfterObjectAuthUrl = '/panel/archive/back_end/archive_file_categorys'
@@ -19,21 +18,6 @@ class ArchiveFileCategory
has_many :archive_files
validates :title, :at_least_one => true
searchable do
text :titles do
title_translations.to_a.collect{|t| t[1]}
end
boolean :frontend_search do
!disable
end
text :files do
archive_files.can_display.collect{|t| t.title_translations.to_a.collect{|t| t[1]}}
end
end
def pp_object
@@ -1,157 +1,196 @@
<% # encoding: utf-8 %>
<% content_for :page_specific_css do %>
<%= stylesheet_link_tag "lib/main-forms" %>
<%= stylesheet_link_tag "lib/fileupload" %>
<% end %>
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
<% end %>
<%= f.error_messages %>
<!--Widget start-->
<!-- Input Area -->
<div class="input-area">
<div id="sub-wiget">
<!-- Module Tabs -->
<div class="nav-name"><strong><%= t(:module) %></strong></div>
<ul class="nav nav-pills module-nav">
<li></li>
<li class="active">
<a href="#basic" data-toggle="tab"><%= t(:basic) %></a>
</li>
<% if show_form_status_field(@archive_file) %>
<li>
<a href="#status" data-toggle="tab"><%= t(:status) %></a>
</li>
<% end %>
<li>
<a href="#tag" data-toggle="tab"><%= t(:tags) %></a>
</li>
</ul>
<div id="widget-status" class="widget-box widget-size-300">
<div class="widget-action clear tip" title="Setting the announcement state">
<a class="action"><i class="icon-exclamation-sign icon-white"></i></a>
</div>
<h3 class="widget-title"><i class="icons-star"></i>Status</h3>
<div class="widget-content clear">
<div class="controls">
<%= f.check_box :is_top %><%= t('top') %>
<%= f.check_box :is_hot %><%= t('hot') %>
<%= f.check_box :is_hidden %><%= t('hide') %>
</div>
</div>
</div>
<!-- Module -->
<div class="tab-content module-area">
<div id="widget-tags" class="widget-box widget-size-300">
<div class="widget-action clear tip" title="Setting">
<a class="action"><i class="icon-cog icon-white"></i></a>
</div>
<h3 class="widget-title"><i class="icons-tag"></i>Tags</h3>
<div class="widget-content clear form-horizontal">
<% @tags.each do |tag| %>
<%= check_box_tag 'archive_file[tag_ids][]', tag.id, @archive_file.tag_ids.include?(tag.id)%>
<%= tag.name %>
<% end %>
</div>
</div>
<!-- Basic Module -->
<div class="tab-pane fade in active" id="basic">
</div>
<!-- Category -->
<div class="control-group">
<label class="control-label muted"><%= t(:category) %></label>
<div class="controls">
<%= f.select :category_id, @categories.collect{|t| [ t.title, t.id ]} %>
</div>
</div>
<!-- Sort -->
<div class="control-group">
<label class="control-label muted"><%= t(:sort_number) %></label>
<div class="controls">
<%= f.text_field :sort_number %>
</div>
</div>
<!--Wiget End-->
<!--Post Start-->
</div>
<div id="post-body">
<div id="post-body-content" class="clear">
<!-- Status Module -->
<% if show_form_status_field(@archive_file) %>
<div class="tab-pane fade" id="status">
<%= f.label :category %>
<%= f.select :archive_file_category_id, @archive_file_categorys.collect {|t| [ t.title, t.id ]} %>
<!-- Status -->
<div class="control-group">
<label class="control-label muted"><%= t(:status) %></label>
<div class="controls" data-toggle="buttons-checkbox">
<label class="checkbox inline btn <%= 'active' if @archive_file.is_top? %>">
<%= f.check_box :is_top %> <%= t(:top) %>
</label>
<label class="checkbox inline btn <%= 'active' if @archive_file.is_hot? %>">
<%= f.check_box :is_hot %> <%= t(:hot) %>
</label>
<label class="checkbox inline btn <%= 'active' if @archive_file.is_hidden? %>">
<%= f.check_box :is_hidden %> <%= t(:hide) %>
</label>
</div>
</div>
<%= f.label :sort_number %>
<%= f.text_field :sort_number %>
</div>
<% end %>
<ul class="nav nav-tabs">
<% @site_valid_locales.each_with_index do |locale, i| %>
<%# site_valid_locales_default_head.each_with_index do |locale, i| %>
<li <%= ( i == 0 ) ? "class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
<% end %>
</ul>
<!-- Tag Module -->
<div class="tab-pane fade" id="tag">
<div class="tab-content">
<!-- Tag -->
<div class="control-group">
<label class="control-label muted"><%= t(:tags) %></label>
<div class="controls" data-toggle="buttons-checkbox">
<% @tags.each do |tag| %>
<label class="checkbox inline btn <%= 'active' if @archive_file.tag_ids.include?(tag.id) %>">
<%= check_box_tag 'archive_file[tag_ids][]', tag.id, @archive_file.tag_ids.include?(tag.id) %> <%= tag.name %>
<%= hidden_field_tag 'archive_file[tag_ids][]', '' %>
</label>
<% end %>
</div>
</div>
<% @site_valid_locales.each_with_index do |locale, i| %>
</div>
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
<div class="title">
<%= f.label :title %>
<%= f.fields_for :title_translations do |f| %>
<%= I18nVariable.from_locale(locale) %>
<%= f.text_field locale, :class=>'post-title', :value => (@archive_file.title_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
</div>
<!-- Language Tabs -->
<div class="nav-name"><strong><%= t(:language) %></strong></div>
<ul class="nav nav-pills language-nav">
<% @site_valid_locales.each_with_index do |locale, i| %>
<li class="<%= 'active' if i == 0 %>">
<a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a>
</li>
<% end %>
</ul>
<% end %>
<!-- Language -->
<div class="tab-content language-area">
</div>
<% @site_valid_locales.each_with_index do |locale, i| %>
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
<!-- Title-->
<div class="control-group input-title">
<label class="control-label muted"><%= t(:title) %></label>
<div class="controls">
<%= f.fields_for :title_translations do |f| %>
<%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@archive_file.title_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
<div>
</div>
<div class="archive_file_multiples_block">
<% end %>
<table class="table table-condensed">
<thead>
<tr>
<th>排序數</th>
<th>File</th>
<th>File Name</th>
<th class="span2"><%= t('呈現語系')%></th>
<th class="span1"></th>
</tr>
</thead>
<tfoot>
<tr>
<td style="text-align:center" colspan="4">
<div id='add_archive_file_multiple' class="info_input archive_file_multiples_block">
<%= hidden_field_tag 'archive_file_multiple_field_count', @archive_file.archive_file_multiples.count %>
<a class="add"><span class="btn btn-primary btn-small"><i class="icon-plus icon-white"></i> ADD/新增</span></a>
</div>
</td>
</tr>
<!-- File -->
<div class="control-group">
<label class="control-label muted"><%= t(:file_) %></label>
<div class="controls">
</tfoot>
<tbody>
<!-- Exist -->
<% if @archive_file && !@archive_file.archive_file_multiples.blank? %>
<div class="exist">
<% @archive_file.archive_file_multiples.each_with_index do |archive_file_multiple, i| %>
<%= f.fields_for :archive_file_multiples, archive_file_multiple do |f| %>
<%= render :partial => 'form_file', :object => archive_file_multiple, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
<hr>
</div>
<% end %>
<% @archive_file.archive_file_multiples.asc(:_id).each_with_index do |archive_file_multiple, i| %>
<%= f.fields_for :archive_file_multiples, archive_file_multiple do |f| %>
<%= render :partial => 'form_file', :object => archive_file_multiple, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
</tbody>
</table>
<!-- Add -->
<div class="add-target">
</div>
<p class="add-btn">
<%= hidden_field_tag 'archive_file_multiple_field_count', @archive_file.archive_file_multiples.count %>
<a id="add_file" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
</p>
</div>
</div>
</div>
<!--Post End-->
<div class="form-actions">
<%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %>
<%= hidden_field_tag 'filter', params[:filter] %>
<%= f.submit t('submit'), :class=>'btn btn-primary' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Form Actions -->
<div class="form-actions">
<%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %>
<%= f.submit t('submit'), class: 'btn btn-primary' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div>
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "archive_form" %>
<script>
$('#add_archive_file_multiple a.add').live('click', function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_archive_file_multiples", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var new_form_file = $("<%= escape_javascript(add_attribute 'form_file', f, :archive_file_multiples) %>".replace(old_id, new_id));
new_form_file.find('input#archive_file_archive_file_multiples_attributes_'+new_id+'_sort_number').val(new_id * 10)
$(this).parents('table').append(new_form_file);
});
$('.archive_file_multiples_block a.delete').live('click', function(){
$(this).parents('.list_item').remove();
});
$('.action a.remove_existing_record').live('click', function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#archive_file_" + $(this).prev().attr('value')).hide();
});
</script>
<script>
$(document).ready(function() {
$('.main-forms .add-on').tooltip();
$(document).on('click', '#add_file', function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_archive_file_multiples", "g");
var on = $('.language-nav li.active').index();
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
$(this).prev().attr('value', parseInt(new_id) + 1);
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_file', f, :archive_file_multiples) %>").replace(old_id, new_id));
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
});
$('.main-forms .add-on').tooltip();
});
$('.for_preview').popover({ html : true });
$(document).on('click', '.delete_file', function(){
$(this).parents('.input-prepend').remove();
});
$(document).on('click', '.remove_existing_record', function(){
if(confirm("<%= I18n.t(:sure?)%>")){
$(this).next('.should_destroy').attr('value', 1);
$(this).parents('.start-line').hide();
}
});
});
</script>
<% end %>
@@ -1,64 +1,56 @@
<% # encoding: utf-8 %>
<div class="fileupload fileupload-new start-line" data-provides="fileupload">
<%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %>
<div class="input-prepend input-append">
<label>
<span class="add-on btn btn-file" title="<%= t(:file_) %>">
<i class="icons-paperclip"></i>
<%= f.file_field :file %>
</span>
<div class="uneditable-input input-medium">
<i class="icon-file fileupload-exists"></i>
<span class="fileupload-preview"><%= t(:select_file) %></span>
</div>
</label>
<span class="add-on icons-pencil" title="<%= 'File Name' %>"></span>
<span class="tab-content">
<% @site_valid_locales.each_with_index do |locale, i| %>
<span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
<%= f.fields_for :file_title_translations do |f| %>
<%= f.text_field locale, :class => "input-medium", placeholder: 'File Name', :value => (form_file.file_title_translations[locale] rescue nil) %>
<% end %>
</span>
<% end %>
</span>
<tr id="<%= "archive_file_multiple_#{form_file.id}" if !form_file.new_record? %>" class='list_item'>
<td>
<div class="control-group">
<div class="controls">
<%= f.text_field :sort_number %>
</div>
</div>
</td>
<td>
<div class="control-group">
<div class="controls">
<%= f.file_field :file %>
<%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %>
</div>
</div>
</td>
<td>
<span class="add-on icon-list-ol" title="<%= t(:sort_number) %>"></span>
<span class="tab-content">
<%= f.text_field :sort_number , :class => "input-mini"%>
</span>
<div class="tab-content">
<span class="add-on btn-group btn" title="<%= t('archive.show_lang') %>">
<%= t('archive.show_lang') %> <span class="caret"></span>
<ul class="dropdown-menu">
<% @site_valid_locales.each do |locale| %>
<li>
<label class="checkbox">
<%= check_box_tag "archive_file[archive_file_multiples_attributes][#{( form_file.new_record? ? 'new_archive_file_multiples' : "#{i}" )}][choose_lang][]", locale, (form_file.choose_lang.nil? ? true : form_file.choose_lang.include?(locale)) %>
<%= I18nVariable.from_locale(locale) %>
</label>
</li>
<% end %>
</ul>
<%= hidden_field_tag 'archive_file[archive_file_multiples_attributes][0][choose_lang][]', '' %>
</span>
<% @site_valid_locales.each_with_index do |locale, i| %>
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
<%#= f.fields_for :i18n_variable, (form_file.new_record? ? form_file.build_i18n_variable : form_file.i18n_variable ) do |f| %>
<%= f.fields_for :file_title_translations do |f| %>
<div class="control-group">
<label for="link-<%= locale %>" class="control-label"><%= I18nVariable.from_locale(locale) %></label>
<div class="controls">
<%= f.text_field locale, :class=>'post-file_title', :value => (form_file.file_title_translations[locale] rescue nil) %>
</div>
</div>
<% end %>
</div>
<% end %>
</div>
</td>
<td>
<% @site_valid_locales.each do |locale| %>
<%= check_box_tag "archive_file[archive_file_multiples_attributes][#{( form_file.new_record? ? 'new_archive_file_multiples' : "#{i}" )}][choose_lang][]", locale, (form_file.choose_lang.nil? ? true : form_file.choose_lang.include?(locale)) %>
<%= I18nVariable.from_locale(locale) %>
<% end %>
<%= hidden_field_tag 'archive_file[archive_file_multiples_attributes][0][choose_lang][]', '' %>
</td>
<td>
<span class="action">
<% if form_file.new_record? %>
<a class="delete"><i class="icon-remove"></i></a>
<% else %>
<%= f.hidden_field :id %>
<a class="remove_existing_record"><i class="icon-remove"></i></a>
<%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
</span>
</td>
</tr>
<span class="delete_file add-on btn" title="<%= t(:delete) %>">
<% if form_file.new_record? %>
<a class="icon-trash"></a>
<% else %>
<%= f.hidden_field :id %>
<a class="remove_existing_record icon-remove"></a>
<%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
</span>
</div>
</div>
@@ -1,5 +1,5 @@
<h1><%= t('archive.editing_archive') %></h1>
<%= form_for @archive_file, :url => panel_archive_back_end_archive_file_path(@archive_file), :html => {:class => 'clear'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<% end %>
<%= form_for @archive_file, url: panel_archive_back_end_archive_file_path(@archive_file), html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render partial: 'form', locals: {f: f} %>
</fieldset>
<% end %>
@@ -1,24 +1,48 @@
<%= render 'filter' %>
<% set_default_index do
objects @archive_files
filterable
sortable
quick_edit_link type: 'edit',
link: 'edit_panel_archive_back_end_archive_file_path'
quick_edit_link type: 'detail'
quick_edit_link type: 'delete',
link: 'panel_archive_back_end_archive_file_path'
field type: 'status',
db_field: @statuses,
translation: 'status',
hide: 'phone',
sort: 'status',
header_class: 'span2'
field type: 'associated',
associated_value: 'title',
db_field: 'category',
translation: 'category',
hide: 'phone',
sort: 'category',
header_class: 'span2'
field type: 'field',
db_field: 'title',
translation: 'title',
sort: 'title',
link: 'panel_archive_front_end_archive_file_path',
quick_edit: true
field type: 'tags',
db_field: 'tags',
translation: 'tags',
hide: 'all',
sort: 'tags'
filter_field type: 'array',
values: @statuses,
translation: 'status'
filter_field type: 'objects',
values: @categories,
translation: 'category',
object_field: 'title'
filter_field type: 'objects',
values: @tags,
translation: 'tags',
object_field: 'name'
footer link: 'new_panel_archive_back_end_archive_file_path'
end %>
<table class="table main-list">
<thead>
<tr>
<th class="span1"></th>
<th class="span1"></th>
<th class="span1"></th>
<th class="span2"></th>
<th class="span3"></th>
<th class="span2"></th>
</tr>
</thead>
<tbody id="tbody_archive">
<%= render :partial => 'archive_file', :collection => @archive_files %>
</tbody>
</table>
<div class="form-actions form-fixed pagination-right">
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t(:add), new_panel_archive_back_end_archive_file_path, :class => 'btn btn-primary pull-right' if (is_manager? rescue nil) %>
<div id="archive_file_pagination" class="paginationFixed">
<%= paginate @archive_files, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>
</div>
</div>
<%= render 'admin/default_index/index' %>
@@ -1,9 +1,5 @@
<%= flash_messages %>
<h1><%= t('archive_file.new_archive') %></h1>
<%= form_for @archive_file, :url => panel_archive_back_end_archive_files_path, :html => {:class => 'clear'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<%= form_for @archive_file, url: panel_archive_back_end_archive_files_path, html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render partial: 'form', locals: {f: f} %>
</fieldset>
<% end %>
<%#= link_back %>
@@ -1,5 +1,6 @@
<% # encoding: utf-8 %>
<% if @frontend_style == '1' %>
<div class="o-archives layout-table">
@@ -15,15 +16,19 @@
<% @archive_files.each_with_index do |post,i| %>
<tr <% if ( (i + 1) % 2 ) == 0 %> class="even" <% end %>>
<td><div class="o-archives-title"><%= post.title %></div></td>
<td>
<div class="o-archives-title"><%= post.title %>
<% if !post.is_hot.blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
</div>
</td>
<td>
<div class="o-archives-list-item">
<% if !post.archive_file_multiples.blank? %>
<ol>
<% post.archive_file_multiples.asc(:_id).each do | afile | %>
<% post.archive_file_multiples.asc(:sort_number).each do | afile | %>
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
<li>
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
<%= link_to (!afile.file_title.blank? ? afile.file_title : t('archive.download') ), afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} if afile.file.file %>
<%= post.get_file_icon(afile.file.url) %>
</li>
<% end %>
@@ -33,7 +38,7 @@
</div>
</td>
<td><div class="o-archives-category">
<%= post.archive_file_category.title %>
<%= post.category.title if !post.category.blank? %>
</div></td>
</tr>
<% end %>
@@ -42,7 +47,44 @@
</table>
</div>
<%= paginate @archive_files, :param_name => :page_main, :params => {:inner => 'false'} %>
<%= paginate @archive_files, :param_name => :page_main, :params => {:inner => 'false'} %>
<% elsif @frontend_style == '2' %>
<div class="o-archives">
<div class="o-archives-content">
<% @archive_file_datas.each do |afcpost| %>
<div class="o-archives-group">
<h2 class="o-archives-category h2"><%= afcpost["title"] %></h2>
<div class="o-archives-content">
<div class="o-archives-list">
<ul>
<% afcpost["archive_files"].each do |post| %>
<li>
<h3 class="o-archives-title h3">
<%= post["title"] %>
<% if !post["is_hot"].blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
</h3>
<div class="o-archives-list-item">
<ol>
<% post["archive_file_multiples"].each do | afile | %>
<li>
<%= link_to afile["file_title"], afile["url"], {:target => '_blank', :title => afile["file_title"], :class => "o-archives-file"} %>
<%= afile["icon"] %>
</li>
<% end %>
</ol>
</div>
</li>
<% end %>
</ul>
</div>
</div>
<% end %>
</div>
</div>
<% end %>
<%= stylesheet_link_tag "archive/archives" %>
@@ -13,7 +13,7 @@
<% @archive_file.archive_file_multiples.each do | afile | %>
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
<li>
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
<%= link_to (!afile.file_title.blank? ? afile.file_title : t('download_') ), afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} if afile.file.file %>
<%= @archive_file.get_file_icon(afile.file.url) %>
</li>
<% end %>
@@ -16,7 +16,11 @@
<tbody>
<% @archive_files.each_with_index do |post,i| %>
<tr <% if ( (i + 1) % 2 ) == 0 %> class="even" <% end %>>
<td><div class="o-archives-title"><%= post.title %></div></td>
<td>
<div class="o-archives-title"><%= post.title %>
<% if !post.is_hot.blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
</div>
</td>
<td>
<div class="o-archives-list-item">
<% if !post.archive_file_multiples.blank? %>
@@ -24,7 +28,7 @@
<% post.archive_file_multiples.asc(:_id).each do | afile | %>
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
<li>
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
<%= link_to (!afile.file_title.blank? ? afile.file_title : t('archive.download') ), afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} if afile.file.file %>
<%= post.get_file_icon(afile.file.url) %>
</li>
<% end %>
@@ -34,7 +38,7 @@
</div>
</td>
<td><div class="o-archives-category">
<%= post.archive_file_category.title %>
<%= post.category.title if !post.category.blank? %>
</div></td>
</tr>
<% end %>
@@ -42,57 +46,50 @@
</tbody>
</table>
</div>
<div class="pull_right">
<% if !params[:category_id].blank? %>
<%= link_to t(:more_plus), panel_archive_front_end_archive_files_path(:category_id => @part.category) %>
<% else %>
<%= link_to t(:more_plus), panel_archive_front_end_archive_files_path %>
<% end %>
</div>
<% elsif @widget_style == '2' %>
<div class="o-archives">
<div class="o-archives-content">
<% @archive_file_categorys.each do |afcpost| %>
<% @archive_file_datas.each do |afcpost| %>
<div class="o-archives-group">
<% if @category_id.blank? %>
<h2 class="o-archives-category h2"><%= afcpost.title %></h2>
<% end %>
<h2 class="o-archives-category h2"><%= afcpost["title"] %></h2>
<div class="o-archives-content">
<div class="o-archives-list">
<ul>
<% afcpost.archive_files.can_display.desc( :is_top ).each do |post| %>
<% afcpost["archive_files"].each do |post| %>
<li>
<h3 class="o-archives-title h3"><%= post.title %></h3>
<h3 class="o-archives-title h3">
<%= post["title"] %>
<% if !post["is_hot"].blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
</h3>
<div class="o-archives-list-item">
<% if !post.archive_file_multiples.blank? %>
<ol>
<% post.archive_file_multiples.asc(:_id).each do | afile | %>
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
<% post["archive_file_multiples"].each do | afile | %>
<li>
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
<%= post.get_file_icon(afile.file.url) %>
<%= link_to afile["file_title"], afile["url"], {:target => '_blank', :title => afile["file_title"], :class => "o-archives-file"} %>
<%= afile["icon"] %>
</li>
<% end %>
<% end %>
</ol>
<% end %>
</div>
</li>
<% end %>
</ul>
</div>
</div>
<% end %>
</div>
</div>
<% end %>
<div class="pull_right">
<% if !params[:category_id].blank? %>
<%= link_to t(:more_plus), panel_archive_front_end_archive_files_path(:category_id => @part.category) %>
<% else %>
<%= link_to t(:more_plus), panel_archive_front_end_archive_files_path %>
<% end %>
</div>
+2
View File
@@ -1,6 +1,8 @@
en:
archive:
show_lang: Language
download: Download
archive: Archive
Title: Title
Files: Files
@@ -1,6 +1,8 @@
zh_tw:
archive:
show_lang: 呈現語系
download: 檔案下載
archive: 檔案室
Title: 標題
Files: 檔案
+9 -10
View File
@@ -12,14 +12,16 @@ module Archive
update_info 'some update_info'
front_end do
app_page 'archive_files' do
app_page 'archive_files' do
frontend_i18n "archive.frontend.archive"
style ["1","2"]
end
end
category ["ArchiveFileCategory"]
# category ["ArchiveFileCategory"]
authorizable
categorizable
taggable
widgets do
@@ -35,7 +37,7 @@ module Archive
customize_widget "index" do
widget_i18n "archive.widget.index"
style ["1"]
style ["1","2"]
end
customize_widget "archive_search_block" do
@@ -50,7 +52,8 @@ module Archive
side_bar do
head_label_i18n 'archive.archive',:icon_class=>"icons-archive"
available_for [:admin,:guest,:manager,:sub_manager]
active_for_controllers ({:private=>['archive_file_categorys','archive_files'],:public=>['panel/archive/back_end/tags']})
# active_for_controllers ({:private=>['archive_file_categorys','archive_files'],:public=>['panel/archive/back_end/tags']})
active_for_controllers ({:private=>['archive_file_categorys','archive_files','module_tags', 'categories']})
active_for_object_auth ['ArchiveFileCategory']
head_link_path "panel_archive_back_end_archive_files_path"
@@ -66,19 +69,15 @@ module Archive
:active_for_action=>{:archive_files=>:new},
:available_for => [:sub_manager]
context_link 'categories',
:link_path=>"panel_archive_back_end_archive_file_categorys_path" ,
:link_path=>"admin_module_app_categories_path(get_module_app)" ,
:priority=>3,
:active_for_action=>{:archive_file_categorys=>:index},
:active_for_category => 'Archive',
:available_for => [:manager]
context_link 'tags',
:link_path=>"admin_module_tags_path(module_app_id: get_module_app)" ,
:priority=>4,
:active_for_tag => 'Archive',
:available_for => [:manager]
context_link 'module_authorization',
:link_path=>"admin_authorizations_path(get_module_app.key)",
:priority=>5,
:available_for => [:manager]
end
end
+42 -21
View File
@@ -1,69 +1,90 @@
/* General style with default layout */
.o-links {}
.o-links-group {
.o-links .o-links-group {
margin: 20px 0 0 0;
padding: 20px 0 0 0;
border-top: dashed 1px #EEE;
}
.o-links-group:first-child {
.o-links .o-links-group:first-child {
margin: 0;
padding: 0;
border: 0;
}
.o-links-category {
.o-links .o-links-category {
padding-bottom: 16px;
border-bottom: solid 2px #CCC;
font-weight: bold;
font-size: 1.2em;
}
.o-links-content {}
.o-links-content > ul {
.o-links .o-links-content {}
.o-links .o-links-content > ul {
margin: 0;
padding: 0;
list-style: none;
}
.o-links-content > ul > li {}
.o-links-list {}
.o-links-list > ul {}
.o-links-list > ul > li {
.o-links .o-links-content > ul > li {
margin-bottom: 30px;
}
.o-links .o-links-list {}
.o-links .o-links-list > ul {}
.o-links .o-links-list > ul > li {
padding: 10px 0 0 0;
margin: 10px 0 0 0;
border-top: solid 1px #eee;
}
.o-links-list > ul > li:first-child {
.o-links .o-links-list > ul > li:first-child {
padding: 0;
margin: 0;
border: 0;
}
.o-links-title {}
.o-links-link {
.o-links .o-links-title {}
.o-links .o-links-link {
font-weight: bold;
}
.o-links-link:hover {}
.o-links-description {}
.o-links .o-links-link:hover {}
.o-links .o-links-description {
margin: 12px 0;
font-size: 0.85em;
line-height: 1.5em;
}
.o-links .o-links-hot {
background-color: #D83131;
border-radius: 3px;
color: #FFFFFF;
display: inline-block;
font-size: 11px;
font-weight: normal;
line-height: 20px;
margin: 0 0 0 8px;
padding: 0 4px;
vertical-align: top;
}
/* Tag list */
.o-links-tag-list {
.o-links .o-links-tag-list {
margin: 0 0 16px 0;
}
.o-links-tag-list ul {
.o-links .o-links-tag-list ul {
margin: 0 -4px;
padding: 0;
list-style: none;
}
.o-links-tag-list ul:after {
.o-links .o-links-tag-list ul:after {
content: ".";
clear: both;
display: block;
height: 0;
visibility: hidden;
}
.o-links-tag-list li {
.o-links .o-links-tag-list li {
float: left;
margin: 0 4px 8px 4px;
}
.o-links-tag {
.o-links .o-links-tag {
display: block;
border: solid 1px #ccc;
padding: 2px 6px;
padding: 4px;
font-size: 0.85em;
}
.o-links-tag:hover {}
.o-links .o-links-tag:hover {}
@@ -1,50 +1,68 @@
class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
include OrbitControllerLib::DivisionForDisable
# include OrbitControllerLib::DivisionForDisable
# before_filter :for_app_manager,:except => [:index,:show]
before_filter :force_order_for_visitor,:only=>[:index]
before_filter :force_order_for_user,:except => [:index]
before_filter :for_app_sub_manager,:except => [:index]
before_filter :only => [ :new,:edit,:update,:create] do |controller|
controller.get_categorys('WebLinkCategory')
# before_filter :only => [ :new,:edit,:update,:create] do |controller|
# controller.get_categorys('WebLinkCategory')
# end
before_filter :only => [ :new, :create, :edit, :update ] do |controller|
@categories = get_categories_for_form
end
def index
@tags = get_tags
@categories = get_categories_for_index
@statuses = get_statuses
category_ids = @categories.collect{|t| t.id}
get_categorys("WebLinkCategory",params[:web_link_category_id])
@filter = params[:filter]
new_filter = params[:new_filter]
if @filter && params[:clear]
@filter.delete(params[:type])
elsif @filter && new_filter
if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
@filter[new_filter[:type]].delete(new_filter[:id].to_s)
elsif @filter.has_key?(new_filter[:type])
@filter[new_filter[:type]] << new_filter[:id].to_s
else
@filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
end
elsif new_filter
@filter = {new_filter[:type] => [new_filter[:id].to_s]}
end
@web_link_categories = get_categories_for_index("WebLinkCategory")
@web_link_category_ids = @web_link_categories.collect{|t| t.id.to_s} + [nil]
# @web_links = WebLink.search(params[:category_id])
#@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered_web_links : WebLink.all.page(params[:page]).per(10)
@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered("web_link",:web_link_category_id.in => @web_link_category_ids) : get_viewable("web_link",:web_link_category_id.in => @web_link_category_ids)
@tags = get_tags
@web_links = get_sorted_and_filtered("web_link", :category_id.in => category_ids)
respond_to do |format|
format.html # index.html.erb
format.js { }
format.xml { render :xml => @web_links }
format.js
end
end
# def index
# get_categorys("WebLinkCategory",params[:web_link_category_id])
# @filter = params[:filter]
# new_filter = params[:new_filter]
# if @filter && params[:clear]
# @filter.delete(params[:type])
# elsif @filter && new_filter
# if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
# @filter[new_filter[:type]].delete(new_filter[:id].to_s)
# elsif @filter.has_key?(new_filter[:type])
# @filter[new_filter[:type]] << new_filter[:id].to_s
# else
# @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
# end
# elsif new_filter
# @filter = {new_filter[:type] => [new_filter[:id].to_s]}
# end
# @web_link_categories = get_categories_for_index("WebLinkCategory")
# @web_link_category_ids = @web_link_categories.collect{|t| t.id.to_s} + [nil]
# # @web_links = WebLink.search(params[:category_id])
# #@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered_web_links : WebLink.all.page(params[:page]).per(10)
# @web_links = (params[:sort] || @filter) ? get_sorted_and_filtered("web_link",:web_link_category_id.in => @web_link_category_ids) : get_viewable("web_link",:web_link_category_id.in => @web_link_category_ids)
# @tags = get_tags
# respond_to do |format|
# format.html # index.html.erb
# format.xml { render :xml => @web_links }
# format.js
# end
# end
# GET /web_links/1
# GET /web_links/1.xml
def show
@@ -58,7 +76,13 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
# GET /web_links/new
# GET /web_links/new.xml
def new
@web_link = WebLink.new
if(session[:in_validate_object].blank?)
@web_link = WebLink.new
else
@web_link = session[:in_validate_object]
session[:in_validate_object] = {}
end
@tags = get_tags
respond_to do |format|
@@ -70,7 +94,11 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
# GET /web_links/1/edit
def edit
@web_link = WebLink.find(params[:id])
@tags = get_tags
if !current_user.admin?
redirect_to :action => :index
else
@tags = get_tags
end
end
# POST /web_links
@@ -17,24 +17,45 @@ class Panel::WebResource::FrontEnd::WebLinksController < OrbitWidgetController
if @item.frontend_data_count
@page_num = @item.frontend_data_count
else
@page_num = 0
@page_num = 4
end
date_now = Time.now
@archive_file_categorys = WebLinkCategory.all
# @web_link_categorys = get_categories_for_index
if !params[:category_id].blank?
@web_links = WebLink.all.can_display.any_in(:web_link_category_id => params[:category_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@web_link_categorys = WebLinkCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
elsif !params[:tag_id].blank?
@web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
get_categorys
@web_link_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
else
@web_links = WebLink.all.can_display.merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@web_link_categorys = @module_app.categories.enabled
end
@web_link_datas = Array.new
@web_link_categorys.each do |wlcg|
if !params[:category_id].blank? && !params[:tag_id].blank?
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at )
elsif !params[:category_id].blank?
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id]).desc( :is_top, :created_at )
elsif !params[:tag_id].blank?
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at )
else
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id).desc( :is_top, :created_at )
end
web_link_datas = Array.new
@web_links.each do |wl|
web_link_datas << {
"title" => wl.title,
"is_hot" => (!wl.is_hot.blank? ? '1' : ''),
"context" => wl.context,
"url" => wl.url
} if !wl.blank?
end
@web_link_datas << { "title" => wlcg.title, "web_links" => web_link_datas } if !@web_links.blank?
get_categorys
end
end
@@ -1,4 +1,5 @@
class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController
def initialize
super
@app_title = 'web_resource'
@@ -30,14 +31,38 @@ class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController
date_now = Time.now
if !params[:category_id].blank?
@web_links = WebLink.all.can_display.any_in(:web_link_category_id => params[:category_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
@web_link_categorys = WebLinkCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
elsif !params[:tag_id].blank?
@web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
get_categorys
@web_link_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
else
@web_links = WebLink.all.can_display.merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
get_categorys
@web_link_categorys = @module_app.categories.enabled
end
@web_link_datas = Array.new
@web_link_categorys.each do |wlcg|
if !params[:category_id].blank? && !params[:tag_id].blank?
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
elsif !params[:category_id].blank?
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
elsif !params[:tag_id].blank?
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
else
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
end
web_link_datas = Array.new
@web_links.each do |wl|
web_link_datas << {
"title" => wl.title,
"is_hot" => (!wl.is_hot.blank? ? '1' : ''),
"context" => wl.context,
"url" => wl.url
} if !wl.blank?
end
@web_link_datas << { "title" => wlcg.title, "web_links" => web_link_datas } if !@web_links.blank?
end
end
@@ -1,12 +1,14 @@
# encoding: utf-8
class WebLink
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::MultiParameterAttributes
include Sunspot::Mongo
include OrbitCategory::Categorizable
include OrbitModel::LanguageRestrict
include OrbitModel::Status
include OrbitModel::TimeFrame
include OrbitTag::Taggable
field :title, localize: true
@@ -14,9 +16,9 @@ class WebLink
field :url, localize: true
field :create_user_id
field :update_user_id
field :update_user_id, :class_name => "User"
belongs_to :web_link_category
# belongs_to :web_link_category
before_save :clean_tags
@@ -1,112 +1,152 @@
<div id= "poststuff">
<% # encoding: utf-8 %>
<% content_for :page_specific_css do %>
<%= stylesheet_link_tag "lib/main-forms" %>
<%= stylesheet_link_tag "lib/fileupload" %>
<% end %>
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
<% end %>
<%= f.error_messages %>
<!--Widget start-->
<div id="sub-wiget">
<div id="widget-status" class="widget-box widget-size-300">
<div class="widget-action clear tip" title="Setting the announcement state">
<a class="action"><i class="icon-exclamation-sign icon-white"></i></a>
</div>
<h3 class="widget-title"><i class="icons-star"></i><%= t(:status) %></h3>
<div class="widget-content clear">
<div class="controls">
<%= content_tag :label,:class => "checkbox inline" do -%>
<%= f.check_box :is_top %>
<%= t('top') %>
<% end -%>
<%= content_tag :label,:class => "checkbox inline" do -%>
<%= f.check_box :is_hot %>
<%= t('hot') %>
<% end -%>
<%= content_tag :label,:class => "checkbox inline" do -%>
<%= f.check_box :is_hidden %>
<%= t('hide') %>
<% end -%>
</div>
</div>
</div>
<!-- Input Area -->
<div class="input-area">
<div id="widget-tags" class="widget-box widget-size-300">
<div class="widget-action clear tip" title="Setting">
<a class="action"><i class="icon-cog icon-white"></i></a>
</div>
<h3 class="widget-title"><i class="icons-tag"></i><%= t('nccu.tags') %></h3>
<div class="widget-content clear form-horizontal">
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
<%= check_box_tag 'web_link[tag_ids][]', tag.id, @web_link.tag_ids.include?(tag.id)%>
<%= tag.name %>
<%= hidden_field_tag 'web_link[tag_ids][]', '' %>
<% end %>
<% end %>
</div>
</div>
</div>
<!--Wiget End-->
<!--Post Start-->
<!-- Module Tabs -->
<div class="nav-name"><strong><%= t(:module) %></strong></div>
<ul class="nav nav-pills module-nav">
<li></li>
<li class="active">
<a href="#basic" data-toggle="tab"><%= t(:basic) %></a>
</li>
<% if show_form_status_field(@web_link) %>
<li>
<a href="#status" data-toggle="tab"><%= t(:status) %></a>
</li>
<% end %>
<li>
<a href="#tag" data-toggle="tab"><%= t(:tags) %></a>
</li>
</ul>
<div id="post-body">
<div id="post-body-content" class="clear">
<%= f.label :category ,t(:category)%>
<%= f.select :web_link_category_id, @web_link_categorys.collect {|t| [ t.title, t.id ]} %>
<ul class="nav nav-tabs">
<% @site_valid_locales.each_with_index do |locale, i| %>
<li <%= ( i == 0 ) ? "class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
<% end %>
</ul>
<div class="tab-content">
<% @site_valid_locales.each_with_index do |locale, i| %>
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
<div class="title">
<%= f.label :name , t('nccu.link_name') %>
<%= f.fields_for :title_translations do |f| %>
<%= I18nVariable.from_locale(locale) %>
<%= f.text_field locale, :class=>'post-title', :value => (@web_link.title_translations[locale] rescue nil) %>
<% end %>
</div>
<!-- Module -->
<div class="tab-content module-area">
<div class="title">
<%= f.label :describe, t(:description) %>
<%= f.fields_for :context_translations do |f| %>
<%= I18nVariable.from_locale(locale) %>
<%= f.text_area locale, :style=>"width:100%", :value => (@web_link.context_translations[locale] rescue nil) %>
<% end %>
</div>
<!-- Basic Module -->
<div class="tab-pane fade in active" id="basic">
<div class="title">
<%= f.label :url , t(:url) %>
<%= f.fields_for :url_translations do |f| %>
<%= I18nVariable.from_locale(locale) %>
<%= f.text_field locale, :class=>'post-title', :value => (@web_link.url_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
<!-- Category -->
<div class="control-group">
<label class="control-label muted"><%= t(:category) %></label>
<div class="controls">
<%= f.select :category_id, @categories.collect{|t| [ t.title, t.id ]} %>
</div>
</div>
<% end %>
</div>
</div>
<!--Post End-->
</div>
</div>
<div class="form-actions">
<%= f.submit t('submit'), :class=>'btn btn-primary' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div>
</div>
<!-- Status Module -->
<% if show_form_status_field(@web_link) %>
<div class="tab-pane fade" id="status">
<!-- Status -->
<div class="control-group">
<label class="control-label muted"><%= t(:status) %></label>
<div class="controls" data-toggle="buttons-checkbox">
<label class="checkbox inline btn <%= 'active' if @web_link.is_top? %>">
<%= f.check_box :is_top %> <%= t(:top) %>
</label>
<label class="checkbox inline btn <%= 'active' if @web_link.is_hot? %>">
<%= f.check_box :is_hot %> <%= t(:hot) %>
</label>
<label class="checkbox inline btn <%= 'active' if @web_link.is_hidden? %>">
<%= f.check_box :is_hidden %> <%= t(:hide) %>
</label>
</div>
</div>
</div>
<% end %>
<!-- Tag Module -->
<div class="tab-pane fade" id="tag">
<!-- Tag -->
<div class="control-group">
<label class="control-label muted"><%= t(:tags) %></label>
<div class="controls" data-toggle="buttons-checkbox">
<% @tags.each do |tag| %>
<label class="checkbox inline btn <%= 'active' if @web_link.tag_ids.include?(tag.id) %>">
<%= check_box_tag 'web_link[tag_ids][]', tag.id, @web_link.tag_ids.include?(tag.id) %> <%= tag.name %>
<%= hidden_field_tag 'web_link[tag_ids][]', '' %>
</label>
<% end %>
</div>
</div>
</div>
</div>
<!-- Language Tabs -->
<div class="nav-name"><strong><%= t(:language) %></strong></div>
<ul class="nav nav-pills language-nav">
<% @site_valid_locales.each_with_index do |locale, i| %>
<li class="<%= 'active' if i == 0 %>">
<a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a>
</li>
<% end %>
</ul>
<!-- Language -->
<div class="tab-content language-area">
<% @site_valid_locales.each_with_index do |locale, i| %>
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
<!-- Title-->
<div class="control-group input-title">
<label class="control-label muted"><%= t(:title) %></label>
<div class="controls">
<%= f.fields_for :title_translations do |f| %>
<%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@web_link.title_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
<!-- Context-->
<div class="control-group input-title">
<label class="control-label muted"><%= t(:description) %></label>
<div class="controls">
<%= f.fields_for :context_translations do |f| %>
<%= f.text_area locale, rows: 5, class: "input-block-level", value: (@web_link.context_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
<!-- Url-->
<div class="control-group input-title">
<label class="control-label muted"><%= t(:url) %></label>
<div class="controls">
<%= f.fields_for :url_translations do |f| %>
<%= f.text_field locale, class: "input-block-level", placeholder: t(:url), value: (@web_link.url_translations[locale] rescue nil) %>
<% end %>
</div>
</div>
</div>
<% end %>
</div>
</div>
<!-- Form Actions -->
<div class="form-actions">
<%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %>
<%= f.submit t('submit'), class: 'btn btn-primary' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div>
@@ -1,5 +1,5 @@
<h1><%= t('web_link.editing_web_resource') %></h1>
<%= form_for @web_link, :url => panel_web_resource_back_end_web_link_path(@web_link), :html => {:class => 'clear'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<% end %>
<%= form_for @web_link, url: panel_web_resource_back_end_web_link_path(@web_link), html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render partial: 'form', locals: {f: f} %>
</fieldset>
<% end %>
@@ -1,22 +1,49 @@
<%= render 'filter' %>
<table class="table main-list">
<thead>
<tr>
<th class="span1"></th>
<th class="span1"></th>
<th class="span2"></th>
<th class="span3"></th>
<th class="span2"></th>
</tr>
</thead>
<tbody id="tbody_web_links" class="sort-holder">
<%= render :partial => 'web_link', :collection => @web_links %>
</tbody>
</table>
<% set_default_index do
objects @web_links
filterable
sortable
quick_edit_link type: 'edit',
link: 'edit_panel_web_resource_back_end_web_link_path'
quick_edit_link type: 'detail'
quick_edit_link type: 'delete',
link: 'panel_web_resource_back_end_web_link_path'
field type: 'status',
db_field: @statuses,
translation: 'status',
hide: 'phone',
sort: 'status',
header_class: 'span2'
field type: 'associated',
associated_value: 'title',
db_field: 'category',
translation: 'category',
hide: 'phone',
sort: 'category',
header_class: 'span2'
field type: 'field',
db_field: 'title',
translation: 'title',
sort: 'title',
link: 'panel_web_resource_front_end_web_link_path',
quick_edit: true,
header_class: 'span5'
field type: 'tags',
db_field: 'tags',
translation: 'tags',
hide: 'all',
sort: 'tags'
filter_field type: 'array',
values: @statuses,
translation: 'status'
filter_field type: 'objects',
values: @categories,
translation: 'category',
object_field: 'title'
filter_field type: 'objects',
values: @tags,
translation: 'tags',
object_field: 'name'
footer link: 'new_panel_web_resource_back_end_web_link_path'
end %>
<div class="form-actions form-fixed pagination-right">
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t(:add), new_panel_web_resource_back_end_web_link_path, :class => 'btn btn-primary pull-right' if (is_manager? rescue nil) %>
<div id="web_link_pagination" class="paginationFixed">
<%= paginate @web_links, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>
</div>
</div>
<%= render 'admin/default_index/index' %>
@@ -1,10 +1,5 @@
<%= flash_messages %>
<div id="poststuff">
<h1><%= t('web_link.new_web_resource') %></h1>
<%= form_for @web_link, :url => panel_web_resource_back_end_web_links_path, :html => {:class => 'clear'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<%= form_for @web_link, url: panel_web_resource_back_end_web_links_path, html: {class: "form-horizontal main-forms previewable"} do |f| %>
<fieldset>
<%= render partial: 'form', locals: {f: f} %>
</fieldset>
<% end %>
</div>
<%#= link_back %>
@@ -4,17 +4,18 @@
<div class="o-links-content">
<ul>
<% @web_link_categorys.each do |wlcg| %>
<% if wlcg.web_links.count > 0 %>
<% @web_link_datas.each do |wlcg| %>
<li>
<h3 class="o-links-category"><%= wlcg.title rescue nil%></h3>
<h3 class="o-links-category"><%= wlcg["title"] rescue nil%></h3>
<div class="o-links-list">
<ul>
<% wlcg.web_links.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num).each do |post| %>
<% wlcg["web_links"].each do |post| %>
<li>
<%= link_to post.title, post.url, {:target => '_blank', :title => post.title, :class=>"o-links-title"} %>
<div class="o-links-description"><%= post.context %></div>
<%= link_to post["title"], post["url"], {:target => '_blank', :title => post["title"], :class=>"o-links-title"} %>
<% if !post["is_hot"].blank? %><span class="o-links-hot"><%= t('hot')%></span><% end %>
<div class="o-links-description"><%= post["context"] %></div>
</li>
<% end %>
@@ -23,12 +24,11 @@
</li>
<% end %>
<% end %>
</ul>
</div>
</div>
<%= paginate @web_links, :param_name => :page_main, :params => {:inner => false}%>
<%#= paginate @web_links, :param_name => :page_main, :params => {:inner => false}%>
<%= stylesheet_link_tag "web_resource/links" %>
@@ -2,17 +2,18 @@
<div class="o-links-content">
<ul>
<% @web_link_categorys.each do |wlcg| %>
<% if wlcg.web_links.count > 0 %>
<% @web_link_datas.each do |wlcg| %>
<li>
<h3 class="o-links-category"><%= wlcg.title rescue nil%></h3>
<h3 class="o-links-category"><%= wlcg["title"] rescue nil%></h3>
<div class="o-links-list">
<ul>
<% wlcg.web_links.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num).each do |post| %>
<% wlcg["web_links"].each do |post| %>
<li>
<%= link_to post.title, post.url, {:target => '_blank', :title => post.title, :class=>"o-links-title"} %>
<div class="o-links-description"><%= post.context %></div>
<%= link_to post["title"], post["url"], {:target => '_blank', :title => post["title"], :class=>"o-links-title"} %>
<% if !post["is_hot"].blank? %><span class="o-links-hot"><%= t('hot')%></span><% end %>
<div class="o-links-description"><%= post["context"] %></div>
</li>
<% end %>
@@ -21,7 +22,6 @@
</li>
<% end %>
<% end %>
</ul>
</div>
+4 -12
View File
@@ -16,9 +16,8 @@ module WebResource
end
end
taggable
authorizable
categorizable
taggable
widgets do
@@ -38,7 +37,7 @@ module WebResource
side_bar do
head_label_i18n 'link',:icon_class=>"icons-link"
available_for [:admin,:guest,:manager,:sub_manager]
active_for_controllers ({:private=>['web_links', 'web_link_categorys']})
active_for_controllers ({:private=>['web_links', 'web_link_categorys','module_tags', 'categories']})
active_for_object_auth ['WebLinkCategory']
head_link_path "panel_web_resource_back_end_web_links_path"
@@ -54,11 +53,10 @@ module WebResource
:priority=>2,
:active_for_action=>{:web_links=>:new},
:available_for => [:sub_manager]
context_link 'categories',
:link_path=>"panel_web_resource_back_end_web_link_categorys_path" ,
:link_path=>"admin_module_app_categories_path(get_module_app)" ,
:priority=>3,
:active_for_action=>{:web_link_categorys=>:index},
:active_for_category => 'WebResource',
:available_for => [:manager]
context_link 'tags',
@@ -66,12 +64,6 @@ module WebResource
:priority=>4,
:active_for_tag => 'WebResource',
:available_for => [:manager]
context_link 'module_authorization',
:link_path=>"admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {title: 'WebResource'}))",
:priority=>6,
:active_for_app_auth => 'web_resource',
:available_for => [:admin]
end
end
end