archive and web_resouce for new ui
Conflicts: app/assets/stylesheets/lib/main-forms.css
This commit is contained in:
parent
1ba1703e90
commit
5d3bc07488
|
@ -0,0 +1,511 @@
|
|||
//Global Variables
|
||||
$sidebarState = window.localStorage.getItem('sidebarState');
|
||||
$ua = navigator.userAgent;
|
||||
$.extend($.support, {
|
||||
touch: "ontouchend" in document
|
||||
});
|
||||
if($.support.touch) {
|
||||
mouseenterEvent = clickEvent = "touchstart";
|
||||
} else {
|
||||
clickEvent = "click";
|
||||
mouseenterEvent = "mouseenter";
|
||||
};
|
||||
|
||||
|
||||
!function ($) {
|
||||
// Focus first element
|
||||
$.fn.focusFirstField = function(){
|
||||
$this = this;
|
||||
$this.find(":text:visible:enabled").filter(function(){
|
||||
return $(this).parents(":hidden").size() == 0;
|
||||
}).slice(0,1).focus();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
//Checked Toggle
|
||||
$.fn.togglebox = function () {
|
||||
var $checked = this;
|
||||
$checked.each(function() {
|
||||
if(!$(this).closest('div').hasClass('togglebox')) {
|
||||
$(this).wrap('<div class="togglebox" />');
|
||||
$('<label><b></b></label>').insertAfter($(this));
|
||||
}
|
||||
})
|
||||
$checked.each(function(i) {
|
||||
if($(this).attr('type') == "checkbox") {
|
||||
if($(this).prop('checked')) {
|
||||
$(this).parent('.togglebox').addClass('disabled').closest('li').addClass('disabled');
|
||||
};
|
||||
$(this).on({
|
||||
change: function() {
|
||||
$(this).parent('.togglebox').toggleClass('disabled');
|
||||
$(this).closest('tr').toggleClass('disable');
|
||||
}
|
||||
});
|
||||
};
|
||||
if($(this).attr('type') == "radio") {
|
||||
if(!$(this).prop('checked')) {
|
||||
$(this).parent('.togglebox').addClass('disabled').closest('li').addClass('disabled');
|
||||
$(this).closest('tr').addClass('disable');
|
||||
};
|
||||
$(this).on({
|
||||
change: function() {
|
||||
$checked.each(function(i) {
|
||||
if(!$(this).parent('.togglebox').hasClass('disabled')) {
|
||||
$(this).parent('.togglebox').toggleClass('disabled');
|
||||
$(this).closest('tr').toggleClass('disable');
|
||||
};
|
||||
});
|
||||
$(this).parent('.togglebox').toggleClass('disabled')
|
||||
$(this).closest('tr').toggleClass('disable');
|
||||
}
|
||||
});
|
||||
};
|
||||
if($('#sitemap').length) {
|
||||
$(this).on({
|
||||
change: function() {
|
||||
$(this).closest('li').toggleClass('disabled');
|
||||
if($(this).prop('checked')) {
|
||||
$(this).attr('checked', 'checked');
|
||||
$(this).parents('h6')
|
||||
.siblings('ul')
|
||||
.find('li')
|
||||
.addClass('disabled')
|
||||
.find('h6 .togglebox')
|
||||
.addClass('disabled')
|
||||
.find('input[type="checkbox"]')
|
||||
.prop('checked', true)
|
||||
.attr('checked', 'checked');
|
||||
} else {
|
||||
$(this).removeAttr('checked');
|
||||
$(this).parents('h6')
|
||||
.siblings('ul')
|
||||
.find('li')
|
||||
.removeClass('disabled')
|
||||
.find('h6 .togglebox')
|
||||
.removeClass('disabled')
|
||||
.find('input[type="checkbox"]')
|
||||
.prop('checked', false)
|
||||
.removeAttr('checked');
|
||||
};
|
||||
$('.toggle-check').each(function(i) {
|
||||
var len = $(this).closest('ul').children('li').length,
|
||||
checLen = $(this).closest('ul').children('li').find('input[checked]').length,
|
||||
checLen = checLen - $(this).closest('ul').children('li').find('ul').find('input[checked]').length;
|
||||
if(len == checLen) {
|
||||
$(this).closest('ul')
|
||||
.parent('li')
|
||||
.addClass('disabled')
|
||||
.children('h6')
|
||||
.find('.togglebox')
|
||||
.addClass('disabled')
|
||||
.find('input[type="checkbox"]')
|
||||
.prop('checked', true)
|
||||
.attr('checked', 'checked');
|
||||
} else {
|
||||
$(this).closest('ul')
|
||||
.parent('li')
|
||||
.removeClass('disabled')
|
||||
.children('h6')
|
||||
.find('.togglebox')
|
||||
.removeClass('disabled')
|
||||
.find('input[type="checkbox"]')
|
||||
.prop('checked', false)
|
||||
.removeAttr('checked');
|
||||
};
|
||||
});
|
||||
},
|
||||
});
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// Search Clear
|
||||
$.fn.searchClear = function (param){
|
||||
_defaultSettings = {
|
||||
inputName: ':input',
|
||||
inputIcon: 'inputIcon',
|
||||
clearBtnIcon: 'clearBtnIcon',
|
||||
liveFilter: false,
|
||||
};
|
||||
_set = $.extend(_defaultSettings, param);
|
||||
$this = this;
|
||||
$input = this.find(_set.inputName);
|
||||
$tmp = '<i class="'+_set.inputIcon+'"></i><i class="'+_set.clearBtnIcon+' search-clear"></i>';
|
||||
$input.wrap('<div class="sc-field" />');
|
||||
$this.find('.sc-field').prepend($tmp);
|
||||
$searchClear = $this.find(".search-clear");
|
||||
function run(e) {
|
||||
$searchClear.hide();
|
||||
$($input).each(function() {
|
||||
if($(this).val().length > 0) {
|
||||
$(this).prev($searchClear).show();
|
||||
}else {
|
||||
$(this).prev($searchClear).hide();
|
||||
}
|
||||
$(this).on("blur keyup", function(){
|
||||
if($(this).val().length > 0) {
|
||||
$(this).prev($searchClear).show();
|
||||
}else {
|
||||
$(this).prev($searchClear).hide();
|
||||
}
|
||||
});
|
||||
if(_set.liveFilter) {
|
||||
$(this).prevAll($searchClear).on({
|
||||
click: function(){
|
||||
$(this).hide();
|
||||
$(this).next($input).val("");
|
||||
$('.checkbox-card .mark').removeClass('mark')
|
||||
},
|
||||
});
|
||||
} else {
|
||||
$(this).prevAll($searchClear).on({
|
||||
click: function(){
|
||||
$(this).hide();
|
||||
$(this).next($input).val("");
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Checking IE10
|
||||
// if Windows 8 and IE is ture. remove search clear buttom and fix text input padding-right
|
||||
if(/Windows NT 6.2/g.test(navigator.userAgent)){
|
||||
if(/MSIE/g.test(navigator.userAgent)){
|
||||
$searchClear.remove();
|
||||
$input.css({
|
||||
'padding-right': '5px',
|
||||
});
|
||||
}else{run()}
|
||||
}else{run()}
|
||||
}
|
||||
|
||||
|
||||
// Fixed Nav
|
||||
fixedNav = function () {
|
||||
if($('.fixed-nav').length){
|
||||
var $fixedNav = $('.fixed-nav');
|
||||
if($sidebarState){
|
||||
$fixedNav.addClass('open');
|
||||
}
|
||||
$fixedNav.on(clickEvent, function() {
|
||||
if($sidebarState) {
|
||||
window.localStorage.removeItem('sidebarState');
|
||||
$fixedNav.removeClass('open');
|
||||
}else{
|
||||
window.localStorage.setItem('sidebarState', 1);
|
||||
$fixedNav.addClass('open');
|
||||
}
|
||||
$sidebarState = window.localStorage.getItem('sidebarState')
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Sidebar
|
||||
sidebarNav = function () {
|
||||
var $sidebar = $('#sidebar'),
|
||||
$sidebarMenu = $('#sidebar-menu'),
|
||||
$scroller = $('.scroller'),
|
||||
$sidebarNav = $('.sidebar-nav'),
|
||||
$el = $('.sidebar-nav').children('li'),
|
||||
$elIndex = null,
|
||||
$blockList = $('.sub-nav-block-list'),
|
||||
$block = $('.sub-nav-block'),
|
||||
$blockIndex = 0,
|
||||
$arrow = $('.sub-nav-arrow'),
|
||||
$wrap = $('#main-wrap'),
|
||||
$wrapLeft = $wrap.css('margin-left'),
|
||||
$position = 0,
|
||||
$arrowHeightFormat = $('.position').height()-8;
|
||||
if($('#sidebar').length>0) {
|
||||
$wrap.css({'margin-left': 61});
|
||||
$wrapLeft = 61;
|
||||
}
|
||||
if($el.hasClass('active')) {
|
||||
// Menu defaults active
|
||||
$elIndex = $el.filter('.active').index();
|
||||
if($sidebarState && !$sidebarNav.hasClass('no-sub-nav')) {
|
||||
$block.eq($elIndex).addClass('show');
|
||||
$blockList.css({'width': 180});
|
||||
$wrap.css({
|
||||
'margin-left': 241,
|
||||
});
|
||||
}
|
||||
|
||||
// Arrow defaults position
|
||||
$position = $el.eq($elIndex).offset().top-$el.eq($elIndex).height()/2+$arrowHeightFormat-$(document).scrollTop();
|
||||
$arrow.css({
|
||||
'top': $position,
|
||||
});
|
||||
}
|
||||
if($.support.touch && !$sidebarNav.hasClass('no-sub-nav')) {
|
||||
$el.find('a').removeAttr('href');
|
||||
};
|
||||
$el.on(mouseenterEvent, function(e) {
|
||||
$block.siblings().removeClass('show').eq($(this).index()).addClass('show');
|
||||
$arrow.stop(true, false).animate({
|
||||
top: ($(this).offset().top-$(this).height()/2)+$arrowHeightFormat-$(document).scrollTop(),
|
||||
},{
|
||||
duration: 500,
|
||||
easing: 'easeInOutBack',
|
||||
});
|
||||
if(!$sidebarState || !$el.hasClass('active')) {
|
||||
$blockList.css({'width': 180});
|
||||
if($('#pageslide').length) {
|
||||
if($('#pageslide').is(":hidden")) {
|
||||
$wrap.css({
|
||||
'margin-left': $blockList.width()+$sidebarNav.width(),
|
||||
});
|
||||
}
|
||||
}else{
|
||||
$wrap.css({
|
||||
'margin-left': $blockList.width()+$sidebarNav.width(),
|
||||
});
|
||||
}
|
||||
// if($('.topnav').length) {
|
||||
// $('.topnav').css({
|
||||
// 'left': $blockList.width()+$sidebarNav.width()+20,
|
||||
// });
|
||||
// }
|
||||
if($('.bottomnav').length) {
|
||||
$('.bottomnav').css({
|
||||
'left': $blockList.width()+$sidebarNav.width()+20,
|
||||
});
|
||||
}
|
||||
$sidebar.css({
|
||||
'width': $blockList.width()+$sidebarNav.width(),
|
||||
});
|
||||
}
|
||||
});
|
||||
if ($sidebarNav.hasClass('no-sub-nav')) {
|
||||
$sidebar.on('mouseleave', function() {
|
||||
$arrow.stop(true, false).animate({
|
||||
'top': $position,
|
||||
},{
|
||||
duration: 500,
|
||||
easing: 'easeInOutBack',
|
||||
});
|
||||
})
|
||||
};
|
||||
// $el.on('mouseleave', function() {
|
||||
// $el.hasClass('active') ? $position = $el.eq($elIndex).offset().top-$el.eq($elIndex).height()/2+$arrowHeightFormat-$(document).scrollTop() : 0;
|
||||
// $(this).hasClass('active') ? '':$(this).children('span').removeClass('hover');
|
||||
// });
|
||||
$block.on({
|
||||
mouseenter: function() {
|
||||
$blockIndex = $block.filter('.sub-nav-block show').index();
|
||||
$el.eq($blockIndex).hasClass('active') ? '':$el.eq($blockIndex).children('span').addClass('hover');
|
||||
},
|
||||
mouseleave: function() {
|
||||
$block.removeClass('show');
|
||||
if(!$sidebarState || !$el.hasClass('active')) {
|
||||
$blockList.css({'width': 0});
|
||||
if($('#pageslide').length) {
|
||||
if($('#pageslide').is(":hidden")) {
|
||||
$wrap.css({
|
||||
'margin-left': $wrapLeft,
|
||||
});
|
||||
// if($('.topnav').length) {
|
||||
// if($sidebarState) {
|
||||
// $('.topnav').css({
|
||||
// 'left': 261,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
}
|
||||
} else {
|
||||
$wrap.css({
|
||||
'margin-left': $blockList.width()+$sidebarNav.width(),
|
||||
});
|
||||
}
|
||||
// if($('.topnav').length) {
|
||||
// $('.topnav').css({
|
||||
// 'left': $blockList.width()+$sidebarNav.width()+20,
|
||||
// });
|
||||
// }
|
||||
if($('.bottomnav').length) {
|
||||
$('.bottomnav').css({
|
||||
'left': $blockList.width()+$sidebarNav.width()+20,
|
||||
});
|
||||
}
|
||||
$sidebar.css({'width': 61});
|
||||
}else{
|
||||
$block.eq($elIndex).addClass('show');
|
||||
};
|
||||
|
||||
|
||||
if($elIndex === null) {
|
||||
$position = 0;
|
||||
} else {
|
||||
$position = $el.eq($elIndex).offset().top-$el.eq($elIndex).height()/2+$arrowHeightFormat-$(document).scrollTop();
|
||||
}
|
||||
$arrow.stop(true, false).animate({
|
||||
top: $position,
|
||||
},{
|
||||
duration: 500,
|
||||
easing: 'easeInOutBack',
|
||||
});
|
||||
}
|
||||
});
|
||||
// Touch Start
|
||||
$wrap.on({
|
||||
touchstart: function() {
|
||||
if(!$sidebarState || !$el.hasClass('active')) {
|
||||
if($block.hasClass('show')) {
|
||||
$blockIndex = $block.filter('.sub-nav-block show').index();
|
||||
$block.removeClass('show');
|
||||
$blockList.css({'width': 0});
|
||||
$wrap.css({
|
||||
'margin-left': $wrapLeft,
|
||||
});
|
||||
$sidebar.css({'width': 61});
|
||||
$arrow.stop().animate({
|
||||
top: $position,
|
||||
},{
|
||||
duration: 500,
|
||||
easing: 'easeInOutBack',
|
||||
});
|
||||
$el.eq($blockIndex).hasClass('active') ? '':$el.eq($blockIndex).children('span').removeClass('hover');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// Sidebar Nav Drag
|
||||
if(/MSIE 8.0/g.test($ua)){
|
||||
$sidebarMenu.addClass('nano')
|
||||
.css({'position': 'relative', 'top': '0px'})
|
||||
.children('.scroller')
|
||||
.addClass('content')
|
||||
.removeClass('scroller');
|
||||
$sidebarMenu.nanoScroller({ scrollTop: 0 });
|
||||
} else {
|
||||
if($('#sidebar').length) {
|
||||
var sidebarMenu = new iScroll('sidebar-menu', {
|
||||
vScrollbar: true,
|
||||
scrollbarClass: 'myScrollbar',
|
||||
onBeforeScrollStart: function (e) {
|
||||
var target = e.target;
|
||||
clearTimeout(this.hoverTimeout);
|
||||
while (target.nodeName != "SPAN") target = target.parentNode;
|
||||
$target = $(target.parentNode).index();
|
||||
},
|
||||
touch: function () {
|
||||
if (this.hoverTarget) {
|
||||
clearTimeout(this.hoverTimeout);
|
||||
$('.sub-nav-block').removeClass('show')
|
||||
$('.sub-nav-block').eq($target).addClass('show')
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Initial State
|
||||
initialState = function () {
|
||||
if($('.bottomnav').length) {
|
||||
var $bottomnavHeight = $('.bottomnav').outerHeight();
|
||||
$('.wrap-inner').css({
|
||||
'padding-bottom': $bottomnavHeight,
|
||||
})
|
||||
if($sidebarState) {
|
||||
if(!$('.sidebar-nav').hasClass('no-sub-nav')) {
|
||||
$('.bottomnav').css({
|
||||
'left': 261,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
// if($('.topnav').length) {
|
||||
// if($sidebarState) {
|
||||
// $('.topnav').css({
|
||||
// 'left': 261,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
};
|
||||
}(window.jQuery);
|
||||
|
||||
|
||||
// Open Slide
|
||||
function openSlide() {
|
||||
var $openSlide = $('.open-slide'),
|
||||
$pageslideW;
|
||||
|
||||
$(window).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954;
|
||||
$(window).resize(function() {
|
||||
$(this).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954;
|
||||
})
|
||||
$openSlide.each(function() {
|
||||
if($(this).hasClass('view-page')) {
|
||||
$(this).pageslide({ W: $pageslideW, iframe: true});
|
||||
} else if($('#items').length) {
|
||||
$(this).pageslide({ W: 324});
|
||||
} else {
|
||||
$(this).pageslide();
|
||||
};
|
||||
});
|
||||
$('.bottomnav .open-slide').on('click', function() {
|
||||
$('.table tr').removeClass('active');
|
||||
$('.filter-item').removeClass('active')
|
||||
});
|
||||
}
|
||||
|
||||
function formTip() {
|
||||
if($('.main-forms').length && $('.add-on').length) {
|
||||
$('.main-forms .add-on').tooltip();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Document Ready
|
||||
$(function() {
|
||||
initialState();
|
||||
$('#login').on('shown', function () {
|
||||
$(document.body).addClass('modalBlur');
|
||||
$('#login').focusFirstField();
|
||||
}).on("hide", function() {
|
||||
$(document.body).removeClass('modalBlur');
|
||||
});
|
||||
$('#orbit-bar .searchClear').searchClear({
|
||||
inputName: '.search-query',
|
||||
inputIcon: 'icon-search',
|
||||
clearBtnIcon: 'icons-cross-3',
|
||||
|
||||
});
|
||||
$('#filter .searchClear').searchClear({
|
||||
inputName: '.search-query',
|
||||
inputIcon: 'icon-search',
|
||||
clearBtnIcon: 'icons-cross-3',
|
||||
liveFilter: true,
|
||||
});
|
||||
$('#member-filter').on('shown', function() {
|
||||
$(this).find('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
||||
});
|
||||
if($('#sidebar').length) {
|
||||
if(!/MSIE 8.0/g.test(navigator.userAgent)){
|
||||
document.getElementById('sidebar').addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||
}
|
||||
demo_fu1();
|
||||
}
|
||||
if($('#pageslide').length) {
|
||||
openSlide();
|
||||
}
|
||||
if($('.tags').length) {
|
||||
$('#filter-input').fastLiveFilter('#tags-list', '.filter-item', '.tag');
|
||||
}
|
||||
if($('#card-list').length) {
|
||||
$('#filter-input').fastLiveFilter('#card-list', '.filter-item', '.user-name');
|
||||
}
|
||||
if($('.toggle-check').length) {
|
||||
$('.toggle-check').togglebox();
|
||||
}
|
||||
formTip()
|
||||
sidebarNav();
|
||||
});
|
|
@ -1,100 +1,117 @@
|
|||
/* General style with default layout */
|
||||
.o-archives {}
|
||||
.o-archives-content {}
|
||||
.o-archives-group {
|
||||
.o-archives .o-archives-content {}
|
||||
.o-archives .o-archives-group {
|
||||
margin: 20px 0 0 0;
|
||||
padding: 20px 0 0 0;
|
||||
border-top: dashed 1px #eee;
|
||||
}
|
||||
.o-archives-group:first-child {
|
||||
.o-archives .o-archives-group:first-child {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.o-archives-category {
|
||||
.o-archives .o-archives-category {
|
||||
padding-bottom: 16px;
|
||||
margin-bottom: 16px;
|
||||
border-bottom: solid 2px #ccc;
|
||||
font-weight: bold;
|
||||
}
|
||||
.o-archives-list {}
|
||||
.o-archives-list ul {
|
||||
.o-archives .o-archives-list {}
|
||||
.o-archives .o-archives-list ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.o-archives-list li {}
|
||||
.o-archives-title {
|
||||
.o-archives .o-archives-list li {}
|
||||
.o-archives .o-archives-title {
|
||||
border-left: solid 8px #eee;
|
||||
border-bottom: solid 1px #eee;
|
||||
padding: 0 0 0 16px;
|
||||
line-height: 2em;
|
||||
}
|
||||
.o-archives-list-item {}
|
||||
.o-archives-list-item ol {
|
||||
list-style-type: decimal;
|
||||
.o-archives .o-archives-list-item {
|
||||
padding: 12px 0;
|
||||
}
|
||||
.o-archives-list-item li {
|
||||
margin: 0 0 10px 0;
|
||||
.o-archives .o-archives-list-item ol {
|
||||
list-style-type: disc;
|
||||
margin: 0;
|
||||
}
|
||||
.o-archives-file {}
|
||||
.o-archives-file:hover {}
|
||||
.o-archives-file-type {
|
||||
.o-archives .o-archives-list-item li {
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
.o-archives .o-archives-file {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.o-archives .o-archives-file:hover {}
|
||||
.o-archives .o-archives-file-type {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
vertical-align: top;
|
||||
margin-left: 8px;
|
||||
padding: 0 4px;
|
||||
height: 15px;
|
||||
font-size: 9px;
|
||||
padding: 0 6px;
|
||||
height: 16px;
|
||||
font-size: 10px;
|
||||
text-transform: uppercase;
|
||||
line-height: 15px;
|
||||
background-color: #999;
|
||||
color: #FFF;
|
||||
line-height: 16px;
|
||||
background-color: #666;
|
||||
color: #fff;
|
||||
border-radius: 3px;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
.o-archives .o-archives-hot {
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
padding: 0 4px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 0 0 8px;
|
||||
background-color: #D83131;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
/* Tag list */
|
||||
.o-archives-tag-list {}
|
||||
.o-archives-tag-list ul {
|
||||
.o-archives .o-archives-tag-list {}
|
||||
.o-archives .o-archives-tag-list ul {
|
||||
margin: 0 -4px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.o-archives-tag-list ul:after {
|
||||
.o-archives .o-archives-tag-list ul:after {
|
||||
content: ".";
|
||||
clear: both;
|
||||
display: block;
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.o-archives-tag-list li {
|
||||
.o-archives .o-archives-tag-list li {
|
||||
float: left;
|
||||
margin: 0 4px 8px 4px;
|
||||
}
|
||||
.o-archives-tag {
|
||||
.o-archives .o-archives-tag {
|
||||
display: block;
|
||||
border: solid 1px #ccc;
|
||||
padding: 2px 6px;
|
||||
padding: 4px;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.o-archives-tag:hover {}
|
||||
.o-archives .o-archives-tag:hover {}
|
||||
|
||||
/* Table layout */
|
||||
.o-archives.layout-table {}
|
||||
.o-archives-search {
|
||||
.o-archives .o-archives-search {
|
||||
overflow: hidden;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
.o-archives-search label {
|
||||
.o-archives .o-archives-search label {
|
||||
display: inline-block;
|
||||
margin: 0 8px 0 0;
|
||||
}
|
||||
.o-archives-search-option {
|
||||
.o-archives .o-archives-search-option {
|
||||
float: right;
|
||||
}
|
||||
.o-archives-search-option select {
|
||||
.o-archives .o-archives-search-option select {
|
||||
width: 80px;
|
||||
}
|
||||
.o-archives-search-keyword {}
|
||||
.o-archives-search-keyword input[type=submit] {
|
||||
.o-archives .o-archives-search-keyword {}
|
||||
.o-archives .o-archives-search-keyword input[type=submit] {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 0 0 8px;
|
||||
|
@ -112,6 +129,8 @@ border-radius: 3px;
|
|||
.o-archives.layout-table .even td {}
|
||||
.o-archives.layout-table .column-ctrl {
|
||||
text-align: left;
|
||||
padding: 8px 4px;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.o-archives.layout-table .column-ctrl.col-title { width: 30% }
|
||||
.o-archives.layout-table .column-ctrl.col-file {}
|
||||
|
@ -121,16 +140,18 @@ border-radius: 3px;
|
|||
font-weight: bold;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
.o-archives.layout-table .o-archives-category {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
.o-archives.layout-table .o-archives-tag {
|
||||
display: inline-block;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.o-archives.layout-table .o-archives-category {
|
||||
font-weight: normal;
|
||||
.o-archives.layout-table .o-archives-list-item {
|
||||
padding: 0;
|
||||
}
|
|
@ -1,48 +1,66 @@
|
|||
class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController
|
||||
# before_filter :for_app_manager,:except => [:index,:show]
|
||||
include OrbitControllerLib::DivisionForDisable
|
||||
# include OrbitControllerLib::DivisionForDisable
|
||||
|
||||
before_filter :force_order_for_visitor,:only=>[:index]
|
||||
before_filter :force_order_for_user,:except => [:index]
|
||||
|
||||
before_filter :for_app_sub_manager,:except => [:index]
|
||||
before_filter :only => [ :new,:edit,:update,:create] do |controller|
|
||||
controller.get_categorys('ArchiveFileCategory')
|
||||
# before_filter :only => [ :new,:edit,:update,:create] do |controller|
|
||||
# controller.get_categorys('ArchiveFileCategory')
|
||||
# end
|
||||
|
||||
before_filter :only => [ :new, :create, :edit, :update ] do |controller|
|
||||
@categories = get_categories_for_form
|
||||
end
|
||||
|
||||
def index
|
||||
|
||||
get_categorys("ArchiveFileCategory",params[:archive_file_category_id])
|
||||
@filter = params[:filter]
|
||||
new_filter = params[:new_filter]
|
||||
|
||||
if @filter && params[:clear]
|
||||
@filter.delete(params[:type])
|
||||
elsif @filter && new_filter
|
||||
if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
|
||||
@filter[new_filter[:type]].delete(new_filter[:id].to_s)
|
||||
elsif @filter.has_key?(new_filter[:type])
|
||||
@filter[new_filter[:type]] << new_filter[:id].to_s
|
||||
else
|
||||
@filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
|
||||
end
|
||||
elsif new_filter
|
||||
@filter = {new_filter[:type] => [new_filter[:id].to_s]}
|
||||
end
|
||||
@archive_filecategories = get_categories_for_index("ArchiveFileCategory")
|
||||
@archive_file_category_ids = @archive_file_categories.collect{|t| t.id.to_s} + [nil]
|
||||
|
||||
@archive_files = (params[:sort] || @filter) ? get_sorted_and_filtered("archive_file",:archive_file_category_id.in => @archive_file_category_ids) : get_viewable("archive_file",:archive_file_category_id.in => @archive_file_category_ids)
|
||||
|
||||
@tags = get_tags
|
||||
@categories = get_categories_for_index
|
||||
@statuses = get_statuses
|
||||
category_ids = @categories.collect{|t| t.id}
|
||||
|
||||
@archive_files = get_sorted_and_filtered("archive_file", :category_id.in => category_ids)
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.js { }
|
||||
format.xml { render :xml => @archive_files }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# def index
|
||||
|
||||
# get_categorys("ArchiveFileCategory",params[:archive_file_category_id])
|
||||
# @filter = params[:filter]
|
||||
# new_filter = params[:new_filter]
|
||||
|
||||
# if @filter && params[:clear]
|
||||
# @filter.delete(params[:type])
|
||||
# elsif @filter && new_filter
|
||||
# if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
|
||||
# @filter[new_filter[:type]].delete(new_filter[:id].to_s)
|
||||
# elsif @filter.has_key?(new_filter[:type])
|
||||
# @filter[new_filter[:type]] << new_filter[:id].to_s
|
||||
# else
|
||||
# @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
|
||||
# end
|
||||
# elsif new_filter
|
||||
# @filter = {new_filter[:type] => [new_filter[:id].to_s]}
|
||||
# end
|
||||
# @archive_filecategories = get_categories_for_index("ArchiveFileCategory")
|
||||
# @archive_file_category_ids = @archive_file_categories.collect{|t| t.id.to_s} + [nil]
|
||||
|
||||
# @archive_files = (params[:sort] || @filter) ? get_sorted_and_filtered("archive_file",:archive_file_category_id.in => @archive_file_category_ids) : get_viewable("archive_file",:archive_file_category_id.in => @archive_file_category_ids)
|
||||
|
||||
# @tags = get_tags
|
||||
|
||||
# respond_to do |format|
|
||||
# format.html # index.html.erb
|
||||
# format.xml { render :xml => @archive_files }
|
||||
# format.js
|
||||
# end
|
||||
# end
|
||||
|
||||
# GET /archive_files/1
|
||||
# GET /archive_files/1.xml
|
||||
def show
|
||||
|
@ -57,7 +75,12 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController
|
|||
# GET /archive_files/new
|
||||
# GET /archive_files/new.xml
|
||||
def new
|
||||
if(session[:in_validate_object].blank?)
|
||||
@archive_file = ArchiveFile.new
|
||||
else
|
||||
@archive_file = session[:in_validate_object]
|
||||
session[:in_validate_object] = {}
|
||||
end
|
||||
|
||||
@tags = get_tags
|
||||
|
||||
|
@ -70,9 +93,12 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController
|
|||
# GET /archive_files/1/edit
|
||||
def edit
|
||||
@archive_file = ArchiveFile.find(params[:id])
|
||||
|
||||
if !current_user.admin?
|
||||
redirect_to :action => :index
|
||||
else
|
||||
@tags = get_tags
|
||||
end
|
||||
end
|
||||
|
||||
# POST /archive_files
|
||||
# POST /archive_files.xml
|
||||
|
|
|
@ -21,6 +21,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
|
|||
def index
|
||||
@item = Page.find(params[:page_id])
|
||||
@title = @item.title
|
||||
@frontend_style = @item.frontend_style
|
||||
if !@item.frontend_data_count.blank?
|
||||
@page_num = @item.frontend_data_count
|
||||
else
|
||||
|
@ -28,23 +29,69 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
|
|||
end
|
||||
|
||||
date_now = Time.now
|
||||
@archive_file_categorys = ArchiveFileCategory.all
|
||||
# @archive_file_categorys = ArchiveFileCategory.all
|
||||
# @archive_files = ArchiveFile.where( :is_hidden => false ).desc(:is_top).page(params[:page]).per(@page_num)
|
||||
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@archive_files = @archive_files.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
elsif !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
if !params[:category_id].blank?
|
||||
@archive_file_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
|
||||
@archive_file_category_ids = @module_app.categories.enabled.any_in(:_id => params[:category_id]).collect{|a|a.id}
|
||||
else
|
||||
@archive_files = ArchiveFile.default_sort(params[:sort]).can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
@archive_file_categorys = @module_app.categories.enabled
|
||||
@archive_file_category_ids = @module_app.categories.enabled.collect{|a|a.id}
|
||||
end
|
||||
|
||||
if @frontend_style == "1"
|
||||
|
||||
get_categorys
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
elsif !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids,:tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
else
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
end
|
||||
|
||||
elsif @frontend_style == "2"
|
||||
|
||||
@archive_file_datas = Array.new
|
||||
|
||||
@archive_file_categorys.each do |afcg|
|
||||
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort])
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id]).desc( :is_top ).default_sort(params[:sort])
|
||||
elsif !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort])
|
||||
else
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id).desc( :is_top ).default_sort(params[:sort])
|
||||
end
|
||||
|
||||
archive_file_datas = Array.new
|
||||
|
||||
@archive_files.each do |af|
|
||||
|
||||
archive_file_multiple_datas = Array.new
|
||||
|
||||
af.archive_file_multiples.asc(:sort_number).each do | afile |
|
||||
archive_file_multiple_datas << {
|
||||
"file_title" => (!afile.file_title.blank? ? afile.file_title : t('archive.download') ) ,
|
||||
"url" => afile.file.url,
|
||||
"icon" => af.get_file_icon(afile.file.url)
|
||||
} if afile.file.file and afile.choose_lang_display(I18n.locale.to_s)
|
||||
end
|
||||
|
||||
archive_file_datas << { "title" => af.title, "is_hot" => (!af.is_hot.blank? ? '1' : ''), "archive_file_multiples" => archive_file_multiple_datas } if !af.archive_file_multiples.blank? and !archive_file_multiple_datas.blank?
|
||||
end
|
||||
|
||||
@archive_file_datas << { "title" => afcg.title, "archive_files" => archive_file_datas } if !@archive_files.blank?
|
||||
end
|
||||
|
||||
end
|
||||
# get_categorys
|
||||
|
||||
if params[:sort]
|
||||
@archive_files = get_sorted_and_filtered('archive_file', nil, @archive_files)
|
||||
|
|
|
@ -28,17 +28,91 @@ class Panel::Archive::Widget::ArchiveFilesController < OrbitWidgetController
|
|||
|
||||
date_now = Time.now
|
||||
|
||||
# if !params[:category_id].blank?
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:category_id => params[:category_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
# @archive_file_categorys = ArchiveFileCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
|
||||
# elsif !params[:tag_id].blank?
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
# get_categorys
|
||||
# else
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top).page( params[:page_main] ).per(@page_num)
|
||||
# get_categorys
|
||||
# end
|
||||
|
||||
# if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
# elsif !params[:category_id].blank?
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:category_id.in => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
# @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
# elsif !params[:tag_id].blank?
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
# else
|
||||
# @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
# end
|
||||
|
||||
|
||||
|
||||
if !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:archive_file_category_id => params[:category_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
@archive_file_categorys = ArchiveFileCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
|
||||
elsif !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top ).page( params[:page_main] ).per(@page_num)
|
||||
get_categorys
|
||||
@archive_file_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
|
||||
@archive_file_category_ids = @module_app.categories.enabled.any_in(:_id => params[:category_id]).collect{|a|a.id}
|
||||
else
|
||||
@archive_files = ArchiveFile.default_sort(params[:sort]).all.can_display.merge(ArchiveFileCategory.excludes('disable' => true)).desc( :is_top).page( params[:page_main] ).per(@page_num)
|
||||
get_categorys
|
||||
@archive_file_categorys = @module_app.categories.enabled
|
||||
@archive_file_category_ids = @module_app.categories.enabled.collect{|a|a.id}
|
||||
end
|
||||
|
||||
if @widget_style == "1"
|
||||
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
elsif !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids,:tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
else
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num)
|
||||
end
|
||||
|
||||
elsif @widget_style == "2"
|
||||
|
||||
@archive_file_datas = Array.new
|
||||
|
||||
@archive_file_categorys.each do |afcg|
|
||||
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id]).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
|
||||
elsif !params[:tag_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
|
||||
else
|
||||
@archive_files = ArchiveFile.can_display.where(:category_id => afcg.id).desc( :is_top ).default_sort(params[:sort]).limit(@page_num)
|
||||
end
|
||||
|
||||
archive_file_datas = Array.new
|
||||
|
||||
@archive_files.each do |af|
|
||||
|
||||
archive_file_multiple_datas = Array.new
|
||||
|
||||
af.archive_file_multiples.asc(:sort_number).each do | afile |
|
||||
archive_file_multiple_datas << {
|
||||
"file_title" => (!afile.file_title.blank? ? afile.file_title : t('archive.download') ) ,
|
||||
"url" => afile.file.url,
|
||||
"icon" => af.get_file_icon(afile.file.url)
|
||||
} if afile.file.file and afile.choose_lang_display(I18n.locale.to_s)
|
||||
end
|
||||
|
||||
archive_file_datas << { "title" => af.title, "is_hot" => (!af.is_hot.blank? ? '1' : ''), "archive_file_multiples" => archive_file_multiple_datas } if !af.archive_file_multiples.blank? and !archive_file_multiple_datas.blank?
|
||||
end
|
||||
|
||||
@archive_file_datas << { "title" => afcg.title, "archive_files" => archive_file_datas } if !@archive_files.blank?
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
if params[:sort]
|
||||
@archive_files = get_sorted_and_filtered('archive_file', nil, @archive_files)
|
||||
end
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
# encoding: utf-8
|
||||
|
||||
class ArchiveFile
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Mongoid::Sortable
|
||||
include Sunspot::Mongo
|
||||
|
||||
include OrbitCategory::Categorizable
|
||||
include OrbitModel::LanguageRestrict
|
||||
include OrbitModel::Status
|
||||
include OrbitModel::TimeFrame
|
||||
include OrbitTag::Taggable
|
||||
|
||||
BelongsToCategory = :archive_file_category
|
||||
# BelongsToCategory = :archive_file_category
|
||||
|
||||
PAYMENT_TYPES = @site_valid_locales
|
||||
# PAYMENT_TYPES = @site_valid_locales
|
||||
|
||||
|
||||
field :title, localize: true
|
||||
field :create_user_id
|
||||
field :update_user_id
|
||||
field :update_user_id, :class_name => "User"
|
||||
|
||||
# belongs_to :archive_file_category
|
||||
|
||||
|
@ -38,6 +41,7 @@ class ArchiveFile
|
|||
|
||||
# end
|
||||
|
||||
|
||||
def self.search( category_id = nil )
|
||||
|
||||
if category_id.to_s.size > 0
|
||||
|
|
|
@ -5,8 +5,7 @@ class ArchiveFileCategory
|
|||
include Mongoid::Timestamps
|
||||
include OrbitCoreLib::ObjectAuthable
|
||||
include OrbitCoreLib::ObjectDisable
|
||||
include Sunspot::Mongo
|
||||
# include Mongoid::MultiParameterAttributes
|
||||
|
||||
APP_NAME = 'Archive'
|
||||
ObjectAuthTitlesOptions = %W{submit_new fact_check}
|
||||
AfterObjectAuthUrl = '/panel/archive/back_end/archive_file_categorys'
|
||||
|
@ -20,21 +19,6 @@ class ArchiveFileCategory
|
|||
|
||||
validates :title, :at_least_one => true
|
||||
|
||||
searchable do
|
||||
text :titles do
|
||||
title_translations.to_a.collect{|t| t[1]}
|
||||
end
|
||||
|
||||
boolean :frontend_search do
|
||||
!disable
|
||||
end
|
||||
|
||||
text :files do
|
||||
archive_files.can_display.collect{|t| t.title_translations.to_a.collect{|t| t[1]}}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def pp_object
|
||||
title
|
||||
|
|
|
@ -1,157 +1,196 @@
|
|||
<% # encoding: utf-8 %>
|
||||
<% content_for :page_specific_css do %>
|
||||
<%= stylesheet_link_tag "lib/main-forms" %>
|
||||
<%= stylesheet_link_tag "lib/fileupload" %>
|
||||
<% end %>
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
|
||||
<% end %>
|
||||
|
||||
<%= f.error_messages %>
|
||||
|
||||
<!--Widget start-->
|
||||
<!-- Input Area -->
|
||||
<div class="input-area">
|
||||
|
||||
<div id="sub-wiget">
|
||||
<!-- Module Tabs -->
|
||||
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
||||
<ul class="nav nav-pills module-nav">
|
||||
<li></li>
|
||||
<li class="active">
|
||||
<a href="#basic" data-toggle="tab"><%= t(:basic) %></a>
|
||||
</li>
|
||||
<% if show_form_status_field(@archive_file) %>
|
||||
<li>
|
||||
<a href="#status" data-toggle="tab"><%= t(:status) %></a>
|
||||
</li>
|
||||
<% end %>
|
||||
<li>
|
||||
<a href="#tag" data-toggle="tab"><%= t(:tags) %></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div id="widget-status" class="widget-box widget-size-300">
|
||||
<div class="widget-action clear tip" title="Setting the announcement state">
|
||||
<a class="action"><i class="icon-exclamation-sign icon-white"></i></a>
|
||||
</div>
|
||||
<h3 class="widget-title"><i class="icons-star"></i>Status</h3>
|
||||
<div class="widget-content clear">
|
||||
<!-- Module -->
|
||||
<div class="tab-content module-area">
|
||||
|
||||
<!-- Basic Module -->
|
||||
<div class="tab-pane fade in active" id="basic">
|
||||
|
||||
<!-- Category -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:category) %></label>
|
||||
<div class="controls">
|
||||
<%= f.check_box :is_top %><%= t('top') %>
|
||||
<%= f.check_box :is_hot %><%= t('hot') %>
|
||||
<%= f.check_box :is_hidden %><%= t('hide') %>
|
||||
</div>
|
||||
<%= f.select :category_id, @categories.collect{|t| [ t.title, t.id ]} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="widget-tags" class="widget-box widget-size-300">
|
||||
<div class="widget-action clear tip" title="Setting">
|
||||
<a class="action"><i class="icon-cog icon-white"></i></a>
|
||||
<!-- Sort -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:sort_number) %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field :sort_number %>
|
||||
</div>
|
||||
<h3 class="widget-title"><i class="icons-tag"></i>Tags</h3>
|
||||
<div class="widget-content clear form-horizontal">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Status Module -->
|
||||
<% if show_form_status_field(@archive_file) %>
|
||||
<div class="tab-pane fade" id="status">
|
||||
|
||||
<!-- Status -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:status) %></label>
|
||||
<div class="controls" data-toggle="buttons-checkbox">
|
||||
<label class="checkbox inline btn <%= 'active' if @archive_file.is_top? %>">
|
||||
<%= f.check_box :is_top %> <%= t(:top) %>
|
||||
</label>
|
||||
<label class="checkbox inline btn <%= 'active' if @archive_file.is_hot? %>">
|
||||
<%= f.check_box :is_hot %> <%= t(:hot) %>
|
||||
</label>
|
||||
<label class="checkbox inline btn <%= 'active' if @archive_file.is_hidden? %>">
|
||||
<%= f.check_box :is_hidden %> <%= t(:hide) %>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<!-- Tag Module -->
|
||||
<div class="tab-pane fade" id="tag">
|
||||
|
||||
<!-- Tag -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:tags) %></label>
|
||||
<div class="controls" data-toggle="buttons-checkbox">
|
||||
<% @tags.each do |tag| %>
|
||||
<%= check_box_tag 'archive_file[tag_ids][]', tag.id, @archive_file.tag_ids.include?(tag.id)%>
|
||||
<%= tag.name %>
|
||||
<label class="checkbox inline btn <%= 'active' if @archive_file.tag_ids.include?(tag.id) %>">
|
||||
<%= check_box_tag 'archive_file[tag_ids][]', tag.id, @archive_file.tag_ids.include?(tag.id) %> <%= tag.name %>
|
||||
<%= hidden_field_tag 'archive_file[tag_ids][]', '' %>
|
||||
</label>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--Wiget End-->
|
||||
<!--Post Start-->
|
||||
|
||||
<div id="post-body">
|
||||
<div id="post-body-content" class="clear">
|
||||
|
||||
<%= f.label :category %>
|
||||
<%= f.select :archive_file_category_id, @archive_file_categorys.collect {|t| [ t.title, t.id ]} %>
|
||||
|
||||
<%= f.label :sort_number %>
|
||||
<%= f.text_field :sort_number %>
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<!-- Language Tabs -->
|
||||
<div class="nav-name"><strong><%= t(:language) %></strong></div>
|
||||
<ul class="nav nav-pills language-nav">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<%# site_valid_locales_default_head.each_with_index do |locale, i| %>
|
||||
<li <%= ( i == 0 ) ? "class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||
<li class="<%= 'active' if i == 0 %>">
|
||||
<a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<!-- Language -->
|
||||
<div class="tab-content language-area">
|
||||
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
|
||||
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
<div class="title">
|
||||
<%= f.label :title %>
|
||||
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
|
||||
<!-- Title-->
|
||||
<div class="control-group input-title">
|
||||
<label class="control-label muted"><%= t(:title) %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :title_translations do |f| %>
|
||||
<%= I18nVariable.from_locale(locale) %>
|
||||
<%= f.text_field locale, :class=>'post-title', :value => (@archive_file.title_translations[locale] rescue nil) %>
|
||||
<%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@archive_file.title_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<!-- File -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:file_) %></label>
|
||||
<div class="controls">
|
||||
|
||||
|
||||
<div>
|
||||
|
||||
<div class="archive_file_multiples_block">
|
||||
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>排序數</th>
|
||||
<th>File</th>
|
||||
<th>File Name</th>
|
||||
<th class="span2"><%= t('呈現語系')%></th>
|
||||
<th class="span1"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td style="text-align:center" colspan="4">
|
||||
<div id='add_archive_file_multiple' class="info_input archive_file_multiples_block">
|
||||
<%= hidden_field_tag 'archive_file_multiple_field_count', @archive_file.archive_file_multiples.count %>
|
||||
<a class="add"><span class="btn btn-primary btn-small"><i class="icon-plus icon-white"></i> ADD/新增</span></a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tfoot>
|
||||
<tbody>
|
||||
|
||||
<% @archive_file.archive_file_multiples.asc(:_id).each_with_index do |archive_file_multiple, i| %>
|
||||
<!-- Exist -->
|
||||
<% if @archive_file && !@archive_file.archive_file_multiples.blank? %>
|
||||
<div class="exist">
|
||||
<% @archive_file.archive_file_multiples.each_with_index do |archive_file_multiple, i| %>
|
||||
<%= f.fields_for :archive_file_multiples, archive_file_multiple do |f| %>
|
||||
<%= render :partial => 'form_file', :object => archive_file_multiple, :locals => {:f => f, :i => i} %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<!-- Add -->
|
||||
<div class="add-target">
|
||||
</div>
|
||||
<p class="add-btn">
|
||||
<%= hidden_field_tag 'archive_file_multiple_field_count', @archive_file.archive_file_multiples.count %>
|
||||
<a id="add_file" class="trigger btn btn-small btn-primary"><i class="icons-plus"></i> <%= t(:add) %></a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!--Post End-->
|
||||
|
||||
|
||||
<!-- Form Actions -->
|
||||
<div class="form-actions">
|
||||
<%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %>
|
||||
<%= hidden_field_tag 'filter', params[:filter] %>
|
||||
<%= f.submit t('submit'), :class=>'btn btn-primary' %>
|
||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "archive_form" %>
|
||||
<script>
|
||||
$('#add_archive_file_multiple a.add').live('click', function(){
|
||||
$(document).ready(function() {
|
||||
$('.main-forms .add-on').tooltip();
|
||||
$(document).on('click', '#add_file', function(){
|
||||
var new_id = $(this).prev().attr('value');
|
||||
var old_id = new RegExp("new_archive_file_multiples", "g");
|
||||
var on = $('.language-nav li.active').index();
|
||||
var le = $(this).parent('.add-btn').prev('.add-target').children('.start-line').length;
|
||||
$(this).prev().attr('value', parseInt(new_id) + 1);
|
||||
var new_form_file = $("<%= escape_javascript(add_attribute 'form_file', f, :archive_file_multiples) %>".replace(old_id, new_id));
|
||||
new_form_file.find('input#archive_file_archive_file_multiples_attributes_'+new_id+'_sort_number').val(new_id * 10)
|
||||
$(this).parents('table').append(new_form_file);
|
||||
$(this).parent().siblings('.add-target').append(("<%= escape_javascript(add_attribute 'form_file', f, :archive_file_multiples) %>").replace(old_id, new_id));
|
||||
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
|
||||
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
|
||||
});
|
||||
|
||||
$('.archive_file_multiples_block a.delete').live('click', function(){
|
||||
$(this).parents('.list_item').remove();
|
||||
$('.main-forms .add-on').tooltip();
|
||||
});
|
||||
|
||||
$('.action a.remove_existing_record').live('click', function(){
|
||||
$('.for_preview').popover({ html : true });
|
||||
$(document).on('click', '.delete_file', function(){
|
||||
$(this).parents('.input-prepend').remove();
|
||||
});
|
||||
$(document).on('click', '.remove_existing_record', function(){
|
||||
if(confirm("<%= I18n.t(:sure?)%>")){
|
||||
$(this).next('.should_destroy').attr('value', 1);
|
||||
$("tr#archive_file_" + $(this).prev().attr('value')).hide();
|
||||
$(this).parents('.start-line').hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -1,64 +1,56 @@
|
|||
<% # encoding: utf-8 %>
|
||||
|
||||
<tr id="<%= "archive_file_multiple_#{form_file.id}" if !form_file.new_record? %>" class='list_item'>
|
||||
<td>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<%= f.text_field :sort_number %>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<%= f.file_field :file %>
|
||||
<div class="fileupload fileupload-new start-line" data-provides="fileupload">
|
||||
<%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %>
|
||||
<div class="input-prepend input-append">
|
||||
<label>
|
||||
<span class="add-on btn btn-file" title="<%= t(:file_) %>">
|
||||
<i class="icons-paperclip"></i>
|
||||
<%= f.file_field :file %>
|
||||
</span>
|
||||
<div class="uneditable-input input-medium">
|
||||
<i class="icon-file fileupload-exists"></i>
|
||||
<span class="fileupload-preview"><%= t(:select_file) %></span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<div class="tab-content">
|
||||
|
||||
</label>
|
||||
<span class="add-on icons-pencil" title="<%= 'File Name' %>"></span>
|
||||
<span class="tab-content">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
|
||||
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
<%#= f.fields_for :i18n_variable, (form_file.new_record? ? form_file.build_i18n_variable : form_file.i18n_variable ) do |f| %>
|
||||
<span class="tab-pane fade <%= ( i == 0 ) ? "in active" : '' %> <%= locale %>">
|
||||
<%= f.fields_for :file_title_translations do |f| %>
|
||||
<div class="control-group">
|
||||
<label for="link-<%= locale %>" class="control-label"><%= I18nVariable.from_locale(locale) %></label>
|
||||
<div class="controls">
|
||||
<%= f.text_field locale, :class=>'post-file_title', :value => (form_file.file_title_translations[locale] rescue nil) %>
|
||||
</div>
|
||||
</div>
|
||||
<%= f.text_field locale, :class => "input-medium", placeholder: 'File Name', :value => (form_file.file_title_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<%= check_box_tag "archive_file[archive_file_multiples_attributes][#{( form_file.new_record? ? 'new_archive_file_multiples' : "#{i}" )}][choose_lang][]", locale, (form_file.choose_lang.nil? ? true : form_file.choose_lang.include?(locale)) %>
|
||||
<%= I18nVariable.from_locale(locale) %>
|
||||
<% end %>
|
||||
<%= hidden_field_tag 'archive_file[archive_file_multiples_attributes][0][choose_lang][]', '' %>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="action">
|
||||
<% if form_file.new_record? %>
|
||||
<a class="delete"><i class="icon-remove"></i></a>
|
||||
<% else %>
|
||||
<%= f.hidden_field :id %>
|
||||
<a class="remove_existing_record"><i class="icon-remove"></i></a>
|
||||
<%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
|
||||
</span>
|
||||
<% end %>
|
||||
</span>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<span class="add-on icon-list-ol" title="<%= t(:sort_number) %>"></span>
|
||||
<span class="tab-content">
|
||||
<%= f.text_field :sort_number , :class => "input-mini"%>
|
||||
</span>
|
||||
|
||||
<span class="add-on btn-group btn" title="<%= t('archive.show_lang') %>">
|
||||
<%= t('archive.show_lang') %> <span class="caret"></span>
|
||||
<ul class="dropdown-menu">
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<li>
|
||||
<label class="checkbox">
|
||||
<%= check_box_tag "archive_file[archive_file_multiples_attributes][#{( form_file.new_record? ? 'new_archive_file_multiples' : "#{i}" )}][choose_lang][]", locale, (form_file.choose_lang.nil? ? true : form_file.choose_lang.include?(locale)) %>
|
||||
<%= I18nVariable.from_locale(locale) %>
|
||||
</label>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<%= hidden_field_tag 'archive_file[archive_file_multiples_attributes][0][choose_lang][]', '' %>
|
||||
</span>
|
||||
|
||||
<span class="delete_file add-on btn" title="<%= t(:delete) %>">
|
||||
<% if form_file.new_record? %>
|
||||
<a class="icon-trash"></a>
|
||||
<% else %>
|
||||
<%= f.hidden_field :id %>
|
||||
<a class="remove_existing_record icon-remove"></a>
|
||||
<%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
|
||||
<% end %>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<h1><%= t('archive.editing_archive') %></h1>
|
||||
|
||||
<%= form_for @archive_file, :url => panel_archive_back_end_archive_file_path(@archive_file), :html => {:class => 'clear'} do |f| %>
|
||||
<%= render :partial => 'form', :locals => {:f => f} %>
|
||||
<%= form_for @archive_file, url: panel_archive_back_end_archive_file_path(@archive_file), html: {class: "form-horizontal main-forms previewable"} do |f| %>
|
||||
<fieldset>
|
||||
<%= render partial: 'form', locals: {f: f} %>
|
||||
</fieldset>
|
||||
<% end %>
|
|
@ -1,24 +1,48 @@
|
|||
<%= render 'filter' %>
|
||||
<% set_default_index do
|
||||
objects @archive_files
|
||||
filterable
|
||||
sortable
|
||||
quick_edit_link type: 'edit',
|
||||
link: 'edit_panel_archive_back_end_archive_file_path'
|
||||
quick_edit_link type: 'detail'
|
||||
quick_edit_link type: 'delete',
|
||||
link: 'panel_archive_back_end_archive_file_path'
|
||||
field type: 'status',
|
||||
db_field: @statuses,
|
||||
translation: 'status',
|
||||
hide: 'phone',
|
||||
sort: 'status',
|
||||
header_class: 'span2'
|
||||
field type: 'associated',
|
||||
associated_value: 'title',
|
||||
db_field: 'category',
|
||||
translation: 'category',
|
||||
hide: 'phone',
|
||||
sort: 'category',
|
||||
header_class: 'span2'
|
||||
field type: 'field',
|
||||
db_field: 'title',
|
||||
translation: 'title',
|
||||
sort: 'title',
|
||||
link: 'panel_archive_front_end_archive_file_path',
|
||||
quick_edit: true
|
||||
field type: 'tags',
|
||||
db_field: 'tags',
|
||||
translation: 'tags',
|
||||
hide: 'all',
|
||||
sort: 'tags'
|
||||
filter_field type: 'array',
|
||||
values: @statuses,
|
||||
translation: 'status'
|
||||
filter_field type: 'objects',
|
||||
values: @categories,
|
||||
translation: 'category',
|
||||
object_field: 'title'
|
||||
filter_field type: 'objects',
|
||||
values: @tags,
|
||||
translation: 'tags',
|
||||
object_field: 'name'
|
||||
footer link: 'new_panel_archive_back_end_archive_file_path'
|
||||
end %>
|
||||
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span1"></th>
|
||||
<th class="span1"></th>
|
||||
<th class="span1"></th>
|
||||
<th class="span2"></th>
|
||||
<th class="span3"></th>
|
||||
<th class="span2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbody_archive">
|
||||
<%= render :partial => 'archive_file', :collection => @archive_files %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t(:add), new_panel_archive_back_end_archive_file_path, :class => 'btn btn-primary pull-right' if (is_manager? rescue nil) %>
|
||||
<div id="archive_file_pagination" class="paginationFixed">
|
||||
<%= paginate @archive_files, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>
|
||||
</div>
|
||||
</div>
|
||||
<%= render 'admin/default_index/index' %>
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
|
||||
<%= flash_messages %>
|
||||
<h1><%= t('archive_file.new_archive') %></h1>
|
||||
<%= form_for @archive_file, :url => panel_archive_back_end_archive_files_path, :html => {:class => 'clear'} do |f| %>
|
||||
<%= render :partial => 'form', :locals => {:f => f} %>
|
||||
<%= form_for @archive_file, url: panel_archive_back_end_archive_files_path, html: {class: "form-horizontal main-forms previewable"} do |f| %>
|
||||
<fieldset>
|
||||
<%= render partial: 'form', locals: {f: f} %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
|
||||
<%#= link_back %>
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<% # encoding: utf-8 %>
|
||||
|
||||
<% if @frontend_style == '1' %>
|
||||
|
||||
<div class="o-archives layout-table">
|
||||
|
||||
|
@ -15,15 +16,19 @@
|
|||
|
||||
<% @archive_files.each_with_index do |post,i| %>
|
||||
<tr <% if ( (i + 1) % 2 ) == 0 %> class="even" <% end %>>
|
||||
<td><div class="o-archives-title"><%= post.title %></div></td>
|
||||
<td>
|
||||
<div class="o-archives-title"><%= post.title %>
|
||||
<% if !post.is_hot.blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="o-archives-list-item">
|
||||
<% if !post.archive_file_multiples.blank? %>
|
||||
<ol>
|
||||
<% post.archive_file_multiples.asc(:_id).each do | afile | %>
|
||||
<% post.archive_file_multiples.asc(:sort_number).each do | afile | %>
|
||||
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
|
||||
<li>
|
||||
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
|
||||
<%= link_to (!afile.file_title.blank? ? afile.file_title : t('archive.download') ), afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} if afile.file.file %>
|
||||
<%= post.get_file_icon(afile.file.url) %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
@ -33,7 +38,7 @@
|
|||
</div>
|
||||
</td>
|
||||
<td><div class="o-archives-category">
|
||||
<%= post.archive_file_category.title %>
|
||||
<%= post.category.title if !post.category.blank? %>
|
||||
</div></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
|
@ -44,6 +49,43 @@
|
|||
|
||||
<%= paginate @archive_files, :param_name => :page_main, :params => {:inner => 'false'} %>
|
||||
|
||||
<% elsif @frontend_style == '2' %>
|
||||
|
||||
<div class="o-archives">
|
||||
<div class="o-archives-content">
|
||||
<% @archive_file_datas.each do |afcpost| %>
|
||||
<div class="o-archives-group">
|
||||
<h2 class="o-archives-category h2"><%= afcpost["title"] %></h2>
|
||||
<div class="o-archives-content">
|
||||
<div class="o-archives-list">
|
||||
<ul>
|
||||
<% afcpost["archive_files"].each do |post| %>
|
||||
<li>
|
||||
<h3 class="o-archives-title h3">
|
||||
<%= post["title"] %>
|
||||
<% if !post["is_hot"].blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
|
||||
</h3>
|
||||
<div class="o-archives-list-item">
|
||||
<ol>
|
||||
<% post["archive_file_multiples"].each do | afile | %>
|
||||
<li>
|
||||
<%= link_to afile["file_title"], afile["url"], {:target => '_blank', :title => afile["file_title"], :class => "o-archives-file"} %>
|
||||
<%= afile["icon"] %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ol>
|
||||
</div>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
<%= stylesheet_link_tag "archive/archives" %>
|
||||
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<% @archive_file.archive_file_multiples.each do | afile | %>
|
||||
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
|
||||
<li>
|
||||
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
|
||||
<%= link_to (!afile.file_title.blank? ? afile.file_title : t('download_') ), afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} if afile.file.file %>
|
||||
<%= @archive_file.get_file_icon(afile.file.url) %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
|
|
@ -16,7 +16,11 @@
|
|||
<tbody>
|
||||
<% @archive_files.each_with_index do |post,i| %>
|
||||
<tr <% if ( (i + 1) % 2 ) == 0 %> class="even" <% end %>>
|
||||
<td><div class="o-archives-title"><%= post.title %></div></td>
|
||||
<td>
|
||||
<div class="o-archives-title"><%= post.title %>
|
||||
<% if !post.is_hot.blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="o-archives-list-item">
|
||||
<% if !post.archive_file_multiples.blank? %>
|
||||
|
@ -24,7 +28,7 @@
|
|||
<% post.archive_file_multiples.asc(:_id).each do | afile | %>
|
||||
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
|
||||
<li>
|
||||
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
|
||||
<%= link_to (!afile.file_title.blank? ? afile.file_title : t('archive.download') ), afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} if afile.file.file %>
|
||||
<%= post.get_file_icon(afile.file.url) %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
@ -34,7 +38,7 @@
|
|||
</div>
|
||||
</td>
|
||||
<td><div class="o-archives-category">
|
||||
<%= post.archive_file_category.title %>
|
||||
<%= post.category.title if !post.category.blank? %>
|
||||
</div></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
|
@ -42,6 +46,46 @@
|
|||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<% elsif @widget_style == '2' %>
|
||||
|
||||
<div class="o-archives">
|
||||
<div class="o-archives-content">
|
||||
|
||||
<% @archive_file_datas.each do |afcpost| %>
|
||||
|
||||
<div class="o-archives-group">
|
||||
<h2 class="o-archives-category h2"><%= afcpost["title"] %></h2>
|
||||
<div class="o-archives-content">
|
||||
<div class="o-archives-list">
|
||||
<ul>
|
||||
<% afcpost["archive_files"].each do |post| %>
|
||||
<li>
|
||||
<h3 class="o-archives-title h3">
|
||||
<%= post["title"] %>
|
||||
<% if !post["is_hot"].blank? %><span class="o-archives-hot"><%= t('hot')%></span><% end %>
|
||||
</h3>
|
||||
<div class="o-archives-list-item">
|
||||
<ol>
|
||||
<% post["archive_file_multiples"].each do | afile | %>
|
||||
<li>
|
||||
<%= link_to afile["file_title"], afile["url"], {:target => '_blank', :title => afile["file_title"], :class => "o-archives-file"} %>
|
||||
<%= afile["icon"] %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ol>
|
||||
</div>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
<div class="pull_right">
|
||||
<% if !params[:category_id].blank? %>
|
||||
<%= link_to t(:more_plus), panel_archive_front_end_archive_files_path(:category_id => @part.category) %>
|
||||
|
@ -49,50 +93,3 @@
|
|||
<%= link_to t(:more_plus), panel_archive_front_end_archive_files_path %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% elsif @widget_style == '2' %>
|
||||
|
||||
<div class="o-archives">
|
||||
<div class="o-archives-content">
|
||||
|
||||
<% @archive_file_categorys.each do |afcpost| %>
|
||||
|
||||
<div class="o-archives-group">
|
||||
<% if @category_id.blank? %>
|
||||
<h2 class="o-archives-category h2"><%= afcpost.title %></h2>
|
||||
<% end %>
|
||||
<div class="o-archives-content">
|
||||
<div class="o-archives-list">
|
||||
<ul>
|
||||
|
||||
<% afcpost.archive_files.can_display.desc( :is_top ).each do |post| %>
|
||||
<li>
|
||||
<h3 class="o-archives-title h3"><%= post.title %></h3>
|
||||
<div class="o-archives-list-item">
|
||||
|
||||
<% if !post.archive_file_multiples.blank? %>
|
||||
<ol>
|
||||
<% post.archive_file_multiples.asc(:_id).each do | afile | %>
|
||||
<% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %>
|
||||
<li>
|
||||
<%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %>
|
||||
<%= post.get_file_icon(afile.file.url) %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</ol>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
en:
|
||||
|
||||
archive:
|
||||
show_lang: Language
|
||||
download: Download
|
||||
archive: Archive
|
||||
Title: Title
|
||||
Files: Files
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
zh_tw:
|
||||
|
||||
archive:
|
||||
show_lang: 呈現語系
|
||||
download: 檔案下載
|
||||
archive: 檔案室
|
||||
Title: 標題
|
||||
Files: 檔案
|
||||
|
|
|
@ -14,12 +14,14 @@ module Archive
|
|||
front_end do
|
||||
app_page 'archive_files' do
|
||||
frontend_i18n "archive.frontend.archive"
|
||||
style ["1","2"]
|
||||
end
|
||||
end
|
||||
|
||||
category ["ArchiveFileCategory"]
|
||||
# category ["ArchiveFileCategory"]
|
||||
|
||||
authorizable
|
||||
categorizable
|
||||
taggable
|
||||
|
||||
widgets do
|
||||
|
@ -35,7 +37,7 @@ module Archive
|
|||
|
||||
customize_widget "index" do
|
||||
widget_i18n "archive.widget.index"
|
||||
style ["1"]
|
||||
style ["1","2"]
|
||||
end
|
||||
|
||||
customize_widget "archive_search_block" do
|
||||
|
@ -50,7 +52,8 @@ module Archive
|
|||
side_bar do
|
||||
head_label_i18n 'archive.archive',:icon_class=>"icons-archive"
|
||||
available_for [:admin,:guest,:manager,:sub_manager]
|
||||
active_for_controllers ({:private=>['archive_file_categorys','archive_files'],:public=>['panel/archive/back_end/tags']})
|
||||
# active_for_controllers ({:private=>['archive_file_categorys','archive_files'],:public=>['panel/archive/back_end/tags']})
|
||||
active_for_controllers ({:private=>['archive_file_categorys','archive_files','module_tags', 'categories']})
|
||||
active_for_object_auth ['ArchiveFileCategory']
|
||||
|
||||
head_link_path "panel_archive_back_end_archive_files_path"
|
||||
|
@ -66,19 +69,15 @@ module Archive
|
|||
:active_for_action=>{:archive_files=>:new},
|
||||
:available_for => [:sub_manager]
|
||||
context_link 'categories',
|
||||
:link_path=>"panel_archive_back_end_archive_file_categorys_path" ,
|
||||
:link_path=>"admin_module_app_categories_path(get_module_app)" ,
|
||||
:priority=>3,
|
||||
:active_for_action=>{:archive_file_categorys=>:index},
|
||||
:active_for_category => 'Archive',
|
||||
:available_for => [:manager]
|
||||
context_link 'tags',
|
||||
:link_path=>"admin_module_tags_path(module_app_id: get_module_app)" ,
|
||||
:priority=>4,
|
||||
:active_for_tag => 'Archive',
|
||||
:available_for => [:manager]
|
||||
context_link 'module_authorization',
|
||||
:link_path=>"admin_authorizations_path(get_module_app.key)",
|
||||
:priority=>5,
|
||||
:available_for => [:manager]
|
||||
|
||||
end
|
||||
end
|
||||
|
|
63
vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css
vendored
Executable file → Normal file
63
vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css
vendored
Executable file → Normal file
|
@ -1,69 +1,90 @@
|
|||
/* General style with default layout */
|
||||
.o-links {}
|
||||
.o-links-group {
|
||||
.o-links .o-links-group {
|
||||
margin: 20px 0 0 0;
|
||||
padding: 20px 0 0 0;
|
||||
border-top: dashed 1px #EEE;
|
||||
}
|
||||
.o-links-group:first-child {
|
||||
.o-links .o-links-group:first-child {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
.o-links-category {
|
||||
.o-links .o-links-category {
|
||||
padding-bottom: 16px;
|
||||
border-bottom: solid 2px #CCC;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.o-links-content {}
|
||||
.o-links-content > ul {
|
||||
.o-links .o-links-content {}
|
||||
.o-links .o-links-content > ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.o-links-content > ul > li {}
|
||||
.o-links-list {}
|
||||
.o-links-list > ul {}
|
||||
.o-links-list > ul > li {
|
||||
.o-links .o-links-content > ul > li {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.o-links .o-links-list {}
|
||||
.o-links .o-links-list > ul {}
|
||||
.o-links .o-links-list > ul > li {
|
||||
padding: 10px 0 0 0;
|
||||
margin: 10px 0 0 0;
|
||||
border-top: solid 1px #eee;
|
||||
}
|
||||
.o-links-list > ul > li:first-child {
|
||||
.o-links .o-links-list > ul > li:first-child {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
.o-links-title {}
|
||||
.o-links-link {
|
||||
.o-links .o-links-title {}
|
||||
.o-links .o-links-link {
|
||||
font-weight: bold;
|
||||
}
|
||||
.o-links-link:hover {}
|
||||
.o-links-description {}
|
||||
.o-links .o-links-link:hover {}
|
||||
.o-links .o-links-description {
|
||||
margin: 12px 0;
|
||||
font-size: 0.85em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.o-links .o-links-hot {
|
||||
background-color: #D83131;
|
||||
border-radius: 3px;
|
||||
color: #FFFFFF;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
line-height: 20px;
|
||||
margin: 0 0 0 8px;
|
||||
padding: 0 4px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Tag list */
|
||||
.o-links-tag-list {
|
||||
.o-links .o-links-tag-list {
|
||||
margin: 0 0 16px 0;
|
||||
}
|
||||
.o-links-tag-list ul {
|
||||
.o-links .o-links-tag-list ul {
|
||||
margin: 0 -4px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.o-links-tag-list ul:after {
|
||||
.o-links .o-links-tag-list ul:after {
|
||||
content: ".";
|
||||
clear: both;
|
||||
display: block;
|
||||
height: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.o-links-tag-list li {
|
||||
.o-links .o-links-tag-list li {
|
||||
float: left;
|
||||
margin: 0 4px 8px 4px;
|
||||
}
|
||||
.o-links-tag {
|
||||
.o-links .o-links-tag {
|
||||
display: block;
|
||||
border: solid 1px #ccc;
|
||||
padding: 2px 6px;
|
||||
padding: 4px;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
.o-links-tag:hover {}
|
||||
.o-links .o-links-tag:hover {}
|
|
@ -1,50 +1,68 @@
|
|||
class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
|
||||
include OrbitControllerLib::DivisionForDisable
|
||||
# include OrbitControllerLib::DivisionForDisable
|
||||
# before_filter :for_app_manager,:except => [:index,:show]
|
||||
|
||||
before_filter :force_order_for_visitor,:only=>[:index]
|
||||
before_filter :force_order_for_user,:except => [:index]
|
||||
|
||||
before_filter :for_app_sub_manager,:except => [:index]
|
||||
before_filter :only => [ :new,:edit,:update,:create] do |controller|
|
||||
controller.get_categorys('WebLinkCategory')
|
||||
# before_filter :only => [ :new,:edit,:update,:create] do |controller|
|
||||
# controller.get_categorys('WebLinkCategory')
|
||||
# end
|
||||
|
||||
before_filter :only => [ :new, :create, :edit, :update ] do |controller|
|
||||
@categories = get_categories_for_form
|
||||
end
|
||||
|
||||
def index
|
||||
|
||||
get_categorys("WebLinkCategory",params[:web_link_category_id])
|
||||
@filter = params[:filter]
|
||||
new_filter = params[:new_filter]
|
||||
|
||||
if @filter && params[:clear]
|
||||
@filter.delete(params[:type])
|
||||
elsif @filter && new_filter
|
||||
if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
|
||||
@filter[new_filter[:type]].delete(new_filter[:id].to_s)
|
||||
elsif @filter.has_key?(new_filter[:type])
|
||||
@filter[new_filter[:type]] << new_filter[:id].to_s
|
||||
else
|
||||
@filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
|
||||
end
|
||||
elsif new_filter
|
||||
@filter = {new_filter[:type] => [new_filter[:id].to_s]}
|
||||
end
|
||||
@web_link_categories = get_categories_for_index("WebLinkCategory")
|
||||
@web_link_category_ids = @web_link_categories.collect{|t| t.id.to_s} + [nil]
|
||||
|
||||
# @web_links = WebLink.search(params[:category_id])
|
||||
#@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered_web_links : WebLink.all.page(params[:page]).per(10)
|
||||
@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered("web_link",:web_link_category_id.in => @web_link_category_ids) : get_viewable("web_link",:web_link_category_id.in => @web_link_category_ids)
|
||||
|
||||
@tags = get_tags
|
||||
@categories = get_categories_for_index
|
||||
@statuses = get_statuses
|
||||
category_ids = @categories.collect{|t| t.id}
|
||||
|
||||
@web_links = get_sorted_and_filtered("web_link", :category_id.in => category_ids)
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.js { }
|
||||
format.xml { render :xml => @web_links }
|
||||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
# def index
|
||||
|
||||
# get_categorys("WebLinkCategory",params[:web_link_category_id])
|
||||
# @filter = params[:filter]
|
||||
# new_filter = params[:new_filter]
|
||||
|
||||
# if @filter && params[:clear]
|
||||
# @filter.delete(params[:type])
|
||||
# elsif @filter && new_filter
|
||||
# if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
|
||||
# @filter[new_filter[:type]].delete(new_filter[:id].to_s)
|
||||
# elsif @filter.has_key?(new_filter[:type])
|
||||
# @filter[new_filter[:type]] << new_filter[:id].to_s
|
||||
# else
|
||||
# @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
|
||||
# end
|
||||
# elsif new_filter
|
||||
# @filter = {new_filter[:type] => [new_filter[:id].to_s]}
|
||||
# end
|
||||
# @web_link_categories = get_categories_for_index("WebLinkCategory")
|
||||
# @web_link_category_ids = @web_link_categories.collect{|t| t.id.to_s} + [nil]
|
||||
|
||||
# # @web_links = WebLink.search(params[:category_id])
|
||||
# #@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered_web_links : WebLink.all.page(params[:page]).per(10)
|
||||
# @web_links = (params[:sort] || @filter) ? get_sorted_and_filtered("web_link",:web_link_category_id.in => @web_link_category_ids) : get_viewable("web_link",:web_link_category_id.in => @web_link_category_ids)
|
||||
|
||||
# @tags = get_tags
|
||||
|
||||
# respond_to do |format|
|
||||
# format.html # index.html.erb
|
||||
# format.xml { render :xml => @web_links }
|
||||
# format.js
|
||||
# end
|
||||
# end
|
||||
|
||||
# GET /web_links/1
|
||||
# GET /web_links/1.xml
|
||||
def show
|
||||
|
@ -58,7 +76,13 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
|
|||
# GET /web_links/new
|
||||
# GET /web_links/new.xml
|
||||
def new
|
||||
if(session[:in_validate_object].blank?)
|
||||
@web_link = WebLink.new
|
||||
else
|
||||
@web_link = session[:in_validate_object]
|
||||
session[:in_validate_object] = {}
|
||||
end
|
||||
|
||||
@tags = get_tags
|
||||
|
||||
respond_to do |format|
|
||||
|
@ -70,8 +94,12 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController
|
|||
# GET /web_links/1/edit
|
||||
def edit
|
||||
@web_link = WebLink.find(params[:id])
|
||||
if !current_user.admin?
|
||||
redirect_to :action => :index
|
||||
else
|
||||
@tags = get_tags
|
||||
end
|
||||
end
|
||||
|
||||
# POST /web_links
|
||||
# POST /web_links.xml
|
||||
|
|
|
@ -17,24 +17,45 @@ class Panel::WebResource::FrontEnd::WebLinksController < OrbitWidgetController
|
|||
if @item.frontend_data_count
|
||||
@page_num = @item.frontend_data_count
|
||||
else
|
||||
@page_num = 0
|
||||
@page_num = 4
|
||||
end
|
||||
|
||||
date_now = Time.now
|
||||
|
||||
@archive_file_categorys = WebLinkCategory.all
|
||||
|
||||
# @web_link_categorys = get_categories_for_index
|
||||
if !params[:category_id].blank?
|
||||
@web_links = WebLink.all.can_display.any_in(:web_link_category_id => params[:category_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
@web_link_categorys = WebLinkCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
|
||||
elsif !params[:tag_id].blank?
|
||||
@web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
|
||||
get_categorys
|
||||
@web_link_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
|
||||
else
|
||||
@web_links = WebLink.all.can_display.merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
@web_link_categorys = @module_app.categories.enabled
|
||||
end
|
||||
|
||||
@web_link_datas = Array.new
|
||||
|
||||
@web_link_categorys.each do |wlcg|
|
||||
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at )
|
||||
elsif !params[:category_id].blank?
|
||||
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id]).desc( :is_top, :created_at )
|
||||
elsif !params[:tag_id].blank?
|
||||
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at )
|
||||
else
|
||||
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id).desc( :is_top, :created_at )
|
||||
end
|
||||
|
||||
web_link_datas = Array.new
|
||||
|
||||
@web_links.each do |wl|
|
||||
web_link_datas << {
|
||||
"title" => wl.title,
|
||||
"is_hot" => (!wl.is_hot.blank? ? '1' : ''),
|
||||
"context" => wl.context,
|
||||
"url" => wl.url
|
||||
} if !wl.blank?
|
||||
end
|
||||
|
||||
@web_link_datas << { "title" => wlcg.title, "web_links" => web_link_datas } if !@web_links.blank?
|
||||
|
||||
get_categorys
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController
|
||||
|
||||
def initialize
|
||||
super
|
||||
@app_title = 'web_resource'
|
||||
|
@ -30,14 +31,38 @@ class Panel::WebResource::Widget::WebLinksController < OrbitWidgetController
|
|||
date_now = Time.now
|
||||
|
||||
if !params[:category_id].blank?
|
||||
@web_links = WebLink.all.can_display.any_in(:web_link_category_id => params[:category_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
@web_link_categorys = WebLinkCategory.any_in(:_id => params[:category_id]).excludes('disable' => true)
|
||||
elsif !params[:tag_id].blank?
|
||||
@web_links = WebLink.all.can_display.any_in(:tagged_ids => params[:tag_id]).merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
get_categorys
|
||||
@web_link_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id])
|
||||
else
|
||||
@web_links = WebLink.all.can_display.merge(WebLinkCategory.excludes('disable' => true)).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
get_categorys
|
||||
@web_link_categorys = @module_app.categories.enabled
|
||||
end
|
||||
|
||||
@web_link_datas = Array.new
|
||||
|
||||
@web_link_categorys.each do |wlcg|
|
||||
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
elsif !params[:category_id].blank?
|
||||
@web_links = WebLink.all.can_display.where(:category_id.in => [wlcg.id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
elsif !params[:tag_id].blank?
|
||||
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
else
|
||||
@web_links = WebLink.all.can_display.where(:category_id => wlcg.id).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
end
|
||||
|
||||
web_link_datas = Array.new
|
||||
|
||||
@web_links.each do |wl|
|
||||
web_link_datas << {
|
||||
"title" => wl.title,
|
||||
"is_hot" => (!wl.is_hot.blank? ? '1' : ''),
|
||||
"context" => wl.context,
|
||||
"url" => wl.url
|
||||
} if !wl.blank?
|
||||
end
|
||||
|
||||
@web_link_datas << { "title" => wlcg.title, "web_links" => web_link_datas } if !@web_links.blank?
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
# encoding: utf-8
|
||||
|
||||
class WebLink
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include Mongoid::MultiParameterAttributes
|
||||
include Sunspot::Mongo
|
||||
|
||||
include OrbitCategory::Categorizable
|
||||
include OrbitModel::LanguageRestrict
|
||||
include OrbitModel::Status
|
||||
include OrbitModel::TimeFrame
|
||||
include OrbitTag::Taggable
|
||||
|
||||
field :title, localize: true
|
||||
|
@ -14,9 +16,9 @@ class WebLink
|
|||
|
||||
field :url, localize: true
|
||||
field :create_user_id
|
||||
field :update_user_id
|
||||
field :update_user_id, :class_name => "User"
|
||||
|
||||
belongs_to :web_link_category
|
||||
# belongs_to :web_link_category
|
||||
|
||||
before_save :clean_tags
|
||||
|
||||
|
|
|
@ -1,112 +1,152 @@
|
|||
<div id= "poststuff">
|
||||
<% # encoding: utf-8 %>
|
||||
<% content_for :page_specific_css do %>
|
||||
<%= stylesheet_link_tag "lib/main-forms" %>
|
||||
<%= stylesheet_link_tag "lib/fileupload" %>
|
||||
<% end %>
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
|
||||
<% end %>
|
||||
|
||||
<%= f.error_messages %>
|
||||
|
||||
<!--Widget start-->
|
||||
<!-- Input Area -->
|
||||
<div class="input-area">
|
||||
|
||||
<div id="sub-wiget">
|
||||
<!-- Module Tabs -->
|
||||
<div class="nav-name"><strong><%= t(:module) %></strong></div>
|
||||
<ul class="nav nav-pills module-nav">
|
||||
<li></li>
|
||||
<li class="active">
|
||||
<a href="#basic" data-toggle="tab"><%= t(:basic) %></a>
|
||||
</li>
|
||||
<% if show_form_status_field(@web_link) %>
|
||||
<li>
|
||||
<a href="#status" data-toggle="tab"><%= t(:status) %></a>
|
||||
</li>
|
||||
<% end %>
|
||||
<li>
|
||||
<a href="#tag" data-toggle="tab"><%= t(:tags) %></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div id="widget-status" class="widget-box widget-size-300">
|
||||
<div class="widget-action clear tip" title="Setting the announcement state">
|
||||
<a class="action"><i class="icon-exclamation-sign icon-white"></i></a>
|
||||
</div>
|
||||
<h3 class="widget-title"><i class="icons-star"></i><%= t(:status) %></h3>
|
||||
<div class="widget-content clear">
|
||||
<!-- Module -->
|
||||
<div class="tab-content module-area">
|
||||
|
||||
<!-- Basic Module -->
|
||||
<div class="tab-pane fade in active" id="basic">
|
||||
|
||||
<!-- Category -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:category) %></label>
|
||||
<div class="controls">
|
||||
<%= content_tag :label,:class => "checkbox inline" do -%>
|
||||
<%= f.check_box :is_top %>
|
||||
<%= t('top') %>
|
||||
<% end -%>
|
||||
<%= content_tag :label,:class => "checkbox inline" do -%>
|
||||
<%= f.check_box :is_hot %>
|
||||
<%= t('hot') %>
|
||||
<% end -%>
|
||||
<%= content_tag :label,:class => "checkbox inline" do -%>
|
||||
<%= f.check_box :is_hidden %>
|
||||
<%= t('hide') %>
|
||||
<% end -%>
|
||||
</div>
|
||||
<%= f.select :category_id, @categories.collect{|t| [ t.title, t.id ]} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="widget-tags" class="widget-box widget-size-300">
|
||||
<div class="widget-action clear tip" title="Setting">
|
||||
<a class="action"><i class="icon-cog icon-white"></i></a>
|
||||
</div>
|
||||
<h3 class="widget-title"><i class="icons-tag"></i><%= t('nccu.tags') %></h3>
|
||||
<div class="widget-content clear form-horizontal">
|
||||
|
||||
<!-- Status Module -->
|
||||
<% if show_form_status_field(@web_link) %>
|
||||
<div class="tab-pane fade" id="status">
|
||||
|
||||
<!-- Status -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:status) %></label>
|
||||
<div class="controls" data-toggle="buttons-checkbox">
|
||||
<label class="checkbox inline btn <%= 'active' if @web_link.is_top? %>">
|
||||
<%= f.check_box :is_top %> <%= t(:top) %>
|
||||
</label>
|
||||
<label class="checkbox inline btn <%= 'active' if @web_link.is_hot? %>">
|
||||
<%= f.check_box :is_hot %> <%= t(:hot) %>
|
||||
</label>
|
||||
<label class="checkbox inline btn <%= 'active' if @web_link.is_hidden? %>">
|
||||
<%= f.check_box :is_hidden %> <%= t(:hide) %>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<!-- Tag Module -->
|
||||
<div class="tab-pane fade" id="tag">
|
||||
|
||||
<!-- Tag -->
|
||||
<div class="control-group">
|
||||
<label class="control-label muted"><%= t(:tags) %></label>
|
||||
<div class="controls" data-toggle="buttons-checkbox">
|
||||
<% @tags.each do |tag| %>
|
||||
<%= content_tag :label,:class => "checkbox inline" do -%>
|
||||
<%= check_box_tag 'web_link[tag_ids][]', tag.id, @web_link.tag_ids.include?(tag.id)%>
|
||||
<%= tag.name %>
|
||||
<label class="checkbox inline btn <%= 'active' if @web_link.tag_ids.include?(tag.id) %>">
|
||||
<%= check_box_tag 'web_link[tag_ids][]', tag.id, @web_link.tag_ids.include?(tag.id) %> <%= tag.name %>
|
||||
<%= hidden_field_tag 'web_link[tag_ids][]', '' %>
|
||||
<% end %>
|
||||
</label>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--Wiget End-->
|
||||
<!--Post Start-->
|
||||
|
||||
<div id="post-body">
|
||||
<div id="post-body-content" class="clear">
|
||||
|
||||
<%= f.label :category ,t(:category)%>
|
||||
<%= f.select :web_link_category_id, @web_link_categorys.collect {|t| [ t.title, t.id ]} %>
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<!-- Language Tabs -->
|
||||
<div class="nav-name"><strong><%= t(:language) %></strong></div>
|
||||
<ul class="nav nav-pills language-nav">
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<li <%= ( i == 0 ) ? "class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||
<li class="<%= 'active' if i == 0 %>">
|
||||
<a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<!-- Language -->
|
||||
<div class="tab-content language-area">
|
||||
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
|
||||
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
<div class="title">
|
||||
<%= f.label :name , t('nccu.link_name') %>
|
||||
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
|
||||
|
||||
<!-- Title-->
|
||||
<div class="control-group input-title">
|
||||
<label class="control-label muted"><%= t(:title) %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :title_translations do |f| %>
|
||||
<%= I18nVariable.from_locale(locale) %>
|
||||
<%= f.text_field locale, :class=>'post-title', :value => (@web_link.title_translations[locale] rescue nil) %>
|
||||
<%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@web_link.title_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="title">
|
||||
<%= f.label :describe, t(:description) %>
|
||||
<!-- Context-->
|
||||
<div class="control-group input-title">
|
||||
<label class="control-label muted"><%= t(:description) %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :context_translations do |f| %>
|
||||
<%= I18nVariable.from_locale(locale) %>
|
||||
<%= f.text_area locale, :style=>"width:100%", :value => (@web_link.context_translations[locale] rescue nil) %>
|
||||
<%= f.text_area locale, rows: 5, class: "input-block-level", value: (@web_link.context_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="title">
|
||||
<%= f.label :url , t(:url) %>
|
||||
<!-- Url-->
|
||||
<div class="control-group input-title">
|
||||
<label class="control-label muted"><%= t(:url) %></label>
|
||||
<div class="controls">
|
||||
<%= f.fields_for :url_translations do |f| %>
|
||||
<%= I18nVariable.from_locale(locale) %>
|
||||
<%= f.text_field locale, :class=>'post-title', :value => (@web_link.url_translations[locale] rescue nil) %>
|
||||
<%= f.text_field locale, class: "input-block-level", placeholder: t(:url), value: (@web_link.url_translations[locale] rescue nil) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--Post End-->
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Form Actions -->
|
||||
<div class="form-actions">
|
||||
<%= f.submit t('submit'), :class=>'btn btn-primary' %>
|
||||
<%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %>
|
||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
||||
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
|
||||
</div>
|
||||
</div>
|
|
@ -1,5 +1,5 @@
|
|||
<h1><%= t('web_link.editing_web_resource') %></h1>
|
||||
|
||||
<%= form_for @web_link, :url => panel_web_resource_back_end_web_link_path(@web_link), :html => {:class => 'clear'} do |f| %>
|
||||
<%= render :partial => 'form', :locals => {:f => f} %>
|
||||
<%= form_for @web_link, url: panel_web_resource_back_end_web_link_path(@web_link), html: {class: "form-horizontal main-forms previewable"} do |f| %>
|
||||
<fieldset>
|
||||
<%= render partial: 'form', locals: {f: f} %>
|
||||
</fieldset>
|
||||
<% end %>
|
|
@ -1,22 +1,49 @@
|
|||
<%= render 'filter' %>
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="span1"></th>
|
||||
<th class="span1"></th>
|
||||
<th class="span2"></th>
|
||||
<th class="span3"></th>
|
||||
<th class="span2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tbody_web_links" class="sort-holder">
|
||||
<%= render :partial => 'web_link', :collection => @web_links %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% set_default_index do
|
||||
objects @web_links
|
||||
filterable
|
||||
sortable
|
||||
quick_edit_link type: 'edit',
|
||||
link: 'edit_panel_web_resource_back_end_web_link_path'
|
||||
quick_edit_link type: 'detail'
|
||||
quick_edit_link type: 'delete',
|
||||
link: 'panel_web_resource_back_end_web_link_path'
|
||||
field type: 'status',
|
||||
db_field: @statuses,
|
||||
translation: 'status',
|
||||
hide: 'phone',
|
||||
sort: 'status',
|
||||
header_class: 'span2'
|
||||
field type: 'associated',
|
||||
associated_value: 'title',
|
||||
db_field: 'category',
|
||||
translation: 'category',
|
||||
hide: 'phone',
|
||||
sort: 'category',
|
||||
header_class: 'span2'
|
||||
field type: 'field',
|
||||
db_field: 'title',
|
||||
translation: 'title',
|
||||
sort: 'title',
|
||||
link: 'panel_web_resource_front_end_web_link_path',
|
||||
quick_edit: true,
|
||||
header_class: 'span5'
|
||||
field type: 'tags',
|
||||
db_field: 'tags',
|
||||
translation: 'tags',
|
||||
hide: 'all',
|
||||
sort: 'tags'
|
||||
filter_field type: 'array',
|
||||
values: @statuses,
|
||||
translation: 'status'
|
||||
filter_field type: 'objects',
|
||||
values: @categories,
|
||||
translation: 'category',
|
||||
object_field: 'title'
|
||||
filter_field type: 'objects',
|
||||
values: @tags,
|
||||
translation: 'tags',
|
||||
object_field: 'name'
|
||||
footer link: 'new_panel_web_resource_back_end_web_link_path'
|
||||
end %>
|
||||
|
||||
<div class="form-actions form-fixed pagination-right">
|
||||
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t(:add), new_panel_web_resource_back_end_web_link_path, :class => 'btn btn-primary pull-right' if (is_manager? rescue nil) %>
|
||||
<div id="web_link_pagination" class="paginationFixed">
|
||||
<%= paginate @web_links, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>
|
||||
</div>
|
||||
</div>
|
||||
<%= render 'admin/default_index/index' %>
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
|
||||
<%= flash_messages %>
|
||||
<div id="poststuff">
|
||||
<h1><%= t('web_link.new_web_resource') %></h1>
|
||||
<%= form_for @web_link, :url => panel_web_resource_back_end_web_links_path, :html => {:class => 'clear'} do |f| %>
|
||||
<%= render :partial => 'form', :locals => {:f => f} %>
|
||||
<%= form_for @web_link, url: panel_web_resource_back_end_web_links_path, html: {class: "form-horizontal main-forms previewable"} do |f| %>
|
||||
<fieldset>
|
||||
<%= render partial: 'form', locals: {f: f} %>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
</div>
|
||||
<%#= link_back %>
|
||||
|
||||
|
|
|
@ -4,17 +4,18 @@
|
|||
<div class="o-links-content">
|
||||
<ul>
|
||||
|
||||
<% @web_link_categorys.each do |wlcg| %>
|
||||
<% if wlcg.web_links.count > 0 %>
|
||||
<% @web_link_datas.each do |wlcg| %>
|
||||
|
||||
<li>
|
||||
<h3 class="o-links-category"><%= wlcg.title rescue nil%></h3>
|
||||
<h3 class="o-links-category"><%= wlcg["title"] rescue nil%></h3>
|
||||
<div class="o-links-list">
|
||||
<ul>
|
||||
|
||||
<% wlcg.web_links.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num).each do |post| %>
|
||||
<% wlcg["web_links"].each do |post| %>
|
||||
<li>
|
||||
<%= link_to post.title, post.url, {:target => '_blank', :title => post.title, :class=>"o-links-title"} %>
|
||||
<div class="o-links-description"><%= post.context %></div>
|
||||
<%= link_to post["title"], post["url"], {:target => '_blank', :title => post["title"], :class=>"o-links-title"} %>
|
||||
<% if !post["is_hot"].blank? %><span class="o-links-hot"><%= t('hot')%></span><% end %>
|
||||
<div class="o-links-description"><%= post["context"] %></div>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
|
@ -23,12 +24,11 @@
|
|||
</li>
|
||||
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= paginate @web_links, :param_name => :page_main, :params => {:inner => false}%>
|
||||
<%#= paginate @web_links, :param_name => :page_main, :params => {:inner => false}%>
|
||||
|
||||
<%= stylesheet_link_tag "web_resource/links" %>
|
||||
|
|
|
@ -2,17 +2,18 @@
|
|||
<div class="o-links-content">
|
||||
<ul>
|
||||
|
||||
<% @web_link_categorys.each do |wlcg| %>
|
||||
<% if wlcg.web_links.count > 0 %>
|
||||
<% @web_link_datas.each do |wlcg| %>
|
||||
|
||||
<li>
|
||||
<h3 class="o-links-category"><%= wlcg.title rescue nil%></h3>
|
||||
<h3 class="o-links-category"><%= wlcg["title"] rescue nil%></h3>
|
||||
<div class="o-links-list">
|
||||
<ul>
|
||||
|
||||
<% wlcg.web_links.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num).each do |post| %>
|
||||
<% wlcg["web_links"].each do |post| %>
|
||||
<li>
|
||||
<%= link_to post.title, post.url, {:target => '_blank', :title => post.title, :class=>"o-links-title"} %>
|
||||
<div class="o-links-description"><%= post.context %></div>
|
||||
<%= link_to post["title"], post["url"], {:target => '_blank', :title => post["title"], :class=>"o-links-title"} %>
|
||||
<% if !post["is_hot"].blank? %><span class="o-links-hot"><%= t('hot')%></span><% end %>
|
||||
<div class="o-links-description"><%= post["context"] %></div>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
|
@ -21,7 +22,6 @@
|
|||
</li>
|
||||
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -16,9 +16,8 @@ module WebResource
|
|||
end
|
||||
end
|
||||
|
||||
taggable
|
||||
|
||||
authorizable
|
||||
categorizable
|
||||
taggable
|
||||
|
||||
widgets do
|
||||
|
@ -38,7 +37,7 @@ module WebResource
|
|||
side_bar do
|
||||
head_label_i18n 'link',:icon_class=>"icons-link"
|
||||
available_for [:admin,:guest,:manager,:sub_manager]
|
||||
active_for_controllers ({:private=>['web_links', 'web_link_categorys']})
|
||||
active_for_controllers ({:private=>['web_links', 'web_link_categorys','module_tags', 'categories']})
|
||||
active_for_object_auth ['WebLinkCategory']
|
||||
|
||||
head_link_path "panel_web_resource_back_end_web_links_path"
|
||||
|
@ -54,11 +53,10 @@ module WebResource
|
|||
:priority=>2,
|
||||
:active_for_action=>{:web_links=>:new},
|
||||
:available_for => [:sub_manager]
|
||||
|
||||
context_link 'categories',
|
||||
:link_path=>"panel_web_resource_back_end_web_link_categorys_path" ,
|
||||
:link_path=>"admin_module_app_categories_path(get_module_app)" ,
|
||||
:priority=>3,
|
||||
:active_for_action=>{:web_link_categorys=>:index},
|
||||
:active_for_category => 'WebResource',
|
||||
:available_for => [:manager]
|
||||
|
||||
context_link 'tags',
|
||||
|
@ -66,12 +64,6 @@ module WebResource
|
|||
:priority=>4,
|
||||
:active_for_tag => 'WebResource',
|
||||
:available_for => [:manager]
|
||||
|
||||
context_link 'module_authorization',
|
||||
:link_path=>"admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {title: 'WebResource'}))",
|
||||
:priority=>6,
|
||||
:active_for_app_auth => 'web_resource',
|
||||
:available_for => [:admin]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Reference in New Issue