From 5d3bc07488d5d3aa8258ea521b031a28001de8da Mon Sep 17 00:00:00 2001 From: Spen Date: Mon, 22 Jul 2013 14:59:33 +0800 Subject: [PATCH] archive and web_resouce for new ui Conflicts: app/assets/stylesheets/lib/main-forms.css --- app/assets/javascripts/lib/orbit_js_1.0.1.js | 511 ++++++++++++++++++ .../assets/stylesheets/archive/archives.css | 107 ++-- .../back_end/archive_files_controller.rb | 88 +-- .../front_end/archive_files_controller.rb | 71 ++- .../widget/archive_files_controller.rb | 88 ++- .../archive/app/models/archive_file.rb | 14 +- .../app/models/archive_file_category.rb | 20 +- .../back_end/archive_files/_form.html.erb | 289 +++++----- .../archive_files/_form_file.html.erb | 112 ++-- .../back_end/archive_files/edit.html.erb | 10 +- .../back_end/archive_files/index.html.erb | 70 ++- .../back_end/archive_files/new.html.erb | 12 +- .../front_end/archive_files/_index.html.erb | 52 +- .../front_end/archive_files/show.html.erb | 2 +- .../widget/archive_files/_index.html.erb | 55 +- .../archive/config/locales/en.yml | 2 + .../archive/config/locales/zh_tw.yml | 2 + vendor/built_in_modules/archive/init.rb | 19 +- .../assets/stylesheets/web_resource/links.css | 63 ++- .../back_end/web_links_controller.rb | 92 ++-- .../front_end/web_links_controller.rb | 43 +- .../widget/web_links_controller.rb | 39 +- .../web_resource/app/models/web_link.rb | 8 +- .../back_end/web_links/_form.html.erb | 244 +++++---- .../back_end/web_links/edit.html.erb | 10 +- .../back_end/web_links/index.html.erb | 69 ++- .../back_end/web_links/new.html.erb | 13 +- .../front_end/web_links/index.html.erb | 16 +- .../widget/web_links/_index.html.erb | 14 +- vendor/built_in_modules/web_resource/init.rb | 16 +- 30 files changed, 1531 insertions(+), 620 deletions(-) create mode 100644 app/assets/javascripts/lib/orbit_js_1.0.1.js mode change 100755 => 100644 vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css diff --git a/app/assets/javascripts/lib/orbit_js_1.0.1.js b/app/assets/javascripts/lib/orbit_js_1.0.1.js new file mode 100644 index 00000000..93aceaa3 --- /dev/null +++ b/app/assets/javascripts/lib/orbit_js_1.0.1.js @@ -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('
'); + $('').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 = ''; + $input.wrap('
'); + $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(); +}); \ No newline at end of file diff --git a/vendor/built_in_modules/archive/app/assets/stylesheets/archive/archives.css b/vendor/built_in_modules/archive/app/assets/stylesheets/archive/archives.css index 0b42c7a0..e0aa39d6 100644 --- a/vendor/built_in_modules/archive/app/assets/stylesheets/archive/archives.css +++ b/vendor/built_in_modules/archive/app/assets/stylesheets/archive/archives.css @@ -1,100 +1,117 @@ /* General style with default layout */ .o-archives {} -.o-archives-content {} -.o-archives-group { +.o-archives .o-archives-content {} +.o-archives .o-archives-group { margin: 20px 0 0 0; padding: 20px 0 0 0; border-top: dashed 1px #eee; } -.o-archives-group:first-child { +.o-archives .o-archives-group:first-child { margin: 0; padding: 0; border: 0; } -.o-archives-category { +.o-archives .o-archives-category { padding-bottom: 16px; + margin-bottom: 16px; border-bottom: solid 2px #ccc; font-weight: bold; } -.o-archives-list {} -.o-archives-list ul { +.o-archives .o-archives-list {} +.o-archives .o-archives-list ul { margin: 0; padding: 0; list-style: none; } -.o-archives-list li {} -.o-archives-title { +.o-archives .o-archives-list li {} +.o-archives .o-archives-title { border-left: solid 8px #eee; border-bottom: solid 1px #eee; padding: 0 0 0 16px; + line-height: 2em; } -.o-archives-list-item {} -.o-archives-list-item ol { - list-style-type: decimal; +.o-archives .o-archives-list-item { + padding: 12px 0; } -.o-archives-list-item li { - margin: 0 0 10px 0; +.o-archives .o-archives-list-item ol { + list-style-type: disc; + margin: 0; } -.o-archives-file {} -.o-archives-file:hover {} -.o-archives-file-type { -display: inline-block; -vertical-align: middle; -margin-left: 8px; -padding: 0 4px; -height: 15px; -font-size: 9px; -text-transform: uppercase; -line-height: 15px; -background-color: #999; -color: #FFF; -border-radius: 3px; --webkit-text-size-adjust: none; +.o-archives .o-archives-list-item li { + margin: 0 0 8px 0; +} +.o-archives .o-archives-file { + font-size: 0.85em; +} +.o-archives .o-archives-file:hover {} +.o-archives .o-archives-file-type { + display: inline-block; + vertical-align: top; + margin-left: 8px; + padding: 0 6px; + height: 16px; + font-size: 10px; + text-transform: uppercase; + line-height: 16px; + background-color: #666; + color: #fff; + border-radius: 3px; +} +.o-archives .o-archives-hot { + font-size: 11px; + font-weight: normal; + padding: 0 4px; + display: inline-block; + vertical-align: top; + margin: 0 0 0 8px; + background-color: #D83131; + color: #FFF; } /* Tag list */ -.o-archives-tag-list {} -.o-archives-tag-list ul { +.o-archives .o-archives-tag-list {} +.o-archives .o-archives-tag-list ul { margin: 0 -4px; padding: 0; list-style: none; } -.o-archives-tag-list ul:after { +.o-archives .o-archives-tag-list ul:after { content: "."; clear: both; display: block; height: 0; visibility: hidden; } -.o-archives-tag-list li { +.o-archives .o-archives-tag-list li { float: left; margin: 0 4px 8px 4px; } -.o-archives-tag { +.o-archives .o-archives-tag { display: block; border: solid 1px #ccc; - padding: 2px 6px; + padding: 4px; + font-size: 0.85em; } -.o-archives-tag:hover {} +.o-archives .o-archives-tag:hover {} /* Table layout */ .o-archives.layout-table {} -.o-archives-search { +.o-archives .o-archives-search { overflow: hidden; margin: 0 0 10px 0; } -.o-archives-search label { +.o-archives .o-archives-search label { display: inline-block; margin: 0 8px 0 0; } -.o-archives-search-option { +.o-archives .o-archives-search-option { float: right; } -.o-archives-search-option select { +.o-archives .o-archives-search-option select { width: 80px; } -.o-archives-search-keyword {} -.o-archives-search-keyword input[type=submit] { +.o-archives .o-archives-search-keyword {} +.o-archives .o-archives-search-keyword input[type=submit] { display: inline-block; vertical-align: top; margin: 0 0 0 8px; @@ -112,6 +129,8 @@ border-radius: 3px; .o-archives.layout-table .even td {} .o-archives.layout-table .column-ctrl { text-align: left; + padding: 8px 4px; + font-size: 0.85em; } .o-archives.layout-table .column-ctrl.col-title { width: 30% } .o-archives.layout-table .column-ctrl.col-file {} @@ -121,16 +140,18 @@ border-radius: 3px; font-weight: bold; border: 0; padding: 0; + line-height: 1.2em; } .o-archives.layout-table .o-archives-category { padding: 0; margin: 0; border: 0; + font-weight: normal; } .o-archives.layout-table .o-archives-tag { display: inline-block; margin-bottom: 3px; } -.o-archives.layout-table .o-archives-category { - font-weight: normal; +.o-archives.layout-table .o-archives-list-item { + padding: 0; } \ No newline at end of file diff --git a/vendor/built_in_modules/archive/app/controllers/panel/archive/back_end/archive_files_controller.rb b/vendor/built_in_modules/archive/app/controllers/panel/archive/back_end/archive_files_controller.rb index 79712fbf..10e942a0 100644 --- a/vendor/built_in_modules/archive/app/controllers/panel/archive/back_end/archive_files_controller.rb +++ b/vendor/built_in_modules/archive/app/controllers/panel/archive/back_end/archive_files_controller.rb @@ -1,48 +1,66 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController # before_filter :for_app_manager,:except => [:index,:show] - include OrbitControllerLib::DivisionForDisable + # include OrbitControllerLib::DivisionForDisable before_filter :force_order_for_visitor,:only=>[:index] before_filter :force_order_for_user,:except => [:index] before_filter :for_app_sub_manager,:except => [:index] - before_filter :only => [ :new,:edit,:update,:create] do |controller| - controller.get_categorys('ArchiveFileCategory') + # before_filter :only => [ :new,:edit,:update,:create] do |controller| + # controller.get_categorys('ArchiveFileCategory') + # end + + before_filter :only => [ :new, :create, :edit, :update ] do |controller| + @categories = get_categories_for_form end def index + @tags = get_tags + @categories = get_categories_for_index + @statuses = get_statuses + category_ids = @categories.collect{|t| t.id} - get_categorys("ArchiveFileCategory",params[:archive_file_category_id]) - @filter = params[:filter] - new_filter = params[:new_filter] - - if @filter && params[:clear] - @filter.delete(params[:type]) - elsif @filter && new_filter - if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s) - @filter[new_filter[:type]].delete(new_filter[:id].to_s) - elsif @filter.has_key?(new_filter[:type]) - @filter[new_filter[:type]] << new_filter[:id].to_s - else - @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]}) - end - elsif new_filter - @filter = {new_filter[:type] => [new_filter[:id].to_s]} - end - @archive_filecategories = get_categories_for_index("ArchiveFileCategory") - @archive_file_category_ids = @archive_file_categories.collect{|t| t.id.to_s} + [nil] - - @archive_files = (params[:sort] || @filter) ? get_sorted_and_filtered("archive_file",:archive_file_category_id.in => @archive_file_category_ids) : get_viewable("archive_file",:archive_file_category_id.in => @archive_file_category_ids) - - @tags = get_tags - + @archive_files = get_sorted_and_filtered("archive_file", :category_id.in => category_ids) respond_to do |format| format.html # index.html.erb + format.js { } format.xml { render :xml => @archive_files } - format.js end end + # def index + + # get_categorys("ArchiveFileCategory",params[:archive_file_category_id]) + # @filter = params[:filter] + # new_filter = params[:new_filter] + + # if @filter && params[:clear] + # @filter.delete(params[:type]) + # elsif @filter && new_filter + # if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s) + # @filter[new_filter[:type]].delete(new_filter[:id].to_s) + # elsif @filter.has_key?(new_filter[:type]) + # @filter[new_filter[:type]] << new_filter[:id].to_s + # else + # @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]}) + # end + # elsif new_filter + # @filter = {new_filter[:type] => [new_filter[:id].to_s]} + # end + # @archive_filecategories = get_categories_for_index("ArchiveFileCategory") + # @archive_file_category_ids = @archive_file_categories.collect{|t| t.id.to_s} + [nil] + + # @archive_files = (params[:sort] || @filter) ? get_sorted_and_filtered("archive_file",:archive_file_category_id.in => @archive_file_category_ids) : get_viewable("archive_file",:archive_file_category_id.in => @archive_file_category_ids) + + # @tags = get_tags + + # respond_to do |format| + # format.html # index.html.erb + # format.xml { render :xml => @archive_files } + # format.js + # end + # end + # GET /archive_files/1 # GET /archive_files/1.xml def show @@ -57,7 +75,12 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController # GET /archive_files/new # GET /archive_files/new.xml def new - @archive_file = ArchiveFile.new + if(session[:in_validate_object].blank?) + @archive_file = ArchiveFile.new + else + @archive_file = session[:in_validate_object] + session[:in_validate_object] = {} + end @tags = get_tags @@ -70,8 +93,11 @@ class Panel::Archive::BackEnd::ArchiveFilesController < OrbitBackendController # GET /archive_files/1/edit def edit @archive_file = ArchiveFile.find(params[:id]) - - @tags = get_tags + if !current_user.admin? + redirect_to :action => :index + else + @tags = get_tags + end end # POST /archive_files diff --git a/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb b/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb index 4f684926..64cf054e 100644 --- a/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb +++ b/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb @@ -21,6 +21,7 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController def index @item = Page.find(params[:page_id]) @title = @item.title + @frontend_style = @item.frontend_style if !@item.frontend_data_count.blank? @page_num = @item.frontend_data_count else @@ -28,23 +29,69 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController end date_now = Time.now - @archive_file_categorys = ArchiveFileCategory.all + # @archive_file_categorys = ArchiveFileCategory.all # @archive_files = ArchiveFile.where( :is_hidden => false ).desc(:is_top).page(params[:page]).per(@page_num) - if !params[:category_id].blank? && !params[:tag_id].blank? - @archive_files = @archive_files.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) - @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil - elsif !params[:category_id].blank? - @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) - @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil - elsif !params[:tag_id].blank? - @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) + if !params[:category_id].blank? + @archive_file_categorys = @module_app.categories.enabled.any_in(:_id => params[:category_id]) + @archive_file_category_ids = @module_app.categories.enabled.any_in(:_id => params[:category_id]).collect{|a|a.id} else - @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num) + @archive_file_categorys = @module_app.categories.enabled + @archive_file_category_ids = @module_app.categories.enabled.collect{|a|a.id} end - - get_categorys + if @frontend_style == "1" + + if !params[:category_id].blank? && !params[:tag_id].blank? + @archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num) + # @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil + elsif !params[:category_id].blank? + @archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num) + # @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil + elsif !params[:tag_id].blank? + @archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids,:tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num) + else + @archive_files = ArchiveFile.can_display.where(:category_id.in => @archive_file_category_ids).desc( :is_top ).default_sort(params[:sort]).page( params[:page_main] ).per(@page_num) + end + + elsif @frontend_style == "2" + + @archive_file_datas = Array.new + + @archive_file_categorys.each do |afcg| + + if !params[:category_id].blank? && !params[:tag_id].blank? + @archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]) + elsif !params[:category_id].blank? + @archive_files = ArchiveFile.can_display.where(:category_id.in => [afcg.id]).desc( :is_top ).default_sort(params[:sort]) + elsif !params[:tag_id].blank? + @archive_files = ArchiveFile.can_display.where(:category_id => afcg.id, :tagged_ids.in => params[:tag_id]).desc( :is_top ).default_sort(params[:sort]) + else + @archive_files = ArchiveFile.can_display.where(:category_id => afcg.id).desc( :is_top ).default_sort(params[:sort]) + end + + archive_file_datas = Array.new + + @archive_files.each do |af| + + archive_file_multiple_datas = Array.new + + af.archive_file_multiples.asc(:sort_number).each do | afile | + archive_file_multiple_datas << { + "file_title" => (!afile.file_title.blank? ? afile.file_title : t('archive.download') ) , + "url" => afile.file.url, + "icon" => af.get_file_icon(afile.file.url) + } if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) + end + + archive_file_datas << { "title" => af.title, "is_hot" => (!af.is_hot.blank? ? '1' : ''), "archive_file_multiples" => archive_file_multiple_datas } if !af.archive_file_multiples.blank? and !archive_file_multiple_datas.blank? + end + + @archive_file_datas << { "title" => afcg.title, "archive_files" => archive_file_datas } if !@archive_files.blank? + end + + end + # get_categorys if params[:sort] @archive_files = get_sorted_and_filtered('archive_file', nil, @archive_files) diff --git a/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb b/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb index abfa7d93..426ce383 100644 --- a/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb +++ b/vendor/built_in_modules/archive/app/controllers/panel/archive/widget/archive_files_controller.rb @@ -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 diff --git a/vendor/built_in_modules/archive/app/models/archive_file.rb b/vendor/built_in_modules/archive/app/models/archive_file.rb index 5701d3b1..3e2600bc 100644 --- a/vendor/built_in_modules/archive/app/models/archive_file.rb +++ b/vendor/built_in_modules/archive/app/models/archive_file.rb @@ -1,22 +1,25 @@ # encoding: utf-8 - class ArchiveFile include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes include Mongoid::Sortable + include Sunspot::Mongo + include OrbitCategory::Categorizable + include OrbitModel::LanguageRestrict include OrbitModel::Status + include OrbitModel::TimeFrame include OrbitTag::Taggable - BelongsToCategory = :archive_file_category + # BelongsToCategory = :archive_file_category - PAYMENT_TYPES = @site_valid_locales + # PAYMENT_TYPES = @site_valid_locales field :title, localize: true field :create_user_id - field :update_user_id + field :update_user_id, :class_name => "User" # belongs_to :archive_file_category @@ -31,12 +34,13 @@ class ArchiveFile # searchable do # text :titles do # title_translations.to_a.collect{|t| t[1]} - # end +# end # boolean :frontend_search do # !is_hidden # end # end + def self.search( category_id = nil ) diff --git a/vendor/built_in_modules/archive/app/models/archive_file_category.rb b/vendor/built_in_modules/archive/app/models/archive_file_category.rb index 9942c4da..97fa3900 100644 --- a/vendor/built_in_modules/archive/app/models/archive_file_category.rb +++ b/vendor/built_in_modules/archive/app/models/archive_file_category.rb @@ -4,9 +4,8 @@ class ArchiveFileCategory include Mongoid::Document include Mongoid::Timestamps include OrbitCoreLib::ObjectAuthable - include OrbitCoreLib::ObjectDisable - include Sunspot::Mongo - # include Mongoid::MultiParameterAttributes + include OrbitCoreLib::ObjectDisable + APP_NAME = 'Archive' ObjectAuthTitlesOptions = %W{submit_new fact_check} AfterObjectAuthUrl = '/panel/archive/back_end/archive_file_categorys' @@ -19,21 +18,6 @@ class ArchiveFileCategory has_many :archive_files validates :title, :at_least_one => true - - searchable do - text :titles do - title_translations.to_a.collect{|t| t[1]} - end - - boolean :frontend_search do - !disable - end - - text :files do - archive_files.can_display.collect{|t| t.title_translations.to_a.collect{|t| t[1]}} - end - - end def pp_object diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb index 318ba6b5..69dad760 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb @@ -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 %> - + +
-
+ + + -
-
- -
-

Status

-
-
- <%= f.check_box :is_top %><%= t('top') %> - <%= f.check_box :is_hot %><%= t('hot') %> - <%= f.check_box :is_hidden %><%= t('hide') %> -
-
-
+ +
-
-
- -
-

Tags

-
- <% @tags.each do |tag| %> - <%= check_box_tag 'archive_file[tag_ids][]', tag.id, @archive_file.tag_ids.include?(tag.id)%> - <%= tag.name %> - <% end %> -
-
+ +
-
+ +
+ +
+ <%= f.select :category_id, @categories.collect{|t| [ t.title, t.id ]} %> +
+
+ +
+ +
+ <%= f.text_field :sort_number %> +
+
- - +
-
-
+ + <% if show_form_status_field(@archive_file) %> +
- <%= 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 %> +
+ <% end %> - + +
-
+ +
+ +
+ <% @tags.each do |tag| %> + + <% end %> +
+
- <% @site_valid_locales.each_with_index do |locale, i| %> +
-
"> -
- <%= f.label :title %> - <%= f.fields_for :title_translations do |f| %> - <%= I18nVariable.from_locale(locale) %> - <%= f.text_field locale, :class=>'post-title', :value => (@archive_file.title_translations[locale] rescue nil) %> - <% end %> -
+
-
+ + + - <% end %> + +
-
+ <% @site_valid_locales.each_with_index do |locale, i| %> + +
"> + +
+ +
+ <%= f.fields_for :title_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@archive_file.title_translations[locale] rescue nil) %> + <% end %> +
+
-
+
-
+ <% end %> - - - - - - - - - - - - - - + +
+ +
-
- + + <% if @archive_file && !@archive_file.archive_file_multiples.blank? %> +
+ <% @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 %> +
+
+ <% end %> - <% @archive_file.archive_file_multiples.asc(:_id).each_with_index do |archive_file_multiple, i| %> - <%= f.fields_for :archive_file_multiples, archive_file_multiple do |f| %> - <%= render :partial => 'form_file', :object => archive_file_multiple, :locals => {:f => f, :i => i} %> - <% end %> - <% end %> - -
排序數FileFile Name<%= t('呈現語系')%>
-
- <%= hidden_field_tag 'archive_file_multiple_field_count', @archive_file.archive_file_multiples.count %> - ADD/新增 -
-
+ +
+
+

+ <%= hidden_field_tag 'archive_file_multiple_field_count', @archive_file.archive_file_multiples.count %> + <%= t(:add) %> +

-
- -
- - -
- - - - -
- <%= hidden_field_tag 'page', params[:page] if !params[:page].blank? %> - <%= hidden_field_tag 'filter', params[:filter] %> - <%= f.submit t('submit'), :class=>'btn btn-primary' %> - <%= link_to t('cancel'), get_go_back, :class=>"btn" %> -
- -
+
+
+
+
+ +
+ <%= 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" %> +
<% content_for :page_specific_javascript do %> - <%= javascript_include_tag "archive_form" %> - + <% end %> - diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form_file.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form_file.html.erb index 52f77666..e876d343 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form_file.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form_file.html.erb @@ -1,64 +1,56 @@ -<% # encoding: utf-8 %> +
+ <%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %> +
+ + + + <% @site_valid_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :file_title_translations do |f| %> + <%= f.text_field locale, :class => "input-medium", placeholder: 'File Name', :value => (form_file.file_title_translations[locale] rescue nil) %> + <% end %> + + <% end %> + - " class='list_item'> - -
-
- <%= f.text_field :sort_number %> -
-
- - -
-
- <%= f.file_field :file %> - <%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn', :target => '_blank', :title => t(:view)} ) : '' %> -
-
- - + + + <%= f.text_field :sort_number , :class => "input-mini"%> + -
+ + <%= t('archive.show_lang') %> + + <%= hidden_field_tag 'archive_file[archive_file_multiples_attributes][0][choose_lang][]', '' %> + - <% @site_valid_locales.each_with_index do |locale, i| %> - -
"> - <%#= f.fields_for :i18n_variable, (form_file.new_record? ? form_file.build_i18n_variable : form_file.i18n_variable ) do |f| %> - <%= f.fields_for :file_title_translations do |f| %> -
- -
- <%= f.text_field locale, :class=>'post-file_title', :value => (form_file.file_title_translations[locale] rescue nil) %> -
-
- <% end %> - -
- - <% end %> - -
- - - - <% @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][]', '' %> - - - - - <% if form_file.new_record? %> - - <% else %> - <%= f.hidden_field :id %> - - <%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %> - <% end %> - - - - + + <% if form_file.new_record? %> + + <% else %> + <%= f.hidden_field :id %> + + <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> + <% end %> + +
+
diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/edit.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/edit.html.erb index f2e347cc..2fae5a9e 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/edit.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/edit.html.erb @@ -1,5 +1,5 @@ -

<%= t('archive.editing_archive') %>

- -<%= form_for @archive_file, :url => panel_archive_back_end_archive_file_path(@archive_file), :html => {:class => 'clear'} do |f| %> - <%= render :partial => 'form', :locals => {:f => f} %> -<% end %> +<%= form_for @archive_file, url: panel_archive_back_end_archive_file_path(@archive_file), html: {class: "form-horizontal main-forms previewable"} do |f| %> +
+ <%= render partial: 'form', locals: {f: f} %> +
+<% end %> \ No newline at end of file diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/index.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/index.html.erb index 684a7962..987d0d94 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/index.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/index.html.erb @@ -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 %> - - - - - - - - - - - - - <%= render :partial => 'archive_file', :collection => @archive_files %> - -
- -
- <%= 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) %> -
- <%= paginate @archive_files, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %> -
-
+<%= render 'admin/default_index/index' %> diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/new.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/new.html.erb index dcdaf843..b3ea8160 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/new.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/new.html.erb @@ -1,9 +1,5 @@ - -<%= flash_messages %> -

<%= t('archive_file.new_archive') %>

-<%= 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| %> +
+ <%= render partial: 'form', locals: {f: f} %> +
<% end %> - -<%#= link_back %> - diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/_index.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/_index.html.erb index b5aded49..fe11a15a 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/_index.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/_index.html.erb @@ -1,5 +1,6 @@ <% # encoding: utf-8 %> +<% if @frontend_style == '1' %>
@@ -15,15 +16,19 @@ <% @archive_files.each_with_index do |post,i| %> class="even" <% end %>> -
<%= post.title %>
+ +
<%= post.title %> + <% if !post.is_hot.blank? %><%= t('hot')%><% end %> +
+
<% if !post.archive_file_multiples.blank? %>
    - <% 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) %>
  1. - <%= 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) %>
  2. <% end %> @@ -33,7 +38,7 @@
- <%= post.archive_file_category.title %> + <%= post.category.title if !post.category.blank? %>
<% end %> @@ -42,7 +47,44 @@
-<%= paginate @archive_files, :param_name => :page_main, :params => {:inner => 'false'} %> + <%= paginate @archive_files, :param_name => :page_main, :params => {:inner => 'false'} %> + +<% elsif @frontend_style == '2' %> + +
+
+ <% @archive_file_datas.each do |afcpost| %> +
+

<%= afcpost["title"] %>

+
+
+
    + <% afcpost["archive_files"].each do |post| %> +
  • +

    + <%= post["title"] %> + <% if !post["is_hot"].blank? %><%= t('hot')%><% end %> +

    +
    +
      + <% post["archive_file_multiples"].each do | afile | %> +
    1. + <%= link_to afile["file_title"], afile["url"], {:target => '_blank', :title => afile["file_title"], :class => "o-archives-file"} %> + <%= afile["icon"] %> +
    2. + <% end %> +
    +
    +
  • + <% end %> +
+
+
+ <% end %> +
+
+ +<% end %> <%= stylesheet_link_tag "archive/archives" %> diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/show.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/show.html.erb index fe6994da..dfcc34d0 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/show.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/front_end/archive_files/show.html.erb @@ -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) %>
  • - <%= 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) %>
  • <% end %> diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/widget/archive_files/_index.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/widget/archive_files/_index.html.erb index 9f752f1e..afd39417 100644 --- a/vendor/built_in_modules/archive/app/views/panel/archive/widget/archive_files/_index.html.erb +++ b/vendor/built_in_modules/archive/app/views/panel/archive/widget/archive_files/_index.html.erb @@ -16,7 +16,11 @@ <% @archive_files.each_with_index do |post,i| %> class="even" <% end %>> -
    <%= post.title %>
    + +
    <%= post.title %> + <% if !post.is_hot.blank? %><%= t('hot')%><% end %> +
    +
    <% 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) %>
  • - <%= 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) %>
  • <% end %> @@ -34,7 +38,7 @@
    - <%= post.archive_file_category.title %> + <%= post.category.title if !post.category.blank? %>
    <% end %> @@ -42,57 +46,50 @@
    -
    - <% if !params[:category_id].blank? %> - <%= link_to t(:more_plus), panel_archive_front_end_archive_files_path(:category_id => @part.category) %> - <% else %> - <%= link_to t(:more_plus), panel_archive_front_end_archive_files_path %> - <% end %> -
    + <% elsif @widget_style == '2' %>
    - <% @archive_file_categorys.each do |afcpost| %> + <% @archive_file_datas.each do |afcpost| %>
    - <% if @category_id.blank? %> -

    <%= afcpost.title %>

    - <% end %> +

    <%= afcpost["title"] %>

      - - <% afcpost.archive_files.can_display.desc( :is_top ).each do |post| %> + <% afcpost["archive_files"].each do |post| %>
    • -

      <%= post.title %>

      +

      + <%= post["title"] %> + <% if !post["is_hot"].blank? %><%= t('hot')%><% end %> +

      - - <% if !post.archive_file_multiples.blank? %>
        - <% post.archive_file_multiples.asc(:_id).each do | afile | %> - <% if afile.file.file and afile.choose_lang_display(I18n.locale.to_s) %> + <% post["archive_file_multiples"].each do | afile | %>
      1. - <%= link_to afile.file_title, afile.file.url, {:target => '_blank', :title => afile.file_title, :class => "o-archives-file"} %> - <%= post.get_file_icon(afile.file.url) %> + <%= link_to afile["file_title"], afile["url"], {:target => '_blank', :title => afile["file_title"], :class => "o-archives-file"} %> + <%= afile["icon"] %>
      2. - <% end %> <% end %>
      - <% end %> -
    • <% end %> -
    - <% end %> -
    <% end %> + +
    +<% if !params[:category_id].blank? %> + <%= link_to t(:more_plus), panel_archive_front_end_archive_files_path(:category_id => @part.category) %> +<% else %> + <%= link_to t(:more_plus), panel_archive_front_end_archive_files_path %> + <% end %> +
    diff --git a/vendor/built_in_modules/archive/config/locales/en.yml b/vendor/built_in_modules/archive/config/locales/en.yml index d108c4ed..13e9607a 100644 --- a/vendor/built_in_modules/archive/config/locales/en.yml +++ b/vendor/built_in_modules/archive/config/locales/en.yml @@ -1,6 +1,8 @@ en: archive: + show_lang: Language + download: Download archive: Archive Title: Title Files: Files diff --git a/vendor/built_in_modules/archive/config/locales/zh_tw.yml b/vendor/built_in_modules/archive/config/locales/zh_tw.yml index eeb190b5..d81d1386 100644 --- a/vendor/built_in_modules/archive/config/locales/zh_tw.yml +++ b/vendor/built_in_modules/archive/config/locales/zh_tw.yml @@ -1,6 +1,8 @@ zh_tw: archive: + show_lang: 呈現語系 + download: 檔案下載 archive: 檔案室 Title: 標題 Files: 檔案 diff --git a/vendor/built_in_modules/archive/init.rb b/vendor/built_in_modules/archive/init.rb index c8efa984..bcb963bb 100644 --- a/vendor/built_in_modules/archive/init.rb +++ b/vendor/built_in_modules/archive/init.rb @@ -12,14 +12,16 @@ module Archive update_info 'some update_info' front_end do - app_page 'archive_files' do + app_page 'archive_files' do frontend_i18n "archive.frontend.archive" + style ["1","2"] end end - category ["ArchiveFileCategory"] + # category ["ArchiveFileCategory"] authorizable + categorizable taggable widgets do @@ -35,7 +37,7 @@ module Archive customize_widget "index" do widget_i18n "archive.widget.index" - style ["1"] + style ["1","2"] end customize_widget "archive_search_block" do @@ -50,7 +52,8 @@ module Archive side_bar do head_label_i18n 'archive.archive',:icon_class=>"icons-archive" available_for [:admin,:guest,:manager,:sub_manager] - active_for_controllers ({:private=>['archive_file_categorys','archive_files'],:public=>['panel/archive/back_end/tags']}) + # active_for_controllers ({:private=>['archive_file_categorys','archive_files'],:public=>['panel/archive/back_end/tags']}) + active_for_controllers ({:private=>['archive_file_categorys','archive_files','module_tags', 'categories']}) active_for_object_auth ['ArchiveFileCategory'] head_link_path "panel_archive_back_end_archive_files_path" @@ -66,19 +69,15 @@ module Archive :active_for_action=>{:archive_files=>:new}, :available_for => [:sub_manager] context_link 'categories', - :link_path=>"panel_archive_back_end_archive_file_categorys_path" , + :link_path=>"admin_module_app_categories_path(get_module_app)" , :priority=>3, - :active_for_action=>{:archive_file_categorys=>:index}, + :active_for_category => 'Archive', :available_for => [:manager] context_link 'tags', :link_path=>"admin_module_tags_path(module_app_id: get_module_app)" , :priority=>4, :active_for_tag => 'Archive', :available_for => [:manager] - context_link 'module_authorization', - :link_path=>"admin_authorizations_path(get_module_app.key)", - :priority=>5, - :available_for => [:manager] end end diff --git a/vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css b/vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css old mode 100755 new mode 100644 index f6b9561f..cb3882c1 --- a/vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css +++ b/vendor/built_in_modules/web_resource/app/assets/stylesheets/web_resource/links.css @@ -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 {} \ No newline at end of file +.o-links .o-links-tag:hover {} \ No newline at end of file diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb index 0f44cffd..7bc0f8d6 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/back_end/web_links_controller.rb @@ -1,50 +1,68 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController - include OrbitControllerLib::DivisionForDisable + # include OrbitControllerLib::DivisionForDisable # before_filter :for_app_manager,:except => [:index,:show] before_filter :force_order_for_visitor,:only=>[:index] before_filter :force_order_for_user,:except => [:index] before_filter :for_app_sub_manager,:except => [:index] - before_filter :only => [ :new,:edit,:update,:create] do |controller| - controller.get_categorys('WebLinkCategory') + # before_filter :only => [ :new,:edit,:update,:create] do |controller| + # controller.get_categorys('WebLinkCategory') + # end + + before_filter :only => [ :new, :create, :edit, :update ] do |controller| + @categories = get_categories_for_form end def index + @tags = get_tags + @categories = get_categories_for_index + @statuses = get_statuses + category_ids = @categories.collect{|t| t.id} - get_categorys("WebLinkCategory",params[:web_link_category_id]) - @filter = params[:filter] - new_filter = params[:new_filter] - - if @filter && params[:clear] - @filter.delete(params[:type]) - elsif @filter && new_filter - if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s) - @filter[new_filter[:type]].delete(new_filter[:id].to_s) - elsif @filter.has_key?(new_filter[:type]) - @filter[new_filter[:type]] << new_filter[:id].to_s - else - @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]}) - end - elsif new_filter - @filter = {new_filter[:type] => [new_filter[:id].to_s]} - end - @web_link_categories = get_categories_for_index("WebLinkCategory") - @web_link_category_ids = @web_link_categories.collect{|t| t.id.to_s} + [nil] - - # @web_links = WebLink.search(params[:category_id]) - #@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered_web_links : WebLink.all.page(params[:page]).per(10) - @web_links = (params[:sort] || @filter) ? get_sorted_and_filtered("web_link",:web_link_category_id.in => @web_link_category_ids) : get_viewable("web_link",:web_link_category_id.in => @web_link_category_ids) - - @tags = get_tags - + @web_links = get_sorted_and_filtered("web_link", :category_id.in => category_ids) respond_to do |format| format.html # index.html.erb + format.js { } format.xml { render :xml => @web_links } - format.js end end + # def index + + # get_categorys("WebLinkCategory",params[:web_link_category_id]) + # @filter = params[:filter] + # new_filter = params[:new_filter] + + # if @filter && params[:clear] + # @filter.delete(params[:type]) + # elsif @filter && new_filter + # if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s) + # @filter[new_filter[:type]].delete(new_filter[:id].to_s) + # elsif @filter.has_key?(new_filter[:type]) + # @filter[new_filter[:type]] << new_filter[:id].to_s + # else + # @filter.merge!({new_filter[:type] => [new_filter[:id].to_s]}) + # end + # elsif new_filter + # @filter = {new_filter[:type] => [new_filter[:id].to_s]} + # end + # @web_link_categories = get_categories_for_index("WebLinkCategory") + # @web_link_category_ids = @web_link_categories.collect{|t| t.id.to_s} + [nil] + + # # @web_links = WebLink.search(params[:category_id]) + # #@web_links = (params[:sort] || @filter) ? get_sorted_and_filtered_web_links : WebLink.all.page(params[:page]).per(10) + # @web_links = (params[:sort] || @filter) ? get_sorted_and_filtered("web_link",:web_link_category_id.in => @web_link_category_ids) : get_viewable("web_link",:web_link_category_id.in => @web_link_category_ids) + + # @tags = get_tags + + # respond_to do |format| + # format.html # index.html.erb + # format.xml { render :xml => @web_links } + # format.js + # end + # end + # GET /web_links/1 # GET /web_links/1.xml def show @@ -58,7 +76,13 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController # GET /web_links/new # GET /web_links/new.xml def new - @web_link = WebLink.new + if(session[:in_validate_object].blank?) + @web_link = WebLink.new + else + @web_link = session[:in_validate_object] + session[:in_validate_object] = {} + end + @tags = get_tags respond_to do |format| @@ -70,7 +94,11 @@ class Panel::WebResource::BackEnd::WebLinksController < OrbitBackendController # GET /web_links/1/edit def edit @web_link = WebLink.find(params[:id]) - @tags = get_tags + if !current_user.admin? + redirect_to :action => :index + else + @tags = get_tags + end end # POST /web_links diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb index ce972346..91056001 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/front_end/web_links_controller.rb @@ -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 diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb index 648c65d9..1fc3b001 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb @@ -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 diff --git a/vendor/built_in_modules/web_resource/app/models/web_link.rb b/vendor/built_in_modules/web_resource/app/models/web_link.rb index bda3fe25..213e7d02 100644 --- a/vendor/built_in_modules/web_resource/app/models/web_link.rb +++ b/vendor/built_in_modules/web_resource/app/models/web_link.rb @@ -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 diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb index 3522283b..c39b8812 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb @@ -1,112 +1,152 @@ -
    <% # 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 %> - - -
    - -
    -
    - -
    -

    <%= t(:status) %>

    -
    -
    - <%= 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 -%> -
    -
    -
    + +
    -
    -
    - -
    -

    <%= t('nccu.tags') %>

    -
    - <% @tags.each do |tag| %> - <%= content_tag :label,:class => "checkbox inline" do -%> - <%= check_box_tag 'web_link[tag_ids][]', tag.id, @web_link.tag_ids.include?(tag.id)%> - <%= tag.name %> - <%= hidden_field_tag 'web_link[tag_ids][]', '' %> - <% end %> - <% end %> -
    -
    - -
    - - - - + + + -
    -
    - - <%= f.label :category ,t(:category)%> - <%= f.select :web_link_category_id, @web_link_categorys.collect {|t| [ t.title, t.id ]} %> - - - -
    - - <% @site_valid_locales.each_with_index do |locale, i| %> - -
    "> -
    - <%= f.label :name , t('nccu.link_name') %> - <%= f.fields_for :title_translations do |f| %> - <%= I18nVariable.from_locale(locale) %> - <%= f.text_field locale, :class=>'post-title', :value => (@web_link.title_translations[locale] rescue nil) %> - <% end %> -
    + +
    -
    - <%= f.label :describe, t(:description) %> - <%= f.fields_for :context_translations do |f| %> - <%= I18nVariable.from_locale(locale) %> - <%= f.text_area locale, :style=>"width:100%", :value => (@web_link.context_translations[locale] rescue nil) %> - <% end %> -
    + +
    -
    - <%= f.label :url , t(:url) %> - <%= f.fields_for :url_translations do |f| %> - <%= I18nVariable.from_locale(locale) %> - <%= f.text_field locale, :class=>'post-title', :value => (@web_link.url_translations[locale] rescue nil) %> - <% end %> -
    - -
    + +
    + +
    + <%= f.select :category_id, @categories.collect{|t| [ t.title, t.id ]} %> +
    +
    - <% end %> - -
    - -
    - - -
    +
    - -
    - <%= f.submit t('submit'), :class=>'btn btn-primary' %> - <%= link_to t('cancel'), get_go_back, :class=>"btn" %> -
    -
    \ No newline at end of file + + <% if show_form_status_field(@web_link) %> +
    + + +
    + +
    + + + +
    +
    + +
    + <% end %> + + +
    + + +
    + +
    + <% @tags.each do |tag| %> + + <% end %> +
    +
    + +
    + +
    + + + + + + +
    + + <% @site_valid_locales.each_with_index do |locale, i| %> + +
    "> + + +
    + +
    + <%= f.fields_for :title_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t(:title), value: (@web_link.title_translations[locale] rescue nil) %> + <% end %> +
    +
    + + +
    + +
    + <%= f.fields_for :context_translations do |f| %> + <%= f.text_area locale, rows: 5, class: "input-block-level", value: (@web_link.context_translations[locale] rescue nil) %> + <% end %> +
    +
    + + +
    + +
    + <%= f.fields_for :url_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t(:url), value: (@web_link.url_translations[locale] rescue nil) %> + <% end %> +
    +
    + +
    + + <% end %> + + +
    + +
    + + +
    + <%= 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" %> +
    diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb index f2b28516..1b6a4cf9 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/edit.html.erb @@ -1,5 +1,5 @@ -

    <%= t('web_link.editing_web_resource') %>

    - -<%= form_for @web_link, :url => panel_web_resource_back_end_web_link_path(@web_link), :html => {:class => 'clear'} do |f| %> - <%= render :partial => 'form', :locals => {:f => f} %> -<% end %> +<%= form_for @web_link, url: panel_web_resource_back_end_web_link_path(@web_link), html: {class: "form-horizontal main-forms previewable"} do |f| %> +
    + <%= render partial: 'form', locals: {f: f} %> +
    +<% end %> \ No newline at end of file diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb index b7dae0d6..1d3fdc7b 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/index.html.erb @@ -1,22 +1,49 @@ -<%= render 'filter' %> - - - - - - - - - - - - <%= render :partial => 'web_link', :collection => @web_links %> - -
    +<% 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 %> -
    - <%= 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) %> - -
    +<%= render 'admin/default_index/index' %> diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb index 896a363a..73bd91d7 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/new.html.erb @@ -1,10 +1,5 @@ - -<%= flash_messages %> -
    -

    <%= t('web_link.new_web_resource') %>

    -<%= 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| %> +
    + <%= render partial: 'form', locals: {f: f} %> +
    <% end %> -
    -<%#= link_back %> - diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb index 8c0d2e1c..e9a7551c 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/front_end/web_links/index.html.erb @@ -4,17 +4,18 @@ -<%= 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" %> diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/_index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/_index.html.erb index c2de2645..89608fc0 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/_index.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/_index.html.erb @@ -2,17 +2,18 @@