Merge branch 'design_team' into ldap
Conflicts: app/controllers/admin/page_parts_controller.rb vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_filter.html.erb vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_sort_headers.html.erb
This commit is contained in:
commit
20504b2205
|
@ -11,17 +11,9 @@ $(document).on('click', '.action a.remove_existing_record', function(){
|
|||
$("tr #" + $(this).prev().attr('value')).hide();
|
||||
});
|
||||
|
||||
$('.quick_edit_cancel').live('click', function(){
|
||||
$(document).on('click', '.quick_edit_cancel', function(){
|
||||
tr = $(this).attr('rel');
|
||||
$('#' + tr).hide();
|
||||
$("tr#bulletin_file_" + $(this).prev().attr('value')).hide();
|
||||
$("tr#bulletin_link_" + $(this).prev().attr('value')).hide();
|
||||
});
|
||||
|
||||
$(document).on('click', '.list-remove', function(){
|
||||
$('#delete_bulletins').submit();
|
||||
});
|
||||
|
||||
$(document).on('click', '#check_all_bulletins', function(){
|
||||
$('.checkbox_in_list').attr("checked", this.checked);
|
||||
});
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
$(document).ready(function() {
|
||||
$("a.preview_trigger").click(function(){
|
||||
$(this).after("<span id='show_preview'></span>");
|
||||
$("#main-wrap").after("<span id='show_preview'></span>");
|
||||
$.ajax({
|
||||
type: 'PUT',
|
||||
url:$(this).attr("href"),
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
$(document).ready(function() {
|
||||
permissionCheckbox();
|
||||
});
|
||||
function permissionCheckbox(){
|
||||
$('.check[checked="checked"]').parents(".checkbox").addClass("checked")
|
||||
$(".checkbox").click(function(){
|
||||
if($(this).children(".check").attr("checked")){
|
||||
|
@ -16,4 +19,4 @@ $(document).ready(function() {
|
|||
placement: 'bottom',
|
||||
delay: { show: 100, hide: 300 },
|
||||
});
|
||||
});
|
||||
};
|
|
@ -1,5 +1,6 @@
|
|||
var viewportwidth,
|
||||
viewportheight;
|
||||
console.log($(window).height())
|
||||
function resize() {
|
||||
viewportheight=$(window).height();
|
||||
viewportwidth=$(window).width();
|
||||
|
@ -49,14 +50,20 @@ $(document).ready(function(){
|
|||
resize();
|
||||
var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2,
|
||||
$subWiget = $('#sub-wiget').width()+18;
|
||||
$('#main-sidebar').css("height", viewportheight-30);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-30);
|
||||
$orbitBar = $('#orbit-bar').height(),
|
||||
$mainSidebar = $('#main-sidebar').width()+5,
|
||||
$formActionPadding = parseInt($('.form-fixed').css("padding-left"))+parseInt($('.form-fixed').css("padding-right"));
|
||||
console.log($orbitBar);
|
||||
console.log("ready"+$(window).height());
|
||||
$('#main-sidebar').css("height", viewportheight-$orbitBar);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-$orbitBar);
|
||||
$('#post-body').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget);
|
||||
$('.post-title').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget-16);
|
||||
$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft);
|
||||
$('#main-sidebar').tinyscrollbar();
|
||||
$('.form-fixed').css("width", viewportwidth-$mainWrapMarginLeft-$formActionPadding);
|
||||
$('#bulletin_pagination').css("width", viewportwidth-$mainSidebar);
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-$orbitBar-4)});
|
||||
$('.detal-list').tinyscrollbar();
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
|
||||
mainTablePosition();
|
||||
|
||||
/*isotope*/
|
||||
|
@ -72,12 +79,18 @@ $(window).resize(function(){
|
|||
resize();
|
||||
var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2,
|
||||
$subWiget = $('#sub-wiget').width()+18;
|
||||
$('#main-sidebar').css("height", viewportheight-30);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-30);
|
||||
$orbitBar = $('#orbit-bar').height(),
|
||||
$mainSidebar = $('#main-sidebar').width()+5,
|
||||
$formActionPadding = parseInt($('.form-fixed').css("padding-left"))+parseInt($('.form-fixed').css("padding-right"));
|
||||
console.log(viewportheight);
|
||||
$('#main-sidebar').css("height", viewportheight-$orbitBar);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-$orbitBar);
|
||||
$('#post-body').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget);
|
||||
$('.post-title').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget-16);
|
||||
$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft)
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
|
||||
$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft);
|
||||
$('.form-fixed').css("width", viewportwidth-$mainWrapMarginLeft-$formActionPadding);
|
||||
$('#bulletin_pagination').css("width", viewportwidth-$mainSidebar);
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-$orbitBar-4)});
|
||||
mainTablePosition();
|
||||
});
|
||||
/*main-table position*/
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
$(document).on('click', '.list-remove', function(){
|
||||
$('#delete_all').submit();
|
||||
});
|
||||
|
||||
$(document).on('click', '#check_all', function(){
|
||||
$('.checkbox_in_list').attr("checked", this.checked);
|
||||
});
|
|
@ -1,5 +1,5 @@
|
|||
/*bootstrap-orbit*/
|
||||
|
||||
/*bootstrap-orbit*/
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight:normal ;
|
||||
}
|
||||
|
@ -112,6 +112,18 @@ table .span1-3 {
|
|||
.qe-block .form-horizontal .form-actions {
|
||||
text-align:right;
|
||||
}
|
||||
.form-actions form {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.form-actions form input {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.modal.fade {
|
||||
top: -50%;
|
||||
}
|
||||
.form-search button {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.modal form {
|
||||
margin-bottom: 0;
|
||||
}
|
|
@ -1,18 +1,11 @@
|
|||
/*isotope*/
|
||||
|
||||
/*isotope*/
|
||||
|
||||
#isotope {
|
||||
margin-top: 2px;
|
||||
background-color:#f4f4f4;
|
||||
}
|
||||
.isotope-item {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.isotope-hidden.isotope-item {
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/**** Isotope CSS3 transitions ****/
|
||||
|
||||
.isotope,
|
||||
|
@ -48,28 +41,27 @@
|
|||
transition-duration: 0s;
|
||||
}
|
||||
.w-a {
|
||||
width: 388px;
|
||||
width: 398px;
|
||||
}
|
||||
.w-b {
|
||||
width: 802px;
|
||||
width: 812px;
|
||||
}
|
||||
.h-a {
|
||||
height: 315px;
|
||||
}
|
||||
.h-b {
|
||||
height: 699px;
|
||||
height: 703px;
|
||||
}
|
||||
.item {
|
||||
margin: 5px 0 15px 15px;
|
||||
}
|
||||
.item h3 {
|
||||
margin: 5px 0;
|
||||
margin: 20px 0 5px;
|
||||
}
|
||||
.item h3 [class^="icons-"] {
|
||||
margin: 3px 5px 0 3px;
|
||||
margin: 1px 5px 0 3px;
|
||||
}
|
||||
.item .detail {
|
||||
padding: 5px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 5px;
|
||||
|
@ -77,12 +69,11 @@
|
|||
-moz-border-radius: 5px;
|
||||
box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.item .detail .totle {
|
||||
font-size: 50px;
|
||||
padding:10px 5px 20px 0;
|
||||
margin: 0px;
|
||||
padding:10px 5px 30px 0;
|
||||
margin: 0;
|
||||
text-align: right;
|
||||
border-bottom:1px solid #d9d9d9;
|
||||
}
|
||||
|
@ -92,20 +83,60 @@
|
|||
color: #333;
|
||||
padding-left: 5px;
|
||||
text-align:left;
|
||||
margin-bottom: -7px;
|
||||
}
|
||||
.item .detail .table {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.item .detail .table th, .item .detail .table td {
|
||||
border-top: none;
|
||||
border-bottom: 1px solid #DDDDDD;
|
||||
}
|
||||
.item .detail .table tr th {
|
||||
background-color: #F2F2F2;
|
||||
border-bottom: 1px solid #AAAAAA;
|
||||
}
|
||||
.item .detail .table tr td:first-child {
|
||||
color: #666;;
|
||||
}
|
||||
.item .detail .table tr td:last-child {
|
||||
.item .detail .table tr td:last-child, .item .detail .table tr th:last-child {
|
||||
text-align:right;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.item .h-a .my_scroll .viewport {
|
||||
height: 248px;
|
||||
height: 210px;
|
||||
}
|
||||
.item .h-b .my_scroll .viewport {
|
||||
height: 632px;
|
||||
height: 594px;
|
||||
}
|
||||
.item .isotope-hidden.isotope-item {
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
.item .my_scroll {
|
||||
position: relative;
|
||||
}
|
||||
.item .my_scroll .scrollbar {
|
||||
right: 3px;
|
||||
top: 0;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
}
|
||||
.item .my_scroll .track {
|
||||
background-color: transparent;
|
||||
}
|
||||
.detail.noStatistics {
|
||||
overflow: hidden;
|
||||
}
|
||||
.detail.noStatistics.h-a {
|
||||
height: 315px;
|
||||
}
|
||||
.detail.noStatistics.h-a .my_scroll .viewport {
|
||||
height: 280px;
|
||||
}
|
||||
.detail.noStatistics.h-b {
|
||||
height: 704px;
|
||||
}
|
||||
.detail.noStatistics.h-b .my_scroll .viewport {
|
||||
height: 670px;
|
||||
}
|
|
@ -22,7 +22,7 @@
|
|||
.main-list .nav-pills > li > a {
|
||||
border-radius: 5px 5px 5px 5px;
|
||||
margin: 2px;
|
||||
padding:5px
|
||||
padding:5px;
|
||||
}
|
||||
.main-list tbody .quick-edit {
|
||||
position:relative;
|
||||
|
@ -54,6 +54,11 @@
|
|||
position: relative;
|
||||
height: 40px;
|
||||
}
|
||||
.main-list .label-group .label {
|
||||
margin-bottom: 1px;
|
||||
display: inline-block;
|
||||
padding: 0 3px;
|
||||
}
|
||||
.main-list .label-td {
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
height: 40px;
|
||||
|
@ -99,6 +104,7 @@
|
|||
.qe-block td {
|
||||
height:auto;
|
||||
padding: 0;
|
||||
/*background-color: #dedede;*/
|
||||
}
|
||||
.qe-block legend {
|
||||
padding-left: 8px;
|
||||
|
@ -174,11 +180,18 @@ legend {
|
|||
.sort-header th a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
#check_all_bulletins {
|
||||
.list-remove {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 5px;
|
||||
top: 0;
|
||||
padding-top: 9px !important;
|
||||
left: 25px;
|
||||
}
|
||||
#sort_headers .list-remove {
|
||||
padding: 8px 0 8px 16px !important;
|
||||
.form-fixed {
|
||||
position: fixed;
|
||||
margin-bottom: 0;
|
||||
bottom: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
.paginationFixed {
|
||||
margin-bottom: 25px;
|
||||
}
|
|
@ -243,7 +243,7 @@
|
|||
padding-right: 4px;
|
||||
border-right: 1px solid rgba(0,0,0,.2);
|
||||
position:fixed;
|
||||
top: 32px;
|
||||
top: 31px;
|
||||
z-index: 88;
|
||||
}
|
||||
#main-sidebar .nav {
|
||||
|
@ -286,17 +286,18 @@
|
|||
background-color: #FFF;
|
||||
margin-left:160px;
|
||||
padding-top: 32px;
|
||||
padding-bottom: 18px;
|
||||
/*padding-bottom: 18px;*/
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
padding-bottom: 45px;
|
||||
/*min-height: 100%;*/
|
||||
}
|
||||
#main-wrap > .form-actions {
|
||||
/*#main-wrap > .form-actions {
|
||||
background-color: #FFF;
|
||||
text-align: center;
|
||||
padding: 17px 20px 0;
|
||||
margin: 0;
|
||||
border-top: none;
|
||||
}
|
||||
}*/
|
||||
#main-wrap .subnav {
|
||||
height: auto;
|
||||
min-height: 36px;
|
||||
|
@ -345,7 +346,7 @@
|
|||
text-align: right;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
margin-bottom: 0;
|
||||
margin-bottom: -50px;
|
||||
clear: both;
|
||||
}
|
||||
#poststuff form {
|
||||
|
@ -634,9 +635,6 @@
|
|||
.adbanner-action {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
#bulletin_link_qe form {
|
||||
margin: 0;
|
||||
}
|
||||
[class^="icons-"] {
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
|
@ -925,5 +923,5 @@
|
|||
}
|
||||
/*21*/
|
||||
.icons- {
|
||||
background-position: -0px -640px;
|
||||
}
|
||||
background-position: -0px -640px
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ class Admin::ModuleAppsController < ApplicationController
|
|||
before_filter :user_has_manager_privilege?, :only => [ :assign_manager, :remove_manager ]
|
||||
before_filter :user_has_sub_manager_privilege?, :only => [ :assign_sub_manager, :remove_sub_manager ]
|
||||
|
||||
layout "admin"
|
||||
layout "new_admin"
|
||||
|
||||
def index
|
||||
@module_apps = ModuleApp.all.entries
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class Admin::ObjectAuthsController < ApplicationController
|
||||
include OrbitCoreLib::PermissionUnility
|
||||
layout "admin"
|
||||
layout "new_admin"
|
||||
before_filter :force_order
|
||||
# before_filter :is_admin? ,:only => :index
|
||||
|
||||
|
|
|
@ -27,8 +27,10 @@ class Admin::PagePartsController < ApplicationController
|
|||
@r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag
|
||||
@tag_objects = @r_tag.classify.constantize.all rescue nil
|
||||
case @module_app.key
|
||||
when 'bulletin'
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
when 'news'
|
||||
@categories = NewsBulletinCategory.all
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
end
|
||||
|
@ -65,12 +67,14 @@ class Admin::PagePartsController < ApplicationController
|
|||
def reload_widgets
|
||||
@categories =[]
|
||||
@module_app = ModuleApp.find(params[:id])
|
||||
|
||||
unless (@module_app.category.nil? rescue true)
|
||||
@module_app.category.each do |category|
|
||||
@categories << eval(category).all.entries
|
||||
end
|
||||
@categories.flatten!
|
||||
|
||||
case @module_app.key
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
when 'news'
|
||||
@categories = NewsBulletinCategory.all
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
|
|
|
@ -31,7 +31,18 @@ class Admin::PagesController < ApplicationController
|
|||
@designs = Design.all.entries
|
||||
@design = @item.design ? @item.design : @designs.first
|
||||
@app_frontend_urls = @item.module_app.app_pages if @item.module_app
|
||||
@categories = BulletinCategory.all if @item.module_app && @item.module_app.key.eql?('announcement')
|
||||
if @item.module_app
|
||||
case @item.module_app.key
|
||||
when 'announcement'
|
||||
@categories = BulletinCategory.all
|
||||
when 'news'
|
||||
@categories = NewsBulletinCategory.all
|
||||
when 'web_resource'
|
||||
@categories = WebLinkCategory.all
|
||||
end
|
||||
else
|
||||
@categories = nil
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
|
|
|
@ -12,7 +12,7 @@ class OrbitBackendController< ApplicationController
|
|||
@app_title = request.fullpath.split('/')[2]
|
||||
@module_app = ModuleApp.first(conditions: {:key => @app_title} )
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def force_order
|
||||
|
@ -22,8 +22,139 @@ class OrbitBackendController< ApplicationController
|
|||
|
||||
def check_user_can_use
|
||||
unless check_permission
|
||||
redirect_to polymorphic_path(['panel',@app_title,'back_end','public'])
|
||||
#redirect_to polymorphic_path(['panel',@app_title,'back_end','public'])
|
||||
render :text => '403 Forbidden'
|
||||
end
|
||||
end
|
||||
|
||||
def get_sorted_and_filtered(object_class)
|
||||
object_class = object_class.classify.constantize
|
||||
objects = object_class.all
|
||||
|
||||
if !params[:sort].blank?
|
||||
options = params[:sort_options]
|
||||
options = [options] if !options.class.eql?(Array)
|
||||
options.each do |option|
|
||||
if object_class.fields.include?(option)
|
||||
case object_class.fields[option].type.to_s
|
||||
when 'BigDecimal', 'Boolean', 'Date', 'DateTime', 'Float', 'Integer', 'String', 'Symbol', 'Time'
|
||||
(objects = objects.order_by(option, params[:direction])) rescue nil
|
||||
when 'Object'
|
||||
objects = get_objects_from_referenced_objects(object_class.fields[option].options[:class_name].constantize, objects, option)
|
||||
end
|
||||
elsif object_class.relations.include?(option)
|
||||
case object_class.relations[option].macro
|
||||
when :references_one
|
||||
a = Array.new
|
||||
objects.each { |object| a << [get_string_value_from_object(object), object] }
|
||||
sorted = params[:direction].eql?('asc') ? a.sort : a.sort.reverse!
|
||||
objects = sorted.collect {|x| x[1] }
|
||||
when :references_many, :references_and_referenced_in_many
|
||||
objects = get_objects_from_self(object_class, objects, option)
|
||||
when :referenced_in
|
||||
objects = get_objects_from_referenced_objects(object_class.relations[option].class_name.constantize, objects, "#{option}_id")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if @filter
|
||||
@filter.each do |key, value|
|
||||
case key
|
||||
when 'status'
|
||||
a = Array.new
|
||||
objects.each do |bulletin|
|
||||
value.each do |v|
|
||||
case v
|
||||
when 'pending'
|
||||
a << bulletin if bulletin.is_checked.nil?
|
||||
when 'rejected'
|
||||
a << bulletin if bulletin.is_checked.eql?(false)
|
||||
else
|
||||
a << bulletin if bulletin[v]
|
||||
end
|
||||
end
|
||||
end
|
||||
objects = a.uniq
|
||||
when 'categories'
|
||||
a = Array.new
|
||||
objects.each do |bulletin|
|
||||
a << bulletin if value.include?(bulletin.bulletin_category.id.to_s)
|
||||
end
|
||||
objects = a.uniq
|
||||
when 'tags'
|
||||
a = Array.new
|
||||
objects.each do |bulletin|
|
||||
bulletin.tags.each do |tag|
|
||||
a << bulletin if value.include?(tag.id.to_s)
|
||||
end
|
||||
end
|
||||
objects = a.uniq
|
||||
end if value.size > 0
|
||||
end
|
||||
end
|
||||
Kaminari.paginate_array(objects).page(params[:page]).per(10)
|
||||
end
|
||||
|
||||
def get_string_value_from_object(object)
|
||||
s = object[I18n.locale] rescue nil
|
||||
s = object.i18n_variable unless s rescue nil
|
||||
s = object.name unless s rescue nil
|
||||
s = object.title unless s rescue nil
|
||||
if s
|
||||
case s.class.to_s
|
||||
when "String"
|
||||
s.downcase
|
||||
when "I18nVariable"
|
||||
s[I18n.locale].downcase
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def get_objects_from_referenced_objects(object_class, objects, option)
|
||||
referer_ids = objects.distinct(option)
|
||||
referenced_objects = object_class.find(referer_ids) rescue nil
|
||||
if referenced_objects
|
||||
a = Array.new
|
||||
referenced_objects.each { |referer| a << [get_string_value_from_object(referer), referer.id] }
|
||||
sorted = params[:direction].eql?('asc') ? a.sort : a.sort.reverse!
|
||||
sorted_objects = sorted.collect {|x| objects.where(option => x[1]).entries }
|
||||
sorted_objects.flatten!
|
||||
sorted_objects.uniq!
|
||||
get_with_nil(objects, option, sorted_objects)
|
||||
else
|
||||
objects
|
||||
end
|
||||
end
|
||||
|
||||
def get_objects_from_self(object_class, objects, option)
|
||||
referenced_class = object_class.relations[option].class_name.constantize
|
||||
referenced_objects = referenced_class.all rescue nil
|
||||
if referenced_objects
|
||||
reverse_relation = nil
|
||||
referenced_class.relations.each { |relation| reverse_relation = relation[1].name.to_s if relation[1].class_name.eql?(object_class.to_s) }
|
||||
a = Array.new
|
||||
referenced_objects.each { |referenced_object| a << [get_string_value_from_object(referenced_object), referenced_object] }
|
||||
a.compact!
|
||||
sorted = params[:direction].eql?('asc') ? a.sort : a.sort.reverse!
|
||||
sorted_objects = Array.new
|
||||
sorted.each {|x| sorted_objects << x[1].send(reverse_relation) }
|
||||
sorted_objects.flatten!
|
||||
sorted_objects.uniq!
|
||||
get_with_nil(objects, option, sorted_objects)
|
||||
else
|
||||
objects
|
||||
end
|
||||
end
|
||||
|
||||
def get_with_nil(objects, option, sorted_objects)
|
||||
tmp = Array.new
|
||||
objects.each { |object| tmp << [get_string_value_from_object(object), object] if (object.send(option).count == 0) }
|
||||
sorted = params[:direction].eql?('asc') ? tmp.sort : tmp.sort.reverse!
|
||||
sorted_tmp = sorted.collect {|a| a[1] }
|
||||
a = params[:direction].eql?('asc') ? (sorted_tmp + sorted_objects) : (sorted_objects + sorted_tmp)
|
||||
a.flatten
|
||||
end
|
||||
|
||||
end
|
|
@ -33,9 +33,9 @@ class PagesController < ApplicationController
|
|||
|
||||
def index_from_link
|
||||
if params[:page]
|
||||
redirect_to "/#{@item.full_name}?page=#{params[:page]}"
|
||||
redirect_to "/#{@item.full_name}?page=#{params[:page]}&category_id=#{params[:category_id]}&tag_id=#{params[:tag_id]}"
|
||||
else
|
||||
redirect_to "/#{@item.full_name}"
|
||||
redirect_to "/#{@item.full_name}?category_id=#{params[:category_id]}&tag_id=#{params[:tag_id]}"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -51,11 +51,11 @@ class PagesController < ApplicationController
|
|||
|
||||
def get_item
|
||||
module_app = ModuleApp.first(:conditions => {:key => params[:app_name]})
|
||||
if params[:category_id]
|
||||
@item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id]})
|
||||
else
|
||||
# if params[:category_id]
|
||||
# @item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action], :category => params[:category_id]})
|
||||
# else
|
||||
@item = Item.first(:conditions => {:module_app_id => module_app.id, :app_frontend_url => params[:app_action]})
|
||||
end
|
||||
# end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -14,6 +14,7 @@ module Admin::ModuleAppHelper
|
|||
end
|
||||
|
||||
def get_auth_by(manager_obj)
|
||||
"-AuthBy: " +( manager_obj.rule_creator==current_user ? t('me') : manager_obj.rule_creator.name)
|
||||
showing_name = manager_obj.rule_creator==current_user ? t('me') : manager_obj.rule_creator.name
|
||||
t("admin.user_role.auth.auth_by",:user_display_name => showing_name)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -87,26 +87,6 @@ module ApplicationHelper
|
|||
((controller.controller_name.eql?(controller_name) || request.fullpath.eql?(controller_name)) && controller.action_name.eql?(action_name)) ? 'active' : nil
|
||||
end
|
||||
|
||||
def sortable(column)
|
||||
direction = (column == params[:sort] && params[:direction] == "asc") ? "desc" : "asc"
|
||||
{:sort => column, :direction => direction}
|
||||
end
|
||||
|
||||
def is_sort_active?(name)
|
||||
res = ''
|
||||
res << ' select' if params[:sort].eql?(name)
|
||||
res << ' active' if params[:sort].eql?(name) && params[:direction].eql?('asc')
|
||||
res
|
||||
end
|
||||
|
||||
def is_sort?(name)
|
||||
' web-symbol' if params[:sort].eql?(name)
|
||||
end
|
||||
|
||||
def is_filter_active?(type, id)
|
||||
' active' if (@filter[type].include?(id.to_s) rescue nil)
|
||||
end
|
||||
|
||||
def process_page(page, id)
|
||||
parse_page_noko(page, id)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
module OrbitBackendHelper
|
||||
|
||||
def sortable(column)
|
||||
direction = (column == params[:sort] && params[:direction] == "asc") ? "desc" : "asc"
|
||||
{:sort => column, :direction => direction}
|
||||
end
|
||||
|
||||
def is_sort_active?(name)
|
||||
res = ''
|
||||
res << ' select' if params[:sort].eql?(name)
|
||||
res << ' active' if params[:sort].eql?(name) && params[:direction].eql?('asc')
|
||||
res
|
||||
end
|
||||
|
||||
def is_sort?(name)
|
||||
' web-symbol' if params[:sort].eql?(name)
|
||||
end
|
||||
|
||||
def is_filter_active?(type, id)
|
||||
' active' if (@filter[type].include?(id.to_s) rescue nil)
|
||||
end
|
||||
|
||||
def render_sort_bar(delete_all, *titles)
|
||||
content_tag :table, :class => "table main-list" do
|
||||
content_tag :thead do
|
||||
content_tag :tr, :class => "sort-header" do
|
||||
concat (content_tag :th, :class => "span1 strong" do
|
||||
concat check_box_tag :check_all
|
||||
concat link_to content_tag(:i, nil, :class => "icon-trash"), '#', :class => "list-remove"
|
||||
end) if delete_all
|
||||
titles.each do |title|
|
||||
concat render_title(title[0], title[1], title[2], title[3])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def render_title(title, fields, span, translation)
|
||||
content_tag :th, :class => "sort #{span} #{is_sort_active?(title)}" do
|
||||
link_to (t(translation) + content_tag(:b, nil, :class => is_sort?(title))).html_safe, url_for({:filter => @filter}.merge(sortable(title).merge(:sort_options => fields))), :class => 'js_history'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
<div id="new-a-banner" class="modal fade in tab-pane <%= 'active' if @active.nil? %>">
|
||||
<div id="new-a-banner" class="modal fade <%= 'active' if @active.nil? %>">
|
||||
<%= form_for(:ad_banner,:remote => true, :url => admin_ad_banners_path) do |f| %>
|
||||
|
||||
<div class="modal-header">
|
||||
|
@ -28,25 +28,11 @@
|
|||
<%= f.select :ad_fx ,AdBanner::FX_TYPES %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<%= f.submit t('submit'), :class=>'btn btn-primary',:remote=>true %>
|
||||
<a class="btn" data-dismiss="modal"><%= t('cancel')%></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<%= f.submit t('submit'), :class=>'btn btn-primary',:remote=>true %>
|
||||
<a class="btn" data-dismiss="modal"><%= t('cancel')%></a>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
$('#new_ad_banner_tab_but').on('shown', function (e) {
|
||||
$('#new-a-banner').modal({show: true});
|
||||
});
|
||||
|
||||
|
||||
$('#new-a-banner').on('hidden', function (e) {
|
||||
$('#post-body-content').find(".nav.nav-tabs").children('li.active').removeClass("active");
|
||||
|
||||
$('#post-body-content').find(".nav.nav-tabs").children('li[id!="new_ad_banner_tab_but"]').last().addClass("active");
|
||||
$('.tab-pane').find(".nav.nav-tabs").children('li[id!="new_ad_banner_tab_but"]').last().addClass("active");
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -8,17 +8,17 @@
|
|||
|
||||
|
||||
<div id="post-body-content" class="clear">
|
||||
<ul class="nav nav-tabs">
|
||||
<ul id="banner_tab" class="nav nav-tabs">
|
||||
<% @ad_banners.each do |ab| %>
|
||||
<%= content_tag :li,link_to(ab.title,"##{ab.title.dehumanize}",:data=>{:toggle=>"tab"}),:class => (ab == @active ? 'active' : nil ) %>
|
||||
<% end -%>
|
||||
<%= content_tag :li,link_to(t("admin.ad.new_banner"),"#new-a-banner",:data=>{:toggle=>"tab"}),:id=>'new_ad_banner_tab_but',:class => (@active.nil? ? 'active' : nil ) %>
|
||||
<%= content_tag :li,link_to(t("admin.ad.new_banner"),"#new-a-banner",:data=>{:toggle=>"modal"}),:id=>'new_ad_banner_tab_but',:class => (@active.nil? ? 'active' : nil ) %>
|
||||
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<%= render :partial => 'ad_banner_tab',:collection => @ad_banners %>
|
||||
<%= render :partial => "modal_ad_banner_form"%>
|
||||
<%= render :partial => 'ad_banner_tab',:collection => @ad_banners %>
|
||||
</div>
|
||||
<%= render :partial => "modal_ad_banner_form"%>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<div id="open_for_all_user">
|
||||
<h1>All User</h1>
|
||||
<h1><%= t("admin.user_role.auth.all_member") %></h1>
|
||||
<%= form_tag(submit_url) do %>
|
||||
<%= check_box_tag 'auth_all',true,(auth.all rescue true) %><%= submit_tag 'Add Role' %><br/>
|
||||
<%= check_box_tag 'auth_all',true,(auth.all rescue true) %><%= submit_tag t("admin.user_role.auth.all_member") %><br/>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div id="user_role_management">
|
||||
<h1>User Role</h1>
|
||||
<h1><%= t("admin.user_role.auth.user") %></h1>
|
||||
<%= form_tag(submit_url) do %>
|
||||
<%= collection_select(:new,:role, Role.all, :id, :key, :prompt => true) %>
|
||||
<%= submit_tag 'Add Role' %><br/>
|
||||
<%= submit_tag t("admin.user_role.auth.by_role") %><br/>
|
||||
<%= collection_select(:new,:sub_role, SubRole.all, :id, :key, :prompt => true) %>
|
||||
<%= submit_tag 'Add SubRole' %><br/>
|
||||
<%= submit_tag t("admin.user_role.auth.by_sub_role") %><br/>
|
||||
<%= collection_select(:new,:privilege_user, User.all, :id, :name, :prompt => true) %>
|
||||
<%= submit_tag 'Add PrivilegeList' %><br/>
|
||||
<%= submit_tag t("admin.user_role.auth.add_to_privilege_list") %><br/>
|
||||
<%= collection_select(:new,:blocked_user, User.all, :id, :name, :prompt => true) %>
|
||||
<%= submit_tag 'Add BlockedList' %><br/>
|
||||
<%= submit_tag t("admin.user_role.auth.add_to_block_list") %><br/>
|
||||
<% end %>
|
||||
<% unless auth.nil? %>
|
||||
<% auth.roles.each do |role| %>
|
||||
|
|
|
@ -1,197 +1,16 @@
|
|||
<div id="isotope">
|
||||
<div class="item element">
|
||||
<h3><i class="icons-member"></i><a href="">Member</a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span>Quantity</span>9,517</p>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>University</td>
|
||||
<td>2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Master</td>
|
||||
<td>783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Doctor</td>
|
||||
<td>45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-content"></i><a href="">Content</a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span>Quantity</span>9,517</p>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>University</td>
|
||||
<td>2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Master</td>
|
||||
<td>783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Doctor</td>
|
||||
<td>45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-asset"></i><a href="">Asset</a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span>Quantity</span>9,517</p>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>University</td>
|
||||
<td>2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Master</td>
|
||||
<td>783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Doctor</td>
|
||||
<td>45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href="">Traffic</a></h3>
|
||||
<h3><i class="icons-content"></i><a href=""><%= t(:content) %></a></h3>
|
||||
<div class="detail w-a h-b">
|
||||
<p class="totle"><span>Quantity</span>9,517</p>
|
||||
<p class="totle"><span><%= t(:all_content) %></span>9,517</p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:module) %></th>
|
||||
<th class="span2"><%= t(:quantity) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
|
@ -205,128 +24,44 @@
|
|||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>University</td>
|
||||
<td>2,304</td>
|
||||
<td>公告</td>
|
||||
<td class="span2">2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Master</td>
|
||||
<td>783</td>
|
||||
<td>新聞</td>
|
||||
<td class="span2">783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Doctor</td>
|
||||
<td>45</td>
|
||||
<td>連結</td>
|
||||
<td class="span2">45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
<td>連結</td>
|
||||
<td class="span2">62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
<td>連結</td>
|
||||
<td class="span2">52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
<td>新聞</td>
|
||||
<td class="span2">20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
<td>公告</td>
|
||||
<td class="span2">41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
<td>公告</td>
|
||||
<td class="span2">37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
<td>公告</td>
|
||||
<td class="span2">41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
<td>公告</td>
|
||||
<td class="span2">20</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -336,72 +71,17 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href="">Site info</a></h3>
|
||||
<div class="detail w-b h-a">
|
||||
<p class="totle"><span>Quantity</span>9,517</p>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>University</td>
|
||||
<td>2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Master</td>
|
||||
<td>783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Doctor</td>
|
||||
<td>45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staff</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teacher</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Professor</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Assistant Professor</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Substitute teacher</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lecturer</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Part-time teacher</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href="">Connection</a></h3>
|
||||
<h3><i class="icons-member"></i><a href=""><%= t(:member) %></a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span>Quantity</span>9,517</p>
|
||||
<p class="totle"><span><%= t(:all_member) %></span>2,217</p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:role) %></th>
|
||||
<th class="span2"><%= t(:quantity) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
|
@ -461,4 +141,450 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-asset"></i><a href=""><%= t(:file) %></a></a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span><%= t(:all_file) %></span>3,422</p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:file_type) %></th>
|
||||
<th class="span2"><%= t(:quantity) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Word</td>
|
||||
<td>304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PDF</td>
|
||||
<td>783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PowerPoint</td>
|
||||
<td>45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Excel</td>
|
||||
<td>62</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jpeg</td>
|
||||
<td>52</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gif</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Png</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Avi</td>
|
||||
<td>37</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Txt</td>
|
||||
<td>41</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Zip</td>
|
||||
<td>20</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:referral_in_links) %></a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span><%= t(:statistics) %></span>517</p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:site_name) %></th>
|
||||
<th class="span2"><%= t(:statistics) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Ruling</td>
|
||||
<td class="span2">36</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Yahoo</td>
|
||||
<td class="span2">31</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Google</td>
|
||||
<td class="span2">3,187</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>facebook</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title5</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title6</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title7</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title8</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title9</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title10</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:most_visited_page) %></a></h3>
|
||||
<div class="detail noStatistics w-b h-a">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:title) %></th>
|
||||
<th class="span2"><%= t(:module) %></th>
|
||||
<th class="span2"><%= t(:hits) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Title1</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">2,549</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title2</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">1,022</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title3</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">928</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title4</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">904</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title5</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">867</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title6</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">830</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title7</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">749</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title8</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">702</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title9</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">639</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title10</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">549</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title1</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">2,549</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title2</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">1,022</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title3</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">928</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title4</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">904</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title5</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">867</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title6</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">830</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title7</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">749</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title8</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">702</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title9</td>
|
||||
<td class="span2">頁面</td>
|
||||
<td class="span2">639</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title10</td>
|
||||
<td class="span2">公告</td>
|
||||
<td class="span2">549</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:traffic) %></a></h3>
|
||||
<div class="detail w-a h-a">
|
||||
<p class="totle"><span><%= t(:total_visitors) %></span>438,913</p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:item) %></th>
|
||||
<th class="span2"><%= t(:data) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Visitors Today</td>
|
||||
<td>2,304</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Visitors This Month</td>
|
||||
<td>783</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Visitor This Tear</td>
|
||||
<td>45</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:site_info) %></a></h3>
|
||||
<div class="detail noStatistics w-b h-a">
|
||||
<!--<p class="totle"><span><%= t(:statistics) %></span>9,517</p>-->
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:item) %></th>
|
||||
<th class="span6"><%= t(:content) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Title:</td>
|
||||
<td class="span6">National Chengchi University</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Description:</td>
|
||||
<td class="span6">......</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Keywords</td>
|
||||
<td class="span6">.....</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Online Date:</td>
|
||||
<td class="span6">2012/04/30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>WedID:</td>
|
||||
<td class="span6">nccu</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Softwave Version:</td>
|
||||
<td class="span6">R4 beta</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Warranty:</td>
|
||||
<td class="span6">Valid</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item element">
|
||||
<h3><i class="icons-"></i><a href=""><%= t(:recent_update) %></a></h3>
|
||||
<div class="detail noStatistics w-a h-a">
|
||||
<!--<p class="totle"><span><%= t(:statistics) %></span>9,517</p>-->
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><%= t(:title) %></th>
|
||||
<th class="span2"><%= t(:module) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div class="detal-list my_scroll">
|
||||
<div class="scrollbar">
|
||||
<div class="track">
|
||||
<div class="thumb">
|
||||
<div class="end"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="viewport">
|
||||
<div class="overview">
|
||||
<table class="table table-striped">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Title1</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title2</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title3</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title4</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title5</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title6</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title7</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title8</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title9</td>
|
||||
<td class="span2">頁面</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Title10</td>
|
||||
<td class="span2">公告</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,24 +1,41 @@
|
|||
<%= flash_messages %>
|
||||
<div id="filter" class="subnav">
|
||||
<div class="filters">
|
||||
<div id="sort_headers" class="table-label">
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span1 strong">
|
||||
<input type="checkbox">
|
||||
<a href class="list-remove"><i class="icon-trash"></i></a>
|
||||
</th>
|
||||
<th class="span7"><%= t('admin.title') %></th>
|
||||
<th class="span2"><%= t('admin.author') %></th>
|
||||
<th class="span2"><%= t('admin.intro') %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span1 strong">
|
||||
<input type="checkbox">
|
||||
<a href class="list-remove"><i class="icon-trash"></i></a>
|
||||
</th>
|
||||
<th class="span7 select"><%= t('admin.title') %></th>
|
||||
<th class="span1-2"><%= t('admin.author') %></th>
|
||||
<th class="span1-2"><%= t('admin.intro') %></th>
|
||||
<th class="span1 strong"></th>
|
||||
<th class="span7"></th>
|
||||
<th class="span2"></th>
|
||||
<th class="span2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @designs.each do |design| %>
|
||||
<tr>
|
||||
<tr class="with_action">
|
||||
<td><input type="checkbox"></td>
|
||||
<td>
|
||||
<%= design.title %>
|
||||
<div class="quick-edit">
|
||||
<ul class="nav nav-pills">
|
||||
<ul class="nav nav-pills hide">
|
||||
<li><%= link_to t(:edit), edit_admin_design_path(design), :class => 'edit' %></li>
|
||||
<li class="dropdown"><%= link_to t(:delete), admin_design_path(design), :confirm => t('sure?'), :method => :delete, :class => 'delete' %></li>
|
||||
</ul>
|
||||
|
@ -30,6 +47,6 @@
|
|||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="form-actions">
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_admin_design_path, :class => 'btn btn-primary' %>
|
||||
</div>
|
|
@ -1,37 +1,30 @@
|
|||
<% content_for :secondary do %>
|
||||
<% end %>
|
||||
|
||||
<!-- Remove if CSS done-->
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<!-- Remove if CSS done-->
|
||||
<h3><%= @module_app.title %></h3>
|
||||
<h3><%= @module_app.title%></h3>
|
||||
|
||||
<div id="manager_management">
|
||||
<h1>Manager</h1>
|
||||
|
||||
<dl id="manager">
|
||||
<dt>Manager</ht>
|
||||
<dt><%= t("admin.user_role.auth.manager") %></ht>
|
||||
<% @module_app.managers.each do |manager| %>
|
||||
<dd><%= manager.user.name %> <%= get_auth_by(manager) %> <%= link_to '[X]',remove_manager_admin_module_app_path(@module_app,manager),:method => :delete if if_permit_to_delete(:manager) && manager.user != current_user %> </dd>
|
||||
<% end %>
|
||||
<dd>Add:
|
||||
<dd>
|
||||
<%= form_tag(assign_manager_admin_module_app_path) do %>
|
||||
<%= collection_select(:manager,:id, User.all, :id, :name, :prompt => true,:disabled => !if_permit_to_assign(:manager))%>
|
||||
<%= submit_tag 'Add Manager' %>
|
||||
<%= submit_tag t("admin.user_role.auth.add_manager") %>
|
||||
<% end %>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl id="sub_manager">
|
||||
<dt>Sub Manager</ht>
|
||||
<dt><%= t("admin.user_role.auth.sub_manager") %></ht>
|
||||
<% @module_app.sub_managers.each do |manager| %>
|
||||
<dd><%= manager.user.name %> -AuthBy:<%= manager.rule_creator.name %> <%= link_to '[X]',remove_sub_manager_admin_module_app_path(@module_app,manager),:method => :delete if if_permit_to_delete(:sub_manager) && manager.user != current_user %> </dd>
|
||||
<dd><%= manager.user.name %> <%= get_auth_by(manager) %><%= link_to '[X]',remove_sub_manager_admin_module_app_path(@module_app,manager),:method => :delete if if_permit_to_delete(:sub_manager) && manager.user != current_user %> </dd>
|
||||
<% end %>
|
||||
<dd>Add:
|
||||
<dd>
|
||||
<%= form_tag(assign_sub_manager_admin_module_app_path) do %>
|
||||
<%= collection_select(:sub_manager,:id, User.all, :id, :name, :prompt => true,:disabled => !if_permit_to_assign(:sub_manager))%>
|
||||
<%= submit_tag 'Add Sub Manager' %>
|
||||
<%= submit_tag t("admin.user_role.auth.add_sub_manager") %>
|
||||
<% end %>
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
<% content_for :secondary do %>
|
||||
<% end %>
|
||||
|
||||
<!-- Remove if CSS done-->
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<!-- Remove if CSS done-->
|
||||
<h3><%= @object_auth.title %></h3>
|
||||
|
||||
<%= render :partial => "admin/components/user_role_management", :locals => {
|
||||
|
|
|
@ -1 +1 @@
|
|||
<%= select 'page_part', 'category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => (@part ? @part[:category] : nil) if @categories && @categories.size > 0 %>
|
||||
<%= select 'page_part', 'category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => (@part ? @part[:category] : nil), :include_blank => true if @categories && @categories.size > 0 %>
|
|
@ -27,7 +27,7 @@
|
|||
<%= t('admin.module_app') %>
|
||||
<%= render :partial => "app_selector", :locals => { :f => f } %>
|
||||
<span id="app_page_url"><%= select('page','app_frontend_url', @app_frontend_urls, :selected => @item.app_frontend_url ) rescue ''%> </span>
|
||||
<span id="app_page_category"><%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => @item[:category] ) rescue ''%> </span>
|
||||
<span id="app_page_category"><%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}, :selected => @item[:category], :include_blank => true ) rescue ''%> </span>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :is_published, "#{t('admin.is_published')} ?" %>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="subnav">
|
||||
<!--<div class="subnav">
|
||||
<ul class="nav nav-pills filter">
|
||||
<li class="accordion-group">
|
||||
<form class="form-search">
|
||||
|
@ -8,9 +8,10 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
<div id='tags' class="clear">
|
||||
<%= render :partial => 'tag', :collection => @tags %>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= render 'add' %>
|
||||
</div>
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
<%= flash_messages %>
|
||||
<div id="container" class="sign-in">
|
||||
<% flash.each do |key, msg| %>
|
||||
<%= content_tag :span, msg, :class => [key, "notice label label-warning"] %>
|
||||
<% end%>
|
||||
<%= form_for :user, :url => user_session_path, :html => {:class => 'user_new form-horizontal'} do |f| %>
|
||||
<div class="content">
|
||||
<% flash.each do |key, msg| %>
|
||||
<%= content_tag :span, msg, :class => [key, "notice label label-warning"] %>
|
||||
<% end%>
|
||||
<p class="alert hide">You need to sign in or sign up before continuing.</p>
|
||||
<div class="main">
|
||||
<div class="control-group clear">
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<%#= link_to content_tag(:i, nil, :class => 'icons-purchase') + t('admin.purchase'), admin_purchases_path %>
|
||||
<%# end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals') do -%>
|
||||
<%= content_tag :li, :class => active_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys','module_apps', 'approvals') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.announcement'), panel_announcement_back_end_bulletins_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals')) do -%>
|
||||
<%= content_tag :li, link_to(t('announcement.all_articles'), panel_announcement_back_end_bulletins_path), :class => active_for_action('bulletins', 'index') %>
|
||||
|
@ -10,6 +10,20 @@
|
|||
<%= content_tag :li, link_to(t('announcement.categories'), panel_announcement_back_end_bulletin_categorys_path), :class => active_for_action('bulletin_categorys', 'index') %>
|
||||
<%= content_tag :li, link_to(t('announcement.tags'), panel_announcement_back_end_tags_path), :class => active_for_action('/panel/announcement/back_end/tags', 'index') %>
|
||||
<%= content_tag :li, link_to(t('announcement.bulletin.approval_setting'), panel_announcement_back_end_approval_setting_path), :class => active_for_action('approvals', 'setting') if (is_manager? rescue nil) %>
|
||||
<%= content_tag :li, link_to(t('admin.module.authorization'),edit_admin_module_app_path(ModuleApp.first(conditions: {title: "Announcement"}))), :class => active_for_action('module_apps', 'edit') if (is_admin? rescue nil) %>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.news'), panel_news_back_end_news_bulletins_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals')) do -%>
|
||||
<%= content_tag :li, link_to(t('news.all_articles'), panel_news_back_end_news_bulletins_path), :class => active_for_action('news_bulletins', 'index') %>
|
||||
<%= content_tag :li, link_to(t('news.add_new'), new_panel_news_back_end_news_bulletin_path), :class => active_for_action('news_bulletins', 'new') %>
|
||||
<%= content_tag :li, link_to(t('news.categories'), panel_news_back_end_news_bulletin_categorys_path), :class => active_for_action('news_bulletin_categorys', 'index') %>
|
||||
<%= content_tag :li, link_to(t('news.tags'), panel_news_back_end_tags_path), :class => active_for_action('/panel/news/back_end/tags', 'index') %>
|
||||
<%= content_tag :li, link_to(t('news.news_bulletin.approval_setting'), panel_news_back_end_news_approval_setting_path), :class => active_for_action('news_approvals', 'setting') if (is_manager? rescue nil) %>
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
@ -20,9 +34,9 @@
|
|||
|
||||
<%= content_tag :li, :class => active_for_controllers('page_contexts') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-page') + t('admin.page'), panel_page_content_back_end_page_contexts_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('page_contexts')) do -%>
|
||||
<%= content_tag :li, link_to(t('admin.all_articles'), panel_page_content_back_end_page_contexts_path), :class => active_for_action('page_context', 'index') %>
|
||||
<% end -%>
|
||||
<%#= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('page_contexts')) do -%>
|
||||
<%#= content_tag :li, link_to(t('admin.all_articles'), panel_page_content_back_end_page_contexts_path), :class => active_for_action('page_context', 'index') %>
|
||||
<%# end -%>
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('designs') do -%>
|
||||
|
@ -31,11 +45,11 @@
|
|||
|
||||
<%= content_tag :li, :class => active_for_controllers('ad_banners', 'ad_images') do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-link') + t('admin.ad_banner'), admin_ad_banners_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('ad_banners', 'ad_images')) do -%>
|
||||
<%= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
|
||||
<%#= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('ad_banners', 'ad_images')) do -%>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.new_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.new_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %>
|
||||
<% end %>
|
||||
<%# end %>
|
||||
<% end %>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('web_links', '/panel/web_resource/back_end/tags', 'web_link_categorys') do -%>
|
||||
|
|
|
@ -44,6 +44,29 @@ en:
|
|||
view: View
|
||||
yes_: "Yes"
|
||||
|
||||
all_content: All Content
|
||||
all_file: All File
|
||||
all_member: All Member
|
||||
content: Content
|
||||
data: Data
|
||||
file: File
|
||||
file_type: File Type
|
||||
hits: Hits
|
||||
item: Item
|
||||
member: Member
|
||||
module: Module
|
||||
most_visited_page: Most Visited Page
|
||||
quantity: Quantity
|
||||
recent_update: Recent Update
|
||||
referral_in_links: Referral in Links
|
||||
role: Role
|
||||
site_info: Site Info
|
||||
site_name: Site Name
|
||||
statistics: Statistics
|
||||
title: Title
|
||||
total_visitors: Total Visitors
|
||||
traffic: Traffic
|
||||
|
||||
admin:
|
||||
action: Action
|
||||
ad_banner: AD Banner
|
||||
|
@ -129,6 +152,8 @@ en:
|
|||
list_infos: User information list
|
||||
list_roles: User roles list
|
||||
member: Member
|
||||
module:
|
||||
authorization: Module Authorization
|
||||
move_down: Move down
|
||||
move_up: Move up
|
||||
multilingual: Multilingual
|
||||
|
@ -183,6 +208,20 @@ en:
|
|||
upload_design: Upload design
|
||||
url: URL
|
||||
user: User
|
||||
user_role:
|
||||
auth:
|
||||
all_member: All Member
|
||||
manager: Manager
|
||||
sub_mamanger: SubManager
|
||||
by_role: By Role
|
||||
by_sub_role: By SubRole
|
||||
block_list: Block List
|
||||
privilege_list: Privilege List
|
||||
add_manager: Add Manager
|
||||
add_sub_manager: Add SubManager
|
||||
add_to_block_list: Add to block List
|
||||
add_to_privilege_list: Add to privilege List
|
||||
auth_by: -AuthBy %{user_display_name}
|
||||
info: User information
|
||||
panel: User panel
|
||||
role: User role
|
||||
|
|
|
@ -40,7 +40,30 @@ zh_tw:
|
|||
update: 更新
|
||||
view: 檢視
|
||||
yes_: "Yes"
|
||||
|
||||
|
||||
all_content: 全部內容有:
|
||||
all_file: 全部檔案有:
|
||||
all_member: 成員總數:
|
||||
content: 內容
|
||||
data: 數據
|
||||
file: 檔案
|
||||
file_type: 檔案類型
|
||||
hits: 點擊率
|
||||
item: 項目
|
||||
member: 成員
|
||||
module: 模組
|
||||
most_visited_page: 熱門頁面
|
||||
quantity: 數量
|
||||
recent_update: 近期更新
|
||||
referral_in_links: 外部推薦連結
|
||||
role: 角色
|
||||
site_info: 網站資訊
|
||||
site_name: 網站名稱
|
||||
statistics: 統計
|
||||
title: 標題
|
||||
total_visitors: 造訪次數:
|
||||
traffic: 流量
|
||||
|
||||
admin:
|
||||
action: 操作
|
||||
ad_banner: 廣告輪播
|
||||
|
@ -103,7 +126,7 @@ zh_tw:
|
|||
editing_page: 編輯頁面
|
||||
editing_snippet: 編輯片段
|
||||
editing_info: 編輯用戶資料
|
||||
editing_role: 編輯用戶角色
|
||||
editing_role: 編輯用戶身份
|
||||
email: Email
|
||||
enable_language: 啟用語言
|
||||
file_name: 檔名
|
||||
|
@ -128,8 +151,10 @@ zh_tw:
|
|||
list_snippets: 斷片列表
|
||||
list_users: 使用列表
|
||||
list_infos: 用戶資料列表
|
||||
list_roles: 用戶角色列表
|
||||
list_roles: 用戶身份列表
|
||||
member: 會員
|
||||
module:
|
||||
authorization: 模組授權
|
||||
move_down: 往下移
|
||||
move_up: 往上移
|
||||
multilingual: 多種語言
|
||||
|
@ -150,7 +175,7 @@ zh_tw:
|
|||
new_snippet: 新增片段
|
||||
new_user: 新增使用
|
||||
new_info: 新增用戶資料
|
||||
new_role: 新增用戶角色
|
||||
new_role: 新增用戶身份
|
||||
non_multilingual: 非多種語言
|
||||
options: 選項
|
||||
orig_upload_file: 原上傳檔名
|
||||
|
@ -158,8 +183,8 @@ zh_tw:
|
|||
position: 位置
|
||||
published?: 發布?
|
||||
purchase: 購買
|
||||
role: 角色
|
||||
roles: 角色
|
||||
role: 身份
|
||||
roles: 身份
|
||||
site_settings: 基本設定
|
||||
setup_member: 成員設置
|
||||
setup_translations: 語系設定
|
||||
|
@ -184,9 +209,23 @@ zh_tw:
|
|||
upload_design: 上傳設計
|
||||
url: URL
|
||||
user: 用戶
|
||||
user_role:
|
||||
auth:
|
||||
all_member: 所有會員
|
||||
manager: 管理員
|
||||
sub_manager: 次管理員
|
||||
by_role: 根據身份
|
||||
by_sub_role: 根據次身份
|
||||
block_list: 封鎖名單
|
||||
add_manager: 增加到管理員
|
||||
add_sub_manager: 增加到次管理員
|
||||
add_to_block_list: 封鎖名單
|
||||
add_to_privilege_list: 特許名單
|
||||
auth_by: -由%{user_display_name}授權
|
||||
user: 使用會員
|
||||
info: 用戶資料
|
||||
panel: 用戶面板
|
||||
role: 用戶角色
|
||||
role: 用戶身份
|
||||
|
||||
panel:
|
||||
|
||||
|
|
|
@ -19,6 +19,10 @@ module OrbitCoreLib
|
|||
|
||||
end
|
||||
|
||||
def get_object_auth_by_title(title)
|
||||
self.object_auths.where({title: title }).first
|
||||
end
|
||||
|
||||
def authed_users(title=nil)
|
||||
users = []
|
||||
users = case title
|
||||
|
@ -33,7 +37,7 @@ module OrbitCoreLib
|
|||
[]
|
||||
end
|
||||
else
|
||||
self.object_auths.where(title: title).first.auth_users rescue []
|
||||
get_object_auth_by_title(title).auth_users rescue []
|
||||
end
|
||||
users
|
||||
end
|
||||
|
|
|
@ -43,7 +43,9 @@ module ParserFrontEnd
|
|||
ret << "<div id='appfrontend' class='dymanic_load' path='/panel/#{page.module_app.key}/front_end/#{page.app_frontend_url}"
|
||||
ret << "/#{id}" if id
|
||||
ret << "?inner=true&page_id=#{page.id}"
|
||||
ret << "&category_id=#{page.category}" if page[:category]
|
||||
# ret << "&category_id=#{page.category}" if page[:category]
|
||||
ret << "&category_id=#{params[:category_id]}" if !params[:category_id].blank?
|
||||
ret << "&tag_id=#{params[:tag_id]}" if !params[:tag_id].blank?
|
||||
ret << "'></div>"
|
||||
else
|
||||
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
||||
|
@ -51,8 +53,15 @@ module ParserFrontEnd
|
|||
when 'text'
|
||||
ret << part.i18n_variable[I18n.locale] rescue ''
|
||||
when 'module_widget'
|
||||
if part[:category]
|
||||
ret << "<div class='dymanic_load' path='/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true&category_id=#{part[:category]}'></div>"
|
||||
# if part[:category]
|
||||
# ret << "<div class='dymanic_load' path='/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true&category_id=#{part[:category]}'></div>"
|
||||
# else
|
||||
# ret << "<div class='dymanic_load' path='/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true'></div>"
|
||||
# end
|
||||
if !params[:category_id].blank?
|
||||
ret << "<div class='dymanic_load' path='/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true&category_id=#{params[:category_id]}'></div>"
|
||||
elsif !params[:tag_id].blank?
|
||||
ret << "<div class='dymanic_load' path='/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true&tag_id=#{params[:tag_id]}'></div>"
|
||||
else
|
||||
ret << "<div class='dymanic_load' path='/panel/#{part.module_app.key}/widget/#{part.widget_path}?inner=true'></div>"
|
||||
end
|
||||
|
|
|
@ -5,19 +5,13 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
|
|||
|
||||
def setting
|
||||
@bulletin_categorys = BulletinCategory.all
|
||||
if params.has_key?(:category_id)
|
||||
first_category = BulletinCategory.find params[:category_id]
|
||||
if params[:commit] == 'Update'
|
||||
privilege_users = params[:users].collect{|key,value| User.find key } rescue []
|
||||
preload_object_auth_ary = first_category.object_auths.where(title: 'fact_check') || (first_category.object_auths.create :title=> 'fact_check')
|
||||
preload_object_auth = preload_object_auth_ary.first
|
||||
preload_object_auth.privilege_users = privilege_users
|
||||
preload_object_auth.save!
|
||||
end
|
||||
@options_from_collection_for_select_bulletin_categorys = @bulletin_categorys.collect{|bc| [bc.i18n_variable[I18n.locale],bc.id] }
|
||||
if params.has_key? :category
|
||||
@bulletin_category = BulletinCategory.find params[:category][:id]
|
||||
else
|
||||
first_category = @bulletin_categorys.first
|
||||
end
|
||||
preload_object_auth = first_category.object_auths.where(title: 'fact_check').empty?? (first_category.object_auths.create! :title=> 'fact_check') : first_category.object_auths.where(title: 'fact_check')
|
||||
@bulletin_category = @bulletin_categorys.first
|
||||
end
|
||||
preload_object_auth = @bulletin_category.object_auths.where(title: 'fact_check').empty?? (@bulletin_category.object_auths.create! :title=> 'fact_check') : @bulletin_category.object_auths.where(title: 'fact_check')
|
||||
@users_array = preload_object_auth.first.privilege_users rescue []
|
||||
respond_to do |format|
|
||||
format.html
|
||||
|
@ -26,7 +20,16 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
|
|||
end
|
||||
|
||||
def update_setting
|
||||
|
||||
object_auth = update_setting_by_params
|
||||
if object_auth.save!
|
||||
flash[:notice] = "Update Done"
|
||||
else
|
||||
flash[:notice] = "Update Failed"
|
||||
end
|
||||
end
|
||||
|
||||
def user_list
|
||||
@bulletin_category = BulletinCategory.find params[:category][:id]
|
||||
end
|
||||
# def index
|
||||
# get_categorys(params[:bulletin_category_id])
|
||||
|
@ -64,6 +67,15 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle
|
|||
#
|
||||
# end
|
||||
protected
|
||||
def update_setting_by_params
|
||||
category = BulletinCategory.find params[:category][:id]
|
||||
privilege_users = params[:users].collect{|key,value| User.find key } rescue []
|
||||
object_auth_ary = category.object_auths.where(title: 'fact_check') || (category.object_auths.create :title=> 'fact_check')
|
||||
object_auth = object_auth_ary.first
|
||||
object_auth.privilege_users = privilege_users
|
||||
object_auth
|
||||
end
|
||||
|
||||
def get_categorys(id = nil)
|
||||
@bulletin_categorys = []
|
||||
if(is_manager? || is_admin?)
|
||||
|
|
|
@ -32,7 +32,10 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
|
|||
|
||||
# @bulletins = Bulletin.search(params[:search], params[:category_id])
|
||||
# @bulletins = Bulletin.all.order_by([params[:sort], params[:direction]])
|
||||
@bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered_bulletins : Bulletin.all.page(params[:page]).per(10)
|
||||
|
||||
|
||||
# @bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered_bulletins : Bulletin.all.page(params[:page]).per(10)
|
||||
@bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered("bulletin") : Bulletin.all.page(params[:page]).per(10)
|
||||
@bulletin_categories = BulletinCategory.all
|
||||
|
||||
@bulletin_link = BulletinLink.new
|
||||
|
@ -301,7 +304,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
|
|||
if params[:to_delete]
|
||||
bulletins = Bulletin.any_in(:_id => params[:to_delete]).delete_all
|
||||
end
|
||||
redirect_to panel_announcement_back_end_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort])
|
||||
redirect_to panel_announcement_back_end_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options])
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -11,8 +11,10 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
|
|||
def index
|
||||
|
||||
date_now = Time.now
|
||||
if params[:category_id]
|
||||
if !params[:category_id].blank?
|
||||
@bulletins = Bulletin.can_display.where(:bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
|
||||
elsif !params[:tag_id].blank?
|
||||
@bulletins = AnnouncementTag.find(params[:tag_id]).bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
|
||||
else
|
||||
@bulletins = Bulletin.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
|
||||
end
|
||||
|
|
|
@ -13,8 +13,10 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
|
|||
# deadline
|
||||
# @bulletin_categorys = BulletinCategory.first;
|
||||
# @bulletins = Bulletin.widget_datas(@bulletin_categorys.id).limit(9)
|
||||
if params[:category_id]
|
||||
if !params[:category_id].blank?
|
||||
@bulletins = Bulletin.can_display.where(:bulletin_category_id => params[:category_id]).widget_datas.limit(9)
|
||||
elsif !params[:tag_id].blank?
|
||||
@bulletins = AnnouncementTag.find(params[:tag_id]).bulletins.can_display.widget_datas.limit(9) rescue nil
|
||||
else
|
||||
@bulletins = Bulletin.can_display.widget_datas.limit(9)
|
||||
end
|
||||
|
@ -40,6 +42,11 @@ class Panel::Announcement::Widget::BulletinsController < OrbitWidgetController
|
|||
@selected_tag = AnnouncementTag.find(params[:tag_id])
|
||||
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
|
||||
end
|
||||
|
||||
def bulletins_side_bar
|
||||
@tags = AnnouncementTag.all
|
||||
get_categorys
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
module Panel::Announcement::BackEnd::BulletinCategorysHelper
|
||||
include ActionView::Helpers::UrlHelper
|
||||
|
||||
|
||||
def show_submit_permission_link(bulletin_category)
|
||||
oa = bulletin_category.get_object_auth_by_title('submit')
|
||||
if oa.nil?
|
||||
bulletin_category.object_auths.new(title: 'submit' ).save
|
||||
oa = bulletin_category.get_object_auth_by_title('submit')
|
||||
end
|
||||
link_to t('announcement.bulletin.cate_auth'), edit_admin_object_auth_path(oa)
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
module Panel::Announcement::BackEnd::BulletinsHelper
|
||||
|
||||
def show_approval_link(bulletin)
|
||||
by_bulletin = (!bulletin.is_expired? and !bulletin.is_checked?)
|
||||
by_user = bulletin.bulletin_category.authed_users('fact_check').include?(current_user) or is_manager?
|
||||
by_bulletin and by_user
|
||||
end
|
||||
|
||||
end
|
|
@ -14,7 +14,7 @@ class Bulletin
|
|||
field :deadline , :type => Date
|
||||
# field :url
|
||||
field :create_user_id
|
||||
field :update_user_id
|
||||
field :update_user_id, :class_name => "User"
|
||||
|
||||
field :is_top, :type => Boolean, :default => false
|
||||
field :is_hot, :type => Boolean, :default => false
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
class AnnouncementTag < Tag
|
||||
|
||||
has_and_belongs_to_many :bulletins
|
||||
|
||||
|
||||
def get_visible_bulletins(sort = :name)
|
||||
date_now = Time.now
|
||||
self.bulletins.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
|
||||
end
|
||||
|
||||
end
|
|
@ -1,15 +0,0 @@
|
|||
<h1><%= bulletin_category.key %></h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th><%= t('bulletin.status') %></th>
|
||||
<th><%= t('bulletin.category') %></th>
|
||||
<th><%= t('bulletin.title') %></th>
|
||||
<th><%= t('bulletin.postdate') %></th>
|
||||
<th><%= t('bulletin.deadline') %></th>
|
||||
<th><%= t('bulletin.action') %></th>
|
||||
</tr>
|
||||
|
||||
<% bulletin_category.bulletins.each do |post| %>
|
||||
<%= render :partial => 'panel/announcement/back_end/bulletins/bulletins', :locals => {:post => post,:approval_allow=>true} %>
|
||||
<% end %>
|
||||
</table>
|
|
@ -0,0 +1,44 @@
|
|||
<% if bulletin_category -%>
|
||||
|
||||
<div class="modal hide fade in" id="bulletin_category-<%=bulletin_category.id%>">
|
||||
<div class="modal-header">
|
||||
<a class="close" data-dismiss="modal">×</a>
|
||||
<h3><%= t("announcement.bulletin.approval_user_list") %></h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="clear">
|
||||
<% bulletin_category.get_object_auth_by_title('fact_check').auth_users.each do |user| %>
|
||||
<div class="checkbox clear checked">
|
||||
<div class='member-avatar'>
|
||||
<% if user.avatar? %>
|
||||
<%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
|
||||
<% else %>
|
||||
<%= image_tag "person.png",:class => "member-img" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%>
|
||||
</div>
|
||||
<% end -%>
|
||||
<divl>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#" class="btn" data-dismiss="modal"><%= t("modal.close") %></a>
|
||||
</div>
|
||||
<div>
|
||||
<script type="text/javascript" src="/static/kernel.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
$("#bulletin_category-<%=bulletin_category.id%>").on("show", function () {
|
||||
});
|
||||
$(".modal").on("hidden", function () {
|
||||
$("#show_preview").remove();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<% end -%>
|
|
@ -1,24 +1,24 @@
|
|||
<%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do -%>
|
||||
<% sys_users = User.all -%>
|
||||
<% sys_users.each do |user| -%>
|
||||
<% sys_users.each do |sys_user| -%>
|
||||
|
||||
<div class="checkblock">
|
||||
|
||||
<% user.sub_roles.each do |sr| %>
|
||||
<% sys_user.sub_roles.each do |sr| %>
|
||||
<div class="for_unit" style="display:none;"> <%= sr.key %></div>
|
||||
<% end %>
|
||||
<%= content_tag :div,:data=>{'original-title'=>t('announcement.bulletin.approval_setting_window_title'),:content => "#{user.sub_roles.collect{|sr| sr.key}.join(',')}"},:class=>"checkbox clear" do %>
|
||||
<%= content_tag :div,:data=>{'original-title'=>t('announcement.bulletin.approval_setting_window_title'),:content => "#{sys_user.sub_roles.collect{|sr| sr.key}.join(',')}"},:class=>"checkbox clear" do %>
|
||||
<div class="check-icon">
|
||||
</div>
|
||||
<div class='member-avatar'>
|
||||
<% if user.avatar? %>
|
||||
<%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
|
||||
<% if sys_user.avatar? %>
|
||||
<%= image_tag(sys_user.avatar.thumb.url,:class => "member-img") %>
|
||||
<% else %>
|
||||
<%= image_tag "person.png",:class => "member-img" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%>
|
||||
<%= check_box_tag "[users][#{user.id}]", 'true',users.include?(user),:class => "check" -%>
|
||||
<%= label_tag "lab-user-#{sys_user.id}", (sys_user.name rescue ''),:class=>"member-name",:id=>nil -%>
|
||||
<%= check_box_tag "[users][#{sys_user.id}]", 'true',users.include?(sys_user),:class => "check" -%>
|
||||
<%end -%>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
<%= render 'panel/announcement/back_end/bulletins/filter' %>
|
||||
<table id="bulettin_sort_list" class="table main-list">
|
||||
<%= render 'panel/announcement/back_end/bulletins/bulletins' %>
|
||||
</table>
|
||||
<div class="form-actions">
|
||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_panel_announcement_back_end_bulletin_path, :class => 'btn btn-primary' %>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<% content_for :secondary do %>
|
||||
<%#= render :partial => '/panel/announcement/back_end/announcement_secondary' %>
|
||||
<% end -%>
|
||||
|
||||
<%= flash_messages %>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<fieldset><legend><%= t('bulletin.search') %></legend>
|
||||
|
||||
<%= form_for :bulletin, :action => 'search', :method => 'get', :url => panel_announcement_back_end_bulletins_path do |f| %>
|
||||
|
||||
<%#= f.select :bulletin_category_id, @bulletin_categorys.collect {|t| [ t.i18n_variable[I18n.locale], t.id ] },{ :include_blank => t('bulletin.select') }%>
|
||||
|
||||
Category <%#= select_tag "category_id", options_for_select(@bulletin_categorys.collect{|t| [t.i18n_variable[I18n.locale], t.id]}), :prompt => t('bulletin.select') %>
|
||||
|
||||
KeyWord <%#= text_field_tag :search, params[:search], :id => 'search_field' %>
|
||||
|
||||
<%= submit_tag "Search", :name => nil %>
|
||||
|
||||
<% end %>
|
||||
|
||||
|
||||
</fieldset>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<h1><%= t('bulletin.list_announcement') %></h1>
|
||||
|
||||
<div id="check_block">
|
||||
<h1>Check Please</h1>
|
||||
<%#= render :partial => "list_table", :collection => @bulletin_categorys_check,:as => :bulletin_category%>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
-->
|
|
@ -4,27 +4,31 @@
|
|||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "inc/permission-checkbox" %>
|
||||
<%= javascript_include_tag "inc/search" %>
|
||||
<%= javascript_include_tag "inc/modal-preview" %>
|
||||
<% end %>
|
||||
<%#= label_tag :fact_check_setting, t("announcement.bulletin.fact_check_setting") %>
|
||||
<%= form_tag('', :remote => true) %>
|
||||
<div class="subnav">
|
||||
<ul class="nav nav-pills filter">
|
||||
<%= form_tag('', :remote => true,:class => "prevent_enter_submit_form") %>
|
||||
<div class="subnav clear">
|
||||
<ul class="nav nav-pills filter pull-left">
|
||||
<li class="accordion-group">
|
||||
<div class="form-search" style="margin: 5px 10px;">
|
||||
<%= label_tag :category, t("announcement.bulletin.category") %>
|
||||
<%= select_tag "category_id", options_from_collection_for_select(@bulletin_categorys, "id", "key") %>
|
||||
<%= select "category",'id',@options_from_collection_for_select_bulletin_categorys %>
|
||||
<%= search_field_tag 'user_filter' %>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<%= link_to t("announcement.bulletin.approval_user_list"), panel_announcement_back_end_approval_user_list_path , :class=>'preview_trigger btn btn-success pull-right'%>
|
||||
|
||||
</div>
|
||||
<%#= label_tag :role, t("admin.roles") %>
|
||||
<div class="clear">
|
||||
<%= content_tag :div do -%>
|
||||
<% form_tag :action => "update_setting" do %>
|
||||
<% form_tag panel_announcement_back_end_approval_setting_path do %>
|
||||
<%= render :partial => "privilege_user", :locals => {:users => @users_array} %>
|
||||
<div class="form-actions pagination-centered">
|
||||
<%= submit_tag "Update", :class => 'btn' %>
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= submit_tag "Update", :class => 'btn btn-primary' %>
|
||||
</div>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
@ -32,9 +36,21 @@
|
|||
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
var availableTags = [];
|
||||
$(function() {
|
||||
|
||||
$('#category_id').change(function() {
|
||||
$(this).parents('form').submit();
|
||||
$(document).ready(function() {
|
||||
|
||||
$(".prevent_enter_submit_form").bind("keypress", function(e) {
|
||||
if (e.keyCode == 13) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$('#category_id').change(function() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
dataType: "script",
|
||||
url:$(this).parents("from").attr("href"),
|
||||
data:$(this).parents("form").serialize()
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -1 +1,2 @@
|
|||
$("#users_checkbox_ary").replaceWith('<%= (render :partial => 'privilege_user', :locals => {:users => @users_array}).html_safe%>');
|
||||
$("#users_checkbox_ary").replaceWith('<%= escape_javascript(render :partial => "privilege_user", :locals => {:users => @users_array})%>');
|
||||
permissionCheckbox();
|
|
@ -0,0 +1 @@
|
|||
alert( "<% flash.each do |key, msg| %><%= msg %><% end%>");
|
|
@ -0,0 +1,2 @@
|
|||
$('#show_preview').html("<%= escape_javascript(render(:partial => 'modal_list',:locals => {:bulletin_category => @bulletin_category})) %>");
|
||||
var start_modal_with_id = "bulletin_category-<%=@bulletin_category.id%>"
|
|
@ -5,7 +5,10 @@
|
|||
<div class="quick-edit">
|
||||
<ul class="nav nav-pills hide">
|
||||
<li><%= link_to t('bulletin_category.edit'), edit_panel_announcement_back_end_bulletin_category_path(bulletin_category), :remote => true %></li>
|
||||
<li><%= show_submit_permission_link(bulletin_category) %></li>
|
||||
<li><%= link_to t('bulletin_category.delete'), panel_announcement_back_end_bulletin_category_path(bulletin_category), :confirm => t('announcement.sure?'), :method => :delete, :remote => true %></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<%# <br />顯示方式是設定在前台頁面時,資訊所呈現的樣式 %>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<div class="form-actions pagination-right">
|
||||
<%= f.submit t('submit'), :class=>'btn btn-primary' %>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,12 +1,30 @@
|
|||
|
||||
<%= flash_messages %>
|
||||
|
||||
<div id="filter" class="subnav">
|
||||
<div class="filters">
|
||||
<div id="sort_headers" class="table-label">
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span2"><%= t('bulletin_category.key') %></th>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<th class="span2"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></th>
|
||||
<% end %>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table id="bulletin_categorys" class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span1-2"><%= t('bulletin_category.key') %></th>
|
||||
<th class="span2"></th>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<th class="span1-2"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></th>
|
||||
<th class="span2"></th>
|
||||
<% end %>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
</li>
|
||||
<%#= debugger %>
|
||||
<%#= a=1 %>
|
||||
<% if (bulletin.bulletin_category.authed_users('fact_check').include?(current_user) or is_manager?) and !bulletin.is_expired? %>
|
||||
<% if show_approval_link(bulletin) %>
|
||||
<li><%= link_to t('announcement.bulletin.approval'), edit_panel_announcement_back_end_bulletin_path(bulletin) %></li><%#= #TODO add ancher so user can quick access into that part %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
|
|
@ -31,3 +31,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "sort_header" %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div class="accordion-inner" data-toggle="buttons-checkbox">
|
||||
<% @bulletin_categories.each do |category| -%>
|
||||
<%= link_to category.i18n_variable[I18n.locale], panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'categories', :id => category.id}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('categories', category.id)}" %>
|
||||
<%= link_to category.i18n_variable[I18n.locale], panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'categories', :id => category.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('categories', category.id)}" %>
|
||||
<% end -%>
|
||||
</div>
|
||||
<%= render :partial => 'clear_filters', :locals => {:type => 'categories'} %>
|
|
@ -1,9 +1,9 @@
|
|||
<div class="accordion-inner" data-toggle="buttons-checkbox">
|
||||
<%= link_to t(:top), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_top'}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('status', 'is_top')}" %>
|
||||
<%= link_to t(:hot), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_hot'}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('status', 'is_hot')}" %>
|
||||
<%= link_to t(:hidden), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_hidden'}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('status', 'is_hidden')}" %>
|
||||
<%= link_to t(:pending), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_pending'}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('status', 'is_pending')}" %>
|
||||
<%= link_to t(:passed), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_checked'}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('status', 'is_checked')}" %>
|
||||
<%= link_to t(:rejected), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_rejected'}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('status', 'is_rejected')}" %>
|
||||
<%= link_to t(:top), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_top'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_top')}" %>
|
||||
<%= link_to t(:hot), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_hot'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_hot')}" %>
|
||||
<%= link_to t(:hidden), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_hidden'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_hidden')}" %>
|
||||
<%= link_to t(:pending), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_pending'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_pending')}" %>
|
||||
<%= link_to t(:passed), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_checked'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_checked')}" %>
|
||||
<%= link_to t(:rejected), panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'status', :id => 'is_rejected'}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('status', 'is_rejected')}" %>
|
||||
</div>
|
||||
<%= render :partial => 'clear_filters', :locals => {:type => 'status'} %>
|
|
@ -1,6 +1,6 @@
|
|||
<div class="accordion-inner" data-toggle="buttons-checkbox">
|
||||
<% @tags.each do |tag| -%>
|
||||
<%= link_to tag[I18n.locale], panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'tags', :id => tag.id}, :sort => params[:sort], :direction => params[:direction]), :class => "btn js_history#{is_filter_active?('tags', tag.id)}" %>
|
||||
<%= link_to tag[I18n.locale], panel_announcement_back_end_bulletins_path(:filter => @filter, :new_filter => {:type => 'tags', :id => tag.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn js_history#{is_filter_active?('tags', tag.id)}" %>
|
||||
<% end -%>
|
||||
</div>
|
||||
<%= render :partial => 'clear_filters', :locals => {:type => 'tags'} %>
|
|
@ -292,7 +292,6 @@
|
|||
|
||||
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "bulletin_form" %>
|
||||
<%= javascript_include_tag "inc/jquery.imagesloaded.js" %>
|
||||
<script>
|
||||
$('#add_bulletin_link a.add').live('click', function(){
|
||||
|
|
|
@ -1,31 +1,7 @@
|
|||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr class="sort-header">
|
||||
<th class="span1 strong">
|
||||
<input id="check_all_bulletins" type="checkbox">
|
||||
<a href='#' class="list-remove"><i class="icon-trash"></i></a>
|
||||
</th>
|
||||
<th class="sort span1-2 <%= is_sort_active?('status') %>">
|
||||
<%= link_to (t('bulletin.status') + content_tag(:b, nil, :class => is_sort?('status'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('status'))), :class => 'js_history' %>
|
||||
</th>
|
||||
<th class="sort span1-2 <%= is_sort_active?('category') %>">
|
||||
<%= link_to (t('bulletin.category') + content_tag(:b, nil, :class => is_sort?('category'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('category'))), :class => 'js_history' %>
|
||||
</th>
|
||||
<th class="sort span7 <%= is_sort_active?('title') %>">
|
||||
<%= link_to (t('bulletin.title') + content_tag(:b, nil, :class => is_sort?('title'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('title'))), :class => 'js_history' %>
|
||||
</th>
|
||||
<th class="sort span1-2 <%= is_sort_active?('postdate') %>">
|
||||
<%= link_to (t('bulletin.start_date') + content_tag(:b, nil, :class => is_sort?('postdate'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('postdate'))), :class => 'js_history' %>
|
||||
</th>
|
||||
<th class="sort span1-2 <%= is_sort_active?('deadline') %>">
|
||||
<%= link_to (t('bulletin.end_date') + content_tag(:b, nil, :class => is_sort?('deadline'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('deadline'))), :class => 'js_history' %>
|
||||
</th>
|
||||
<th class="sort span1-2 <%= is_sort_active?('tags') %>">
|
||||
<%= link_to (t('bulletin.tags') + content_tag(:b, nil, :class => is_sort?('tags'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('tags'))), :class => 'js_history' %>
|
||||
</th>
|
||||
<th class="sort span1-3 <%= is_sort_active?('update_user_id') %>">
|
||||
<%= link_to (t('bulletin.last_modified') + content_tag(:b, nil, :class => is_sort?('update_user_id'))).html_safe, panel_announcement_back_end_bulletins_path({:filter => @filter}.merge(sortable('update_user_id'))), :class => 'js_history' %>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<%= render_sort_bar(true, ['status', ['is_top', 'is_hot', 'is_hidden', 'is_pending', 'is_checked', 'is_rejected'], 'span1-2', 'bulletin.status'],
|
||||
['category', 'bulletin_category', 'span1-2', 'bulletin.category'],
|
||||
['title', 'title','span7', 'bulletin.title'],
|
||||
['start_date', 'postdate', 'span1-2', 'bulletin.start_date'],
|
||||
['end_date', 'deadline', 'span1-2', 'bulletin.end_date'],
|
||||
['tags', 'tags', 'span1-2', 'bulletin.tags'],
|
||||
['last_modified', 'update_user_id','span1-3', 'bulletin.last_modified']).html_safe %>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<%= form_for :bulletins, :url => delete_panel_announcement_back_end_bulletins_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil), :html => {:id => 'delete_bulletins'}, :remote => true do %>
|
||||
<%= form_for :bulletins, :url => delete_panel_announcement_back_end_bulletins_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]), :html => {:id => 'delete_all'}, :remote => true do %>
|
||||
<%= render 'filter' %>
|
||||
<table id="bulettin_sort_list" class="table main-list">
|
||||
<%= render 'bulletins' %>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
<div id="bulletin_pagination">
|
||||
<%= paginate @bulletins, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>
|
||||
<div id="bulletin_pagination" class="paginationFixed">
|
||||
<%= paginate @bulletins, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]} %>
|
||||
</div>
|
||||
|
||||
<div id="bulletin_link_qe">
|
||||
|
@ -14,14 +14,8 @@
|
|||
<%= render :partial => "bulletin_link_qe" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="bulletin_file_qe">
|
||||
<div id="modal-file" class="modal fade">
|
||||
<%= render :partial => "bulletin_file_qe" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_panel_announcement_back_end_bulletin_path, :class => 'btn btn-primary' %>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
$("#collapse-status").html("<%= j render 'filter_status' %>");
|
||||
$("#collapse-category").html("<%= j render 'filter_categories' %>");
|
||||
$("#collapse-tags").html("<%= j render 'filter_tags' %>");
|
||||
$("#delete_bulletins").attr("action", "<%= delete_panel_announcement_back_end_bulletins_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter) %>");
|
||||
$("#delete_all").attr("action", "<%= delete_panel_announcement_back_end_bulletins_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]) %>");
|
||||
$("#sort_headers").html("<%= j render 'sort_headers' %>");
|
||||
$("#tbody_bulletins").html("<%= j render :partial => 'bulletin', :collection => @bulletins %>");
|
||||
$("#bulletin_pagination").html("<%= j paginate @bulletins, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>");
|
|
@ -0,0 +1,25 @@
|
|||
<!-- <div class="search"> <input type="text" onfocus="this.value='';this.searchClickFlag=true;" onblur="if(this.value==''){this.value='公告搜尋';this.searchClickFlag=false;}" value="公告搜尋" id="q" class="search_key" name="q"/> <input type="submit" name="sa" id="sa" class="sa" value="." /> </div> -->
|
||||
<div class="category_list">
|
||||
<h3 class="h3"><%= t('announcement.categories') %></h3>
|
||||
<ul class="list">
|
||||
<% @bulletin_categorys.each do |category| %>
|
||||
<li>
|
||||
<%= link_to category.i18n_variable[I18n.locale], panel_announcement_front_end_bulletins_path(:category_id => category.id) %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tag_cloud">
|
||||
<h3 class="h3"><%= t('announcement.tag_cloud') %></h3>
|
||||
<ul class="cloud">
|
||||
<% @tags.each do |tag| %>
|
||||
<li class="hot<%#=rand(4) + 1%>">
|
||||
<%= link_to tag[I18n.locale], panel_announcement_front_end_bulletins_path(:tag_id => tag.id) %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- <div class="clear"></div> -->
|
||||
<!-- <div class="rss_feed">
|
||||
<a href="" class="rssimg"> Rss feed </a>
|
||||
</div> -->
|
|
@ -58,6 +58,7 @@ en:
|
|||
announcement:
|
||||
all_articles: List
|
||||
add_new: Add
|
||||
categories: Categories
|
||||
sure?: Sure?
|
||||
campus_news: Campus News
|
||||
more: more+
|
||||
|
@ -77,7 +78,10 @@ en:
|
|||
approval_pending: 'Pending'
|
||||
approval_pass: 'Pass'
|
||||
approval_setting_window_title: 'Unit'
|
||||
|
||||
approval_user_list: 'Approval Users'
|
||||
cate_auth: Category Authorization
|
||||
tag_cloud: Tag cloud
|
||||
|
||||
# admin:
|
||||
# action: Action
|
||||
# add_language: Add language
|
||||
|
|
|
@ -59,6 +59,9 @@ zh_tw:
|
|||
approval_pass: '通過'
|
||||
approval_not_pass_reason: '不通過原因'
|
||||
approval_setting_window_title: '單位'
|
||||
approval_user_list: '審核者'
|
||||
cate_auth: '分類授權'
|
||||
tag_cloud: 標籤雲
|
||||
|
||||
bulletin:
|
||||
last_modified: 最後修改於
|
||||
|
|
|
@ -3,9 +3,9 @@ Rails.application.routes.draw do
|
|||
namespace :announcement do
|
||||
namespace :back_end do
|
||||
match 'public' => "announcements#public",:as => :public
|
||||
match 'approval_setting' => "approvals#setting" ,:as => :approval_setting
|
||||
match 'update_setting' => "approvals#update_setting" ,:as => :approval_update_setting
|
||||
|
||||
match 'approval_setting' => "approvals#setting" ,:as => :approval_setting,:via => :get
|
||||
match 'approval_setting' => "approvals#update_setting" ,:as => :approval_setting,:via => :post
|
||||
match 'approval_setting' => "approvals#user_list" ,:as => :approval_user_list,:via => :put
|
||||
resources :bulletins do
|
||||
match "link_quick_add/:bulletin_id" => "bulletins#link_quick_add" ,:as => :link_quick_add
|
||||
match "link_quick_edit/:bulletin_id" => "bulletins#link_quick_edit" ,:as => :link_quick_edit
|
||||
|
@ -39,6 +39,7 @@ Rails.application.routes.draw do
|
|||
match "bulletins_and_web_links" => "bulletins#bulletins_and_web_links"
|
||||
match "reload_bulletins" => "bulletins#reload_bulletins"
|
||||
match "reload_web_links" => "bulletins#reload_web_links"
|
||||
match "bulletins_side_bar" => "bulletins#bulletins_side_bar"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.bundle/
|
||||
log/*.log
|
||||
pkg/
|
||||
test/dummy/db/*.sqlite3
|
||||
test/dummy/log/*.log
|
||||
test/dummy/tmp/
|
|
@ -0,0 +1,17 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
# Declare your gem's dependencies in news.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'
|
|
@ -0,0 +1,20 @@
|
|||
Copyright 2011 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.
|
|
@ -0,0 +1,3 @@
|
|||
= News
|
||||
|
||||
This project rocks and uses MIT-LICENSE.
|
|
@ -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 = 'News'
|
||||
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
|
|
@ -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 news_link
|
|
@ -0,0 +1,45 @@
|
|||
$(document).ready(function(){
|
||||
var topic1="0px";
|
||||
var topic2="-948px";
|
||||
var topic3="-1896px";
|
||||
var topic_page=1;
|
||||
$(".topic_prev").addClass("topic_prev_first");
|
||||
$(document).on("click", ".topic_prev", function() {
|
||||
if (topic_page !=1){
|
||||
topic_page-=1;
|
||||
}else{
|
||||
}
|
||||
if (topic_page == 1){
|
||||
$("#topic_list").stop().animate({"left": topic1}, "slow");
|
||||
$(".topic_prev").addClass("topic_prev_first");
|
||||
}
|
||||
if (topic_page == 2){
|
||||
$("#topic_list").stop().animate({"left": topic2}, "slow");
|
||||
$(".topic_prev").removeClass("topic_prev_first");
|
||||
$(".topic_next").removeClass("topic_next_last");
|
||||
}
|
||||
if (topic_page == 3){
|
||||
$("#topic_list").stop().animate({"left": topic3}, "slow");
|
||||
$(".topic_prev").removeClass("topic_next_last");
|
||||
}
|
||||
|
||||
});
|
||||
$(document).on("click", ".topic_next", function() {
|
||||
if (topic_page >=1 && topic_page <=2){
|
||||
topic_page+=1;
|
||||
}else{
|
||||
}
|
||||
if (topic_page == 1){
|
||||
$("#topic_list").stop().animate({"left": topic1}, "slow");
|
||||
$(".topic_prev").addClass("topic_prev_first");
|
||||
}
|
||||
if (topic_page == 2){
|
||||
$("#topic_list").stop().animate({"left": topic2}, "slow");
|
||||
$(".topic_prev").removeClass("topic_prev_first");
|
||||
}
|
||||
if (topic_page == 3){
|
||||
$("#topic_list").stop().animate({"left": topic3}, "slow");
|
||||
$(".topic_next").addClass("topic_next_last");
|
||||
}
|
||||
});
|
||||
});
|
|
@ -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
|
41
vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_approvals_controller.rb
vendored
Normal file
41
vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_approvals_controller.rb
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
class Panel::News::BackEnd::NewsApprovalsController < OrbitBackendController
|
||||
before_filter :authenticate_user!
|
||||
include AdminHelper
|
||||
|
||||
def setting
|
||||
@news_bulletin_categorys = NewsBulletinCategory.all
|
||||
if params.has_key?(:category_id)
|
||||
first_category = NewsBulletinCategory.find params[:category_id]
|
||||
if params[:commit] == 'Update'
|
||||
privilege_users = params[:users].collect{|key,value| User.find key } rescue []
|
||||
preload_object_auth_ary = first_category.object_auths.where(title: 'fact_check') || (first_category.object_auths.create :title=> 'fact_check')
|
||||
preload_object_auth = preload_object_auth_ary.first
|
||||
preload_object_auth.privilege_users = privilege_users
|
||||
preload_object_auth.save!
|
||||
end
|
||||
else
|
||||
first_category = @news_bulletin_categorys.first
|
||||
end
|
||||
preload_object_auth = first_category.object_auths.where(title: 'fact_check').empty?? (first_category.object_auths.create! :title=> 'fact_check') : first_category.object_auths.where(title: 'fact_check')
|
||||
@users_array = preload_object_auth.first.privilege_users rescue []
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
def update_setting
|
||||
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def get_categorys(id = nil)
|
||||
@news_bulletin_categorys = []
|
||||
if(is_manager? || is_admin?)
|
||||
@news_bulletin_categorys = (id ? NewsBulletinCategory.find(id).to_a : NewsBulletinCategory.excludes('disabled' => true))
|
||||
elsif is_sub_manager?
|
||||
@news_bulletin_categorys = NewsBulletinCategory.authed_for_user(current_user,'submit_new')
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,118 @@
|
|||
class Panel::News::BackEnd::NewsBulletinCategorysController < OrbitBackendController
|
||||
|
||||
def index
|
||||
@news_bulletin_categorys = NewsBulletinCategory.all
|
||||
@news_bulletin_category = NewsBulletinCategory.new(:display => 'List')
|
||||
|
||||
@url = panel_news_back_end_news_bulletin_categorys_path
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
# format.xml { render :xml => @news_bulletins }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# GET /news_bulletins/1
|
||||
# GET /news_bulletins/1.xml
|
||||
def show
|
||||
@news_bulletin_category = NewsBulletinCategory.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.html # show.html.erb
|
||||
# format.xml { render :xml => @news_bulletin_category }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# GET /news_bulletins/new
|
||||
# GET /news_bulletins/new.xml
|
||||
def new
|
||||
@news_bulletin_category = NewsBulletinCategory.new(:display => 'List')
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
# format.xml { render :xml => @news_bulletin_category }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
def quick_edit
|
||||
# debugger
|
||||
|
||||
@news_bulletin_category = NewsBulletinCategory.find(params[:news_bulletin_category_id])
|
||||
|
||||
@url = panel_news_back_end_news_bulletin_category_path(@news_bulletin_category)
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# GET /news_bulletins/1/edit
|
||||
def edit
|
||||
@news_bulletin_category = NewsBulletinCategory.find(params[:id])
|
||||
@i18n_variable = @news_bulletin_category.i18n_variable
|
||||
|
||||
@url = panel_news_back_end_news_bulletin_category_path(@news_bulletin_category)
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# POST /news_bulletins
|
||||
# POST /news_bulletins.xml
|
||||
def create
|
||||
@news_bulletin_category = NewsBulletinCategory.new(params[:news_bulletin_category])
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_category.save
|
||||
# format.html { redirect_to @news_bulletin_category, notice: 'Entry was successfully created.' }
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletin_categorys_url, :notice => t('news.create_news_bulletin_category_success')) }
|
||||
# format.xml { render :xml => @news_bulletin_category, :status => :created, :location => @news_bulletin_category }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "new" }
|
||||
# format.xml { render :xml => @news_bulletin_category.errors, :status => :unprocessable_entity }
|
||||
format.js { render action: "new" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PUT /news_bulletins/1
|
||||
# PUT /news_bulletins/1.xml
|
||||
def update
|
||||
@news_bulletin_category = NewsBulletinCategory.find(params[:id])
|
||||
|
||||
@url = panel_news_back_end_news_bulletin_category_path(@news_bulletin_category)
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_category.update_attributes(params[:news_bulletin_category])
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletin_category_url(@news_bulletin_category), :notice => t('news_bulletin_category.update_news_bulletin_category_success')) }
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletin_categorys_url, :notice => t('news_bulletin_category.update_news_bulletin_category_success')) }
|
||||
# format.xml { head :ok }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "edit" }
|
||||
format.js { render :action => "edit" }
|
||||
# format.xml { render :xml => @news_bulletin_category.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# DELETE /news_bulletins/1
|
||||
# DELETE /news_bulletins/1.xml
|
||||
def destroy
|
||||
@news_bulletin_category = NewsBulletinCategory.find(params[:id])
|
||||
@news_bulletin_category.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletin_categorys_url) }
|
||||
# format.xml { head :ok }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,48 @@
|
|||
class Panel::News::BackEnd::NewsBulletinFilesController < ApplicationController
|
||||
|
||||
layout 'new_admin'
|
||||
|
||||
def index
|
||||
@news_bulletin_files = NewsBulletinFile.all
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
# format.xml { render :xml => @news_bulletins }
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# POST /news_bulletins
|
||||
# POST /news_bulletins.xml
|
||||
def create
|
||||
@news_bulletin_file = NewsBulletinFile.new(params[:news_bulletin_file])
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_file.save
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "new" }
|
||||
format.js { render action: "new" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PUT /news_bulletins/1
|
||||
# PUT /news_bulletins/1.xml
|
||||
def update
|
||||
@news_bulletin_file = NewsBulletinFile.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_file.update_attributes(params[:news_bulletin_file])
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "edit" }
|
||||
format.js { render :action => "edit" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,49 @@
|
|||
class Panel::News::BackEnd::NewsBulletinLinksController < ApplicationController
|
||||
|
||||
layout 'new_admin'
|
||||
|
||||
def index
|
||||
@news_bulletin_links = NewsBulletinLink.all
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
# format.xml { render :xml => @news_bulletins }
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# POST /news_bulletins
|
||||
# POST /news_bulletins.xml
|
||||
def create
|
||||
@news_bulletin_link = NewsBulletinLink.new(params[:news_bulletin_link])
|
||||
# @news_bulletin_link.news_bulletin_id = params[:news_bulletin_link][:news_bulletin_id]
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_link.save
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "new" }
|
||||
format.js { render action: "new" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PUT /news_bulletins/1
|
||||
# PUT /news_bulletins/1.xml
|
||||
def update
|
||||
@news_bulletin_link = NewsBulletinLink.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_link.update_attributes(params[:news_bulletin_link])
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "edit" }
|
||||
format.js { render :action => "edit" }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
408
vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb
vendored
Normal file
408
vendor/built_in_modules/news/app/controllers/panel/news/back_end/news_bulletins_controller.rb
vendored
Normal file
|
@ -0,0 +1,408 @@
|
|||
class Panel::News::BackEnd::NewsBulletinsController < OrbitBackendController
|
||||
|
||||
before_filter :authenticate_user!
|
||||
before_filter :is_admin?
|
||||
|
||||
def index
|
||||
# @news_bulletins = NewsBulletin.all
|
||||
# @news_bulletins = NewsBulletin.desc("postdate desc")
|
||||
get_categorys(params[:news_bulletin_category_id])
|
||||
get_tags
|
||||
|
||||
@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
|
||||
|
||||
# @news_bulletins = NewsBulletin.where("news_bulletin_category_id" => params[:news_bulletin_category_id]).desc("postdate") if params[:news_bulletin_category_id]
|
||||
|
||||
# @news_bulletins = NewsBulletin.search(params[:search], params[:category_id])
|
||||
# @news_bulletins = NewsBulletin.all.order_by([params[:sort], params[:direction]])
|
||||
|
||||
|
||||
# @news_bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered_news_bulletins : NewsBulletin.all.page(params[:page]).per(10)
|
||||
@news_bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered("news_bulletin") : NewsBulletin.all.page(params[:page]).per(10)
|
||||
@news_bulletin_categories = NewsBulletinCategory.all
|
||||
|
||||
@news_bulletin_link = NewsBulletinLink.new
|
||||
@link_url = panel_news_back_end_news_bulletins_path
|
||||
|
||||
@news_bulletin_file = NewsBulletinFile.new
|
||||
@file_url = panel_news_back_end_news_bulletins_path
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.js { }
|
||||
format.xml { render :xml => @news_bulletins }
|
||||
end
|
||||
end
|
||||
|
||||
# GET /news_bulletins/1
|
||||
# GET /news_bulletins/1.xml
|
||||
def show
|
||||
@news_bulletin = NewsBulletin.find(params[:id])
|
||||
get_tags
|
||||
# get_categorys
|
||||
|
||||
# @news_bulletin_categorys = NewsBulletinCategory.where("_id" => params[:id])
|
||||
|
||||
# if params[:id]
|
||||
# @news_bulletins = NewsBulletin.where("news_bulletin_category_id" => params[:id])
|
||||
# else
|
||||
# @news_bulletins = NewsBulletin.desc("postdate desc")
|
||||
# end
|
||||
|
||||
respond_to do |format|
|
||||
format.html # show.html.erb
|
||||
format.xml { render :xml => @news_bulletin }
|
||||
end
|
||||
end
|
||||
|
||||
# GET /news_bulletins/new
|
||||
# GET /news_bulletins/new.xml
|
||||
def new
|
||||
@news_bulletin = NewsBulletin.new
|
||||
|
||||
@link_url = panel_news_back_end_news_bulletins_path
|
||||
|
||||
# @news_bulletin.news_bulletin_files.build
|
||||
# @news_bulletin.news_bulletin_files.new
|
||||
|
||||
get_categorys
|
||||
get_tags
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
format.xml { render :xml => @news_bulletin }
|
||||
end
|
||||
end
|
||||
|
||||
# GET /news_bulletins/1/edit
|
||||
def edit
|
||||
@news_bulletin = NewsBulletin.find(params[:id])
|
||||
if !current_user.admin? && (@news_bulletin.is_rejected? || @news_bulletin.is_checked?)
|
||||
redirect_to :action => :index
|
||||
else
|
||||
# @summary_variable = @news_bulletin.summary_variable
|
||||
|
||||
@link_url = panel_news_back_end_news_bulletin_path(@news_bulletin)
|
||||
|
||||
get_categorys
|
||||
get_tags
|
||||
end
|
||||
end
|
||||
|
||||
# POST /news_bulletins
|
||||
# POST /news_bulletins.xml
|
||||
def create
|
||||
|
||||
if params[:news_bulletin_link]
|
||||
|
||||
@news_bulletin_link = NewsBulletinLink.new(params[:news_bulletin_link])
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_link.save
|
||||
format.js { render 'create_news_bulletin_link' }
|
||||
end
|
||||
end
|
||||
|
||||
elsif params[:news_bulletin_file]
|
||||
|
||||
@news_bulletin_file = NewsBulletinFile.new(params[:news_bulletin_file])
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_file.save
|
||||
format.js { render 'create_news_bulletin_file' }
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
@news_bulletin = NewsBulletin.new(params[:news_bulletin])
|
||||
|
||||
@news_bulletin.create_user_id = current_user.id
|
||||
@news_bulletin.update_user_id = current_user.id
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin.save
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletin_url(@news_bulletin), :notice => t('news.create_news_bulletin_success')) }
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news.create_news_bulletin_success')) }
|
||||
format.xml { render :xml => @news_bulletin, :status => :created, :location => @news_bulletin }
|
||||
format.js
|
||||
else
|
||||
format.html { render :action => "new" }
|
||||
format.xml { render :xml => @news_bulletin.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def link_quick_add
|
||||
# debugger
|
||||
|
||||
@news_bulletin_link = NewsBulletinLink.new
|
||||
@link_url = panel_news_back_end_news_bulletins_path
|
||||
|
||||
@news_bulletin_link.news_bulletin_id = params[:news_bulletin_id]
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def link_quick_edit
|
||||
# debugger
|
||||
@news_bulletin_link = NewsBulletinLink.find(params[:news_bulletin_id])
|
||||
|
||||
@link_url = panel_news_back_end_news_bulletin_path(@news_bulletin_link)
|
||||
|
||||
# @news_bulletin = NewsBulletin.find(params[:news_bulletin_id])
|
||||
|
||||
# @link_url = panel_news_back_end_news_bulletin_path(@news_bulletin)
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def file_quick_add
|
||||
# debugger
|
||||
|
||||
@news_bulletin_file = NewsBulletinFile.new
|
||||
@file_url = panel_news_back_end_news_bulletins_path
|
||||
|
||||
@news_bulletin_file.news_bulletin_id = params[:news_bulletin_id]
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def file_quick_edit
|
||||
# debugger
|
||||
@news_bulletin_file = NewsBulletinFile.find(params[:news_bulletin_id])
|
||||
|
||||
@file_url = panel_news_back_end_news_bulletin_path(@news_bulletin_file)
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# PUT /news_bulletins/1
|
||||
# PUT /news_bulletins/1.xml
|
||||
def update
|
||||
|
||||
if params[:news_bulletin_link]
|
||||
|
||||
@news_bulletin_link = NewsBulletinLink.find(params[:id])
|
||||
|
||||
@link_url = panel_news_back_end_news_bulletin_path(@news_bulletin_link)
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_link.update_attributes(params[:news_bulletin_link])
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
format.js { render 'update_news_bulletin_link' }
|
||||
end
|
||||
end
|
||||
|
||||
elsif params[:news_bulletin_file]
|
||||
|
||||
@news_bulletin_file = NewsBulletinFile.find(params[:id])
|
||||
|
||||
@file_url = panel_news_back_end_news_bulletin_path(@news_bulletin_file)
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin_file.update_attributes(params[:news_bulletin_file])
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
format.js { render 'update_news_bulletin_file' }
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
@news_bulletin = NewsBulletin.find(params[:id])
|
||||
|
||||
@news_bulletin.update_user_id = current_user.id
|
||||
|
||||
# @news_bulletin.image.clear if params[:news_bulletin][:image_del] == '1'
|
||||
# if params[:news_bulletin][:image_del] == '1'
|
||||
# @news_bulletin.remove_image!
|
||||
# @news_bulletin.image_del = nil
|
||||
# params[:news_bulletin][:image_del] = nil
|
||||
# end
|
||||
|
||||
respond_to do |format|
|
||||
if @news_bulletin.update_attributes(params[:news_bulletin])
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletin_url(@news_bulletin), :notice => t('news_bulletin.update_news_bulletin_success')) }
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url, :notice => t('news_bulletin.update_news_bulletin_success')) }
|
||||
format.js { render 'toggle_enable' }
|
||||
format.xml { head :ok }
|
||||
else
|
||||
get_tags
|
||||
get_categorys
|
||||
format.html { render :action => "edit" }
|
||||
format.xml { render :xml => @news_bulletin.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# DELETE /news_bulletins/1
|
||||
# DELETE /news_bulletins/1.xml
|
||||
def destroy
|
||||
@news_bulletin = NewsBulletin.find(params[:id])
|
||||
# @news_bulletin.news_bulletin_files.destroy
|
||||
@news_bulletin.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
# format.xml { head :ok }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# def top_edit
|
||||
|
||||
# NewsBulletin.where(id: params[:id]).update_all( is_top: true )
|
||||
# respond_to do |format|
|
||||
# format.html { redirect_to(panel_news_back_end_news_bulletins_url) }
|
||||
# format.xml { head :ok }
|
||||
# end
|
||||
|
||||
# end
|
||||
|
||||
|
||||
def load_quick_edit
|
||||
@news_bulletin = NewsBulletin.find(params[:id])
|
||||
@type = params[:type]
|
||||
@news_bulletin_categories = NewsBulletinCategory.all
|
||||
get_tags
|
||||
end
|
||||
|
||||
def delete
|
||||
if params[:to_delete]
|
||||
news_bulletins = NewsBulletin.any_in(:_id => params[:to_delete]).delete_all
|
||||
end
|
||||
redirect_to panel_news_back_end_news_bulletins_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options])
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
|
||||
def get_categorys(id = nil)
|
||||
@news_bulletin_categorys = []
|
||||
if(is_manager? || is_admin?)
|
||||
@news_bulletin_categorys = (id ? NewsBulletinCategory.find(id).to_a : NewsBulletinCategory.excludes('disabled' => true))
|
||||
elsif is_sub_manager?
|
||||
@news_bulletin_categorys = NewsBulletinCategory.authed_for_user(current_user,'submit_new')
|
||||
end
|
||||
end
|
||||
|
||||
def get_tags
|
||||
module_app = ModuleApp.first(:conditions => {:key => 'news'})
|
||||
@tags = Tag.all(:conditions => {:module_app_id => module_app.id}).order_by(I18n.locale, :asc)
|
||||
end
|
||||
|
||||
def get_sorted_and_filtered_news_bulletins
|
||||
news_bulletins = NewsBulletin.all
|
||||
case params[:sort]
|
||||
when 'postdate', 'deadline'
|
||||
news_bulletins = news_bulletins.order_by([params[:sort], params[:direction]])
|
||||
when 'category'
|
||||
category_ids = news_bulletins.distinct(:news_bulletin_category_id)
|
||||
categories = NewsBulletinCategory.find(category_ids) rescue nil
|
||||
if categories
|
||||
h = Hash.new
|
||||
categories.each { |category| h[category.i18n_variable[I18n.locale]] = category.id }
|
||||
sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse!
|
||||
sorted_categorys = sorted.collect {|a| news_bulletins.where(:news_bulletin_category_id => a[1]).entries }
|
||||
news_bulletins = sorted_categorys.flatten!
|
||||
end
|
||||
when 'title'
|
||||
h = Array.new
|
||||
news_bulletins.each { |news_bulletin| h << [news_bulletin.title[I18n.locale].downcase, news_bulletin] }
|
||||
sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse!
|
||||
news_bulletins = sorted.collect {|a| a[1] }
|
||||
when 'status'
|
||||
news_bulletins = news_bulletins.order_by(:is_top, params[:direction]).order_by(:is_hot, params[:direction]).order_by(:is_hidden, params[:direction]).order_by(:is_pending, params[:direction]).order_by(:is_checked, params[:direction]).order_by(:is_rejected, params[:direction])
|
||||
when 'update_user_id'
|
||||
user_ids = news_bulletins.distinct(:update_user_id)
|
||||
users = User.find(user_ids) rescue nil
|
||||
if users
|
||||
h = Array.new
|
||||
users.each { |user| h << [user.name, user.id] }
|
||||
sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse!
|
||||
sorted_users = sorted.collect {|a| news_bulletins.where(:update_user_id => a[1]).entries }
|
||||
news_bulletins = sorted_users.flatten
|
||||
end
|
||||
when 'tags'
|
||||
a = Array.new
|
||||
NewsTag.all.order_by(I18n.locale, params[:direction]).each { |tag| a << tag.news_bulletins }
|
||||
a.flatten!
|
||||
a.uniq!
|
||||
tmp = Array.new
|
||||
news_bulletins.where(:tag_ids => []).each { |news_bulletin| tmp << [news_bulletin.title[I18n.locale].downcase, news_bulletin] }
|
||||
sorted = params[:direction].eql?('asc') ? tmp.sort : tmp.sort.reverse!
|
||||
sorted_titles = sorted.collect {|a| a[1] }
|
||||
a = params[:direction].eql?('asc') ? (sorted_titles + a) : (a + sorted_titles)
|
||||
news_bulletins = a.flatten
|
||||
end
|
||||
if @filter
|
||||
@filter.each do |key, value|
|
||||
case key
|
||||
when 'status'
|
||||
a = Array.new
|
||||
news_bulletins.each do |news_bulletin|
|
||||
value.each do |v|
|
||||
case v
|
||||
when 'pending'
|
||||
a << news_bulletin if news_bulletin.is_checked.nil?
|
||||
when 'rejected'
|
||||
a << news_bulletin if news_bulletin.is_checked.eql?(false)
|
||||
else
|
||||
a << news_bulletin if news_bulletin[v]
|
||||
end
|
||||
end
|
||||
end
|
||||
news_bulletins = a.uniq
|
||||
when 'categories'
|
||||
a = Array.new
|
||||
news_bulletins.each do |news_bulletin|
|
||||
a << news_bulletin if value.include?(news_bulletin.news_bulletin_category.id.to_s)
|
||||
end
|
||||
news_bulletins = a.uniq
|
||||
when 'tags'
|
||||
a = Array.new
|
||||
news_bulletins.each do |news_bulletin|
|
||||
news_bulletin.tags.each do |tag|
|
||||
a << news_bulletin if value.include?(tag.id.to_s)
|
||||
end
|
||||
end
|
||||
news_bulletins = a.uniq
|
||||
end if value.size > 0
|
||||
end
|
||||
end
|
||||
Kaminari.paginate_array(news_bulletins).page(params[:page]).per(10)
|
||||
end
|
||||
|
||||
end
|
8
vendor/built_in_modules/news/app/controllers/panel/news/back_end/tags_controller.rb
vendored
Normal file
8
vendor/built_in_modules/news/app/controllers/panel/news/back_end/tags_controller.rb
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
class Panel::News::BackEnd::TagsController < Admin::TagsController
|
||||
|
||||
def initialize
|
||||
super
|
||||
@app_title = 'news'
|
||||
end
|
||||
|
||||
end
|
38
vendor/built_in_modules/news/app/controllers/panel/news/front_end/news_bulletins_controller.rb
vendored
Normal file
38
vendor/built_in_modules/news/app/controllers/panel/news/front_end/news_bulletins_controller.rb
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
class Panel::News::FrontEnd::NewsBulletinsController < OrbitWidgetController
|
||||
|
||||
def initialize
|
||||
super
|
||||
@app_title = 'news'
|
||||
end
|
||||
|
||||
# GET /news_bulletins
|
||||
# GET /news_bulletins.xml
|
||||
|
||||
def index
|
||||
date_now = Time.now
|
||||
if !params[:category_id].blank?
|
||||
@news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
|
||||
elsif !params[:tag_id].blank?
|
||||
@news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
|
||||
else
|
||||
@news_bulletins = NewsBulletin.can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(10)
|
||||
end
|
||||
|
||||
get_categorys
|
||||
|
||||
@current_category = NewsBulletinCategory.from_id(params[:category_id]) rescue nil
|
||||
end
|
||||
|
||||
def show
|
||||
@news_bulletin = NewsBulletin.can_display.where(_id: params[:id]).first
|
||||
get_categorys
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
|
||||
def get_categorys
|
||||
@news_bulletin_categorys = NewsBulletinCategory.excludes('disabled' => true)
|
||||
end
|
||||
|
||||
end
|
58
vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb
vendored
Normal file
58
vendor/built_in_modules/news/app/controllers/panel/news/widget/news_bulletins_controller.rb
vendored
Normal file
|
@ -0,0 +1,58 @@
|
|||
class Panel::News::Widget::NewsBulletinsController < OrbitWidgetController
|
||||
|
||||
def initialize
|
||||
super
|
||||
@app_title = 'news'
|
||||
end
|
||||
|
||||
# GET /news_bulletins
|
||||
# GET /news_bulletins.xml
|
||||
|
||||
def index
|
||||
|
||||
# deadline
|
||||
# @news_bulletin_categorys = NewsBulletinCategory.first;
|
||||
# @news_bulletins = NewsBulletin.widget_datas(@news_bulletin_categorys.id).limit(9)
|
||||
if !params[:category_id].blank?
|
||||
@news_bulletins = NewsBulletin.can_display.where(:news_bulletin_category_id => params[:category_id]).widget_datas.limit(9)
|
||||
elsif !params[:tag_id].blank?
|
||||
@news_bulletins = NewsTag.find(params[:tag_id]).news_bulletins.can_display.widget_datas.limit(9) rescue nil
|
||||
else
|
||||
@news_bulletins = NewsBulletin.can_display.widget_datas.limit(9)
|
||||
end
|
||||
|
||||
get_categorys
|
||||
|
||||
end
|
||||
|
||||
def news_bulletins_and_web_links
|
||||
@tags = NewsTag.all
|
||||
@selected_tag = NewsTag.find(params[:id]) rescue @tags[0]
|
||||
@news_bulletins = @selected_tag.get_visible_news_bulletins.can_display.page(params[:page]).per(5) rescue nil
|
||||
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
|
||||
render :layout => 'module_widget'
|
||||
end
|
||||
|
||||
def reload_news_bulletins
|
||||
@selected_tag = NewsTag.find(params[:tag_id])
|
||||
@news_bulletins = @selected_tag.get_visible_news_bulletins.can_display.page(params[:page]).per(5) rescue nil
|
||||
end
|
||||
|
||||
def reload_web_links
|
||||
@selected_tag = NewsTag.find(params[:tag_id])
|
||||
@web_links = WebResourceTag.first(:conditions => {:en => @selected_tag[:en]}).get_visible_links.page(params[:page]).per(5) rescue nil
|
||||
end
|
||||
|
||||
def news_bulletins_side_bar
|
||||
@tags = NewsTag.all
|
||||
get_categorys
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
|
||||
def get_categorys
|
||||
@news_bulletin_categorys = NewsBulletinCategory.excludes('disabled' => true)
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,182 @@
|
|||
# encoding: utf-8
|
||||
|
||||
class NewsBulletin
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
|
||||
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :subtitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :text, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_and_belongs_to_many :tags, :class_name => "NewsTag"
|
||||
|
||||
field :postdate , :type => Date
|
||||
field :deadline , :type => Date
|
||||
# field :url
|
||||
field :create_user_id
|
||||
field :update_user_id, :class_name => "User"
|
||||
|
||||
field :is_top, :type => Boolean, :default => false
|
||||
field :is_hot, :type => Boolean, :default => false
|
||||
field :is_hidden, :type => Boolean, :default => false
|
||||
field :is_checked, :type => Boolean, :default => false
|
||||
field :is_pending, :type => Boolean, :default => true
|
||||
field :is_rejected, :type => Boolean, :default => false
|
||||
|
||||
|
||||
field :not_checked_reason
|
||||
|
||||
field :public, :type => Boolean, :default => true
|
||||
|
||||
scope :can_display,where(is_checked: true)
|
||||
|
||||
mount_uploader :image, ImageUploader
|
||||
|
||||
belongs_to :news_bulletin_category
|
||||
|
||||
# embeds_many :news_bulletin_links, :cascade_callbacks => true
|
||||
# embeds_many :news_bulletin_files, :cascade_callbacks => true
|
||||
|
||||
has_many :news_bulletin_links, :autosave => true, :dependent => :destroy
|
||||
has_many :news_bulletin_files, :autosave => true, :dependent => :destroy
|
||||
|
||||
accepts_nested_attributes_for :news_bulletin_files, :allow_destroy => true
|
||||
accepts_nested_attributes_for :news_bulletin_links, :allow_destroy => true
|
||||
|
||||
validates_presence_of :title
|
||||
|
||||
before_save :set_key, :update_status
|
||||
|
||||
after_save :save_news_bulletin_links
|
||||
after_save :save_news_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, news_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 => {news_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( category_id = nil )
|
||||
|
||||
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"})
|
||||
|
||||
if category_id.to_s.size > 0
|
||||
find(:all, :conditions => {news_bulletin_category_id: category_id}).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate)
|
||||
else
|
||||
any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def is_expired?
|
||||
Date.today > self.deadline ? true : false rescue false
|
||||
#some dates might sat as nil so rescue false
|
||||
end
|
||||
|
||||
def is_top?
|
||||
self.is_top
|
||||
end
|
||||
|
||||
def is_hot?
|
||||
self.is_hot
|
||||
end
|
||||
|
||||
def is_hidden?
|
||||
self.is_hidden
|
||||
end
|
||||
|
||||
def is_checked?
|
||||
self.is_checked
|
||||
end
|
||||
|
||||
def is_pending?
|
||||
self.is_pending
|
||||
end
|
||||
|
||||
def is_rejected?
|
||||
self.is_rejected
|
||||
end
|
||||
|
||||
|
||||
def save_news_bulletin_links
|
||||
self.news_bulletin_links.each do |t|
|
||||
if t.should_destroy
|
||||
t.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def save_news_bulletin_files
|
||||
self.news_bulletin_files.each do |t|
|
||||
if t.should_destroy
|
||||
t.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def title
|
||||
@title ||= I18nVariable.first(:conditions => {:key => 'title', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
|
||||
end
|
||||
|
||||
def subtitle
|
||||
@subtitle ||= I18nVariable.first(:conditions => {:key => 'subtitle', :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
|
||||
|
||||
def self.filter(news_bulletins)
|
||||
news_bulletins.each do |news_bulletin|
|
||||
p "#{news_bulletin.id}/#{news_bulletin.is_top}/#{news_bulletin.is_hot}/#{news_bulletin.is_hidden}"
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
def sorted_tags
|
||||
tags.order_by(I18n.locale, :asc)
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def set_key
|
||||
if title.new_record?
|
||||
title.key = 'title'
|
||||
end
|
||||
if subtitle.new_record?
|
||||
subtitle.key = 'subtitle'
|
||||
end
|
||||
if text.new_record?
|
||||
text.key = 'text'
|
||||
end
|
||||
end
|
||||
|
||||
def update_status
|
||||
if !self.is_pending && !self.is_checked
|
||||
self.is_pending = false
|
||||
self.is_rejected = true
|
||||
self.is_checked = false
|
||||
elsif self.is_checked
|
||||
self.is_pending = false
|
||||
self.is_rejected = false
|
||||
self.is_checked = true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
|
@ -0,0 +1,25 @@
|
|||
# encoding: utf-8
|
||||
|
||||
class NewsBulletinCategory
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include OrbitCoreLib::ObjectAuthable
|
||||
|
||||
ObjectAuthTitlesOptions = %W{submit_new fact_check}
|
||||
AfterObjectAuthUrl = '/panel/news/back_end/news_bulletin_categorys'
|
||||
# include Mongoid::MultiParameterAttributes
|
||||
|
||||
PAYMENT_TYPES = [ "List", "Picture" ]
|
||||
|
||||
field :key
|
||||
field :display
|
||||
|
||||
has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
|
||||
has_many :news_bulletins
|
||||
|
||||
def self.from_id(id)
|
||||
NewsBulletinCategory.find(id) rescue nil
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,40 @@
|
|||
class NewsBulletinFile
|
||||
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
mount_uploader :file, AssetUploader
|
||||
|
||||
# field :filetitle
|
||||
# field :description
|
||||
has_one :filetitle, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
has_one :description, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
|
||||
# field :to_save, :type => Boolean
|
||||
field :should_destroy, :type => Boolean
|
||||
|
||||
belongs_to :news_bulletin
|
||||
# embedded_in :news_bulletin
|
||||
|
||||
before_save :set_key
|
||||
|
||||
def filetitle
|
||||
@filetitle ||= I18nVariable.first(:conditions => {:key => 'filetitle', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
|
||||
end
|
||||
|
||||
def description
|
||||
@description ||= I18nVariable.first(:conditions => {:key => 'description', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def set_key
|
||||
if filetitle.new_record?
|
||||
filetitle.key = 'filetitle'
|
||||
end
|
||||
if description.new_record?
|
||||
description.key = 'description'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,15 @@
|
|||
class NewsBulletinLink
|
||||
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :url
|
||||
# field :name
|
||||
|
||||
has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy
|
||||
|
||||
field :should_destroy, :type => Boolean
|
||||
|
||||
# embedded_in :news_bulletin
|
||||
belongs_to :news_bulletin
|
||||
end
|
|
@ -0,0 +1,11 @@
|
|||
class NewsTag < Tag
|
||||
|
||||
has_and_belongs_to_many :news_bulletins
|
||||
|
||||
|
||||
def get_visible_news_bulletins(sort = :name)
|
||||
date_now = Time.now
|
||||
self.news_bulletins.where(:is_hidden => false).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc(:is_top, sort)
|
||||
end
|
||||
|
||||
end
|
|
@ -11,14 +11,14 @@
|
|||
<%= javascript_include_tag "inc/search" %>
|
||||
>>>>>>> 291d5e3a03ba7da62ceb5e3b18012f0c9198dfba
|
||||
<% end %>
|
||||
<%#= label_tag :fact_check_setting, t("announcement.bulletin.fact_check_setting") %>
|
||||
<%#= label_tag :fact_check_setting, t("news.news_bulletin.fact_check_setting") %>
|
||||
<%= form_tag('', :remote => true) %>
|
||||
<div class="subnav">
|
||||
<ul class="nav nav-pills filter">
|
||||
<li class="accordion-group">
|
||||
<div class="form-search" style="margin: 5px 10px;">
|
||||
<%= label_tag :category, t("announcement.bulletin.category") %>
|
||||
<%= select_tag "category_id", options_from_collection_for_select(@bulletin_categorys, "id", "key") %>
|
||||
<%= label_tag :category, t("news.news_bulletin.category") %>
|
||||
<%= select_tag "category_id", options_from_collection_for_select(@news_bulletin_categorys, "id", "key") %>
|
||||
<%= search_field_tag 'user_filter' %>
|
||||
</div>
|
||||
</li>
|
|
@ -0,0 +1,15 @@
|
|||
<h1><%= news_bulletin_category.key %></h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th><%= t('news_bulletin.status') %></th>
|
||||
<th><%= t('news_bulletin.category') %></th>
|
||||
<th><%= t('news_bulletin.title') %></th>
|
||||
<th><%= t('news_bulletin.postdate') %></th>
|
||||
<th><%= t('news_bulletin.deadline') %></th>
|
||||
<th><%= t('news_bulletin.action') %></th>
|
||||
</tr>
|
||||
|
||||
<% news_bulletin_category.news_bulletins.each do |post| %>
|
||||
<%= render :partial => 'panel/news/back_end/news_bulletins/news_bulletins', :locals => {:post => post,:approval_allow=>true} %>
|
||||
<% end %>
|
||||
</table>
|
|
@ -0,0 +1,26 @@
|
|||
<%= content_tag :div ,:id => "users_checkbox_ary",:class => 'clear' do -%>
|
||||
<% sys_users = User.all -%>
|
||||
<% sys_users.each do |user| -%>
|
||||
|
||||
<div class="checkblock">
|
||||
|
||||
<% user.sub_roles.each do |sr| %>
|
||||
<div class="for_unit" style="display:none;"> <%= sr.key %></div>
|
||||
<% end %>
|
||||
<%= content_tag :div,:data=>{'original-title'=>t('news.news_bulletin.approval_setting_window_title'),:content => "#{user.sub_roles.collect{|sr| sr.key}.join(',')}"},:class=>"checkbox clear" do %>
|
||||
<div class="check-icon">
|
||||
</div>
|
||||
<div class='member-avatar'>
|
||||
<% if user.avatar? %>
|
||||
<%= image_tag(user.avatar.thumb.url,:class => "member-img") %>
|
||||
<% else %>
|
||||
<%= image_tag "person.png",:class => "member-img" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= label_tag "lab-user-#{user.id}", (user.name rescue ''),:class=>"member-name",:id=>nil -%>
|
||||
<%= check_box_tag "[users][#{user.id}]", 'true',users.include?(user),:class => "check" -%>
|
||||
<%end -%>
|
||||
</div>
|
||||
|
||||
<% end -%>
|
||||
<% end -%>
|
50
vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/index.html.erb.can_del
vendored
Normal file
50
vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/index.html.erb.can_del
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
<%= render 'panel/news/back_end/news_bulletins/filter' %>
|
||||
<table id="bulettin_sort_list" class="table main-list">
|
||||
<%= render 'panel/news/back_end/news_bulletins/news_bulletins' %>
|
||||
</table>
|
||||
<div class="form-actions">
|
||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_panel_news_back_end_news_bulletin_path, :class => 'btn btn-primary' %>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<% content_for :secondary do %>
|
||||
<%#= render :partial => '/panel/news/back_end/news_secondary' %>
|
||||
<% end -%>
|
||||
|
||||
<%= flash_messages %>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<fieldset><legend><%= t('news_bulletin.search') %></legend>
|
||||
|
||||
<%= form_for :news_bulletin, :action => 'search', :method => 'get', :url => panel_news_back_end_news_bulletins_path do |f| %>
|
||||
|
||||
<%#= f.select :news_bulletin_category_id, @news_bulletin_categorys.collect {|t| [ t.i18n_variable[I18n.locale], t.id ] },{ :include_blank => t('news_bulletin.select') }%>
|
||||
|
||||
Category <%#= select_tag "category_id", options_for_select(@news_bulletin_categorys.collect{|t| [t.i18n_variable[I18n.locale], t.id]}), :prompt => t('news_bulletin.select') %>
|
||||
|
||||
KeyWord <%#= text_field_tag :search, params[:search], :id => 'search_field' %>
|
||||
|
||||
<%= submit_tag "Search", :name => nil %>
|
||||
|
||||
<% end %>
|
||||
|
||||
|
||||
</fieldset>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<h1><%= t('news_bulletin.list_news') %></h1>
|
||||
|
||||
<div id="check_block">
|
||||
<h1>Check Please</h1>
|
||||
<%#= render :partial => "list_table", :collection => @news_bulletin_categorys_check,:as => :news_bulletin_category%>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
-->
|
40
vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.html.erb
vendored
Normal file
40
vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.html.erb
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
<% content_for :page_specific_css do %>
|
||||
<%= stylesheet_link_tag "inc/permission-checkbox" %>
|
||||
<% end %>
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "inc/permission-checkbox" %>
|
||||
<%= javascript_include_tag "inc/search" %>
|
||||
<% end %>
|
||||
<%#= label_tag :fact_check_setting, t("news.news_bulletin.fact_check_setting") %>
|
||||
<%= form_tag('', :remote => true) %>
|
||||
<div class="subnav">
|
||||
<ul class="nav nav-pills filter">
|
||||
<li class="accordion-group">
|
||||
<div class="form-search" style="margin: 5px 10px;">
|
||||
<%= label_tag :category, t("news.news_bulletin.category") %>
|
||||
<%= select_tag "category_id", options_from_collection_for_select(@news_bulletin_categorys, "id", "key") %>
|
||||
<%= search_field_tag 'user_filter' %>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<%#= label_tag :role, t("admin.roles") %>
|
||||
<div class="clear">
|
||||
<%= content_tag :div do -%>
|
||||
<% form_tag :action => "update_setting" do %>
|
||||
<%= render :partial => "privilege_user", :locals => {:users => @users_array} %>
|
||||
<div class="form-actions pagination-centered">
|
||||
<%= submit_tag "Update", :class => 'btn' %>
|
||||
</div>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
var availableTags = [];
|
||||
$(function() {
|
||||
|
||||
$('#category_id').change(function() {
|
||||
$(this).parents('form').submit();
|
||||
});
|
||||
</script>
|
1
vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.js.erb
vendored
Normal file
1
vendor/built_in_modules/news/app/views/panel/news/back_end/news_approvals/setting.js.erb
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
$("#users_checkbox_ary").replaceWith('<%= (render :partial => 'privilege_user', :locals => {:users => @users_array}).html_safe%>');
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue