Changeset 5760
- Timestamp:
- 05/22/08 15:42:19 (1 year ago)
- Files:
-
- components/news/trunk/news/_install/component_info.rb (modified) (2 diffs)
- components/news/trunk/news/_install/db/002_news_schema_002.rb (added)
- components/news/trunk/news/_install/db/003_news_schema_003.rb (added)
- components/news/trunk/news/_install/javascripts/news.js (modified) (6 diffs)
- components/news/trunk/news/_install/javascripts/src_news.js (modified) (8 diffs)
- components/news/trunk/news/_install/stylesheets (added)
- components/news/trunk/news/_install/stylesheets/news.css (added)
- components/news/trunk/news/admin/_admin_content.rhtml (deleted)
- components/news/trunk/news/admin/_main_edit_content.rhtml (added)
- components/news/trunk/news/admin/_main_read_content.rhtml (added)
- components/news/trunk/news/admin/main.rhtml (modified) (1 diff)
- components/news/trunk/news/admin_category (added)
- components/news/trunk/news/admin_category/category_window.rhtml (added)
- components/news/trunk/news/admin_category/list.rhtml (added)
- components/news/trunk/news/admin_category/main.rhtml (added)
- components/news/trunk/news/admin_category/update.rjs (added)
- components/news/trunk/news/admin_category_controller.rb (added)
- components/news/trunk/news/admin_controller.rb (modified) (1 diff)
- components/news/trunk/news/block (added)
- components/news/trunk/news/block/index.rhtml (added)
- components/news/trunk/news/block/list.rhtml (added)
- components/news/trunk/news/block/news_window.rhtml (added)
- components/news/trunk/news/block_controller.rb (added)
- components/news/trunk/news/common_helper.rb (added)
- components/news/trunk/news/languages/chinese.rb (modified) (1 diff)
- components/news/trunk/news/languages/english.rb (modified) (1 diff)
- components/news/trunk/news/languages/japanese.rb (modified) (1 diff)
- components/news/trunk/news/news/_item_return_confirm_window.rhtml (added)
- components/news/trunk/news/news/_main_news_create_window.rhtml (modified) (3 diffs)
- components/news/trunk/news/news/_news_content.rhtml (modified) (1 diff)
- components/news/trunk/news/news/_news_filter.rhtml (added)
- components/news/trunk/news/news/block.rhtml (deleted)
- components/news/trunk/news/news/delete_news_multiple.rhtml (modified) (1 diff)
- components/news/trunk/news/news/item_return_confirm.rhtml (modified) (1 diff)
- components/news/trunk/news/news/main.rhtml (modified) (2 diffs)
- components/news/trunk/news/news/news_approval.rhtml (added)
- components/news/trunk/news/news/news_list.rhtml (modified) (1 diff)
- components/news/trunk/news/news/news_window.rhtml (deleted)
- components/news/trunk/news/news/public_news_list.rhtml (deleted)
- components/news/trunk/news/news/return_unread_state.rjs (added)
- components/news/trunk/news/news/returned_news_list.rhtml (deleted)
- components/news/trunk/news/news/show_news.rhtml (modified) (6 diffs)
- components/news/trunk/news/news/update.rjs (added)
- components/news/trunk/news/news/waiting_news_list.rhtml (deleted)
- components/news/trunk/news/news_already_read.rb (added)
- components/news/trunk/news/news_category.rb (added)
- components/news/trunk/news/news_config.rb (modified) (1 diff)
- components/news/trunk/news/news_controller.rb (modified) (6 diffs)
- components/news/trunk/news/news_helper.rb (deleted)
- components/news/trunk/news/news_item.rb (modified) (3 diffs)
- components/news/trunk/news/news_lib.rb (added)
- components/news/trunk/news/preload/_preload.rhtml (modified) (1 diff)
- components/news/trunk/news/rubricks_search.rb (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
components/news/trunk/news/_install/component_info.rb
r5690 r5760 8 8 @blocks = [ 9 9 { 10 :title => '[_News_ Title_News]',11 :controller => '/news/ news',12 :action => ' block',10 :title => '[_News_Info_BlockTitleIndex]', 11 :controller => '/news/block', 12 :action => 'index', 13 13 :function => 'access', 14 :description => ' news block',14 :description => '[_News_Info_BlockDescIndex]', 15 15 :widget => { 16 16 :default_height => '240', … … 23 23 { 24 24 :name => 'post', 25 :display_name => '[_News_ Authorize_Post]'25 :display_name => '[_News_Info_FunctionPost]' 26 26 }, 27 27 { 28 28 :name => 'approval', 29 :display_name => '[_News_ Authorize_Approval]'29 :display_name => '[_News_Info_FunctionApproval]' 30 30 } 31 31 ] 32 32 @menus = [ 33 33 { 34 :controller => '/news/news', 34 35 :extend_page => 'main', 35 :title => '[_News_Title_Access]',36 :controller => '/news/news',37 36 :function => 'access', 38 :description => '' 37 :title => '[_News_Info_MenuTitleIndex]', 38 :description => '[_News_Info_MenuDescIndex]' 39 39 }, 40 40 { 41 :controller => '/news/admin_category', 42 :extend_page => 'main', 43 :function => 'admin', 44 :title => '[_News_Info_MenuTitleCategory]', 45 :description => '[_News_Info_MenuDescCategory]' 46 }, 47 { 48 :controller => '/news/admin', 41 49 :extend_page => 'admin', 42 :title => '[_News_Title_Config]',43 :controller => '/news/admin',44 50 :function => 'admin', 45 :description => '' 51 :title => '[_News_Info_MenuTitleAdmin]', 52 :description => '[_News_Info_MenuDescAdmin]' 46 53 } 47 54 ] components/news/trunk/news/_install/javascripts/news.js
r5405 r5760 1 rubricks.news={news_list:null,become_edit_mode:function(){1 Object.extend(rubricks.news,{admin:{},admin_category:{},become_edit_mode:function(){ 2 2 rubricks.common.Validator.refresh(); 3 3 remove_tiny_mce("news_article"); … … 7 7 },become_read_mode:function(){ 8 8 rubricks.common.FormEditor.readMode("news_edit_area","news_edit_form"); 9 },change_style_to_normal:function(id){ 10 $("news_list_title_"+id).style.fontWeight=""; 11 },change_style_to_normal_for_block:function(id){ 12 $("news_block_title_"+id).style.fontWeight=""; 9 13 },close_news_create_window:function(){ 10 14 this.news_create_window.close(); 11 },delete_news:function(_ 1){12 new Ajax.Updater("news_list_frame",this.url_delete,{asynchronous:true,evalScripts:true,parameters:{delete_news_id:_ 1},onLoaded:function(_2){15 },delete_news:function(_3){ 16 new Ajax.Updater("news_list_frame",this.url_delete,{asynchronous:true,evalScripts:true,parameters:{delete_news_id:_3},onLoaded:function(_4){ 13 17 rubricks.common.rubricks_wait_message_close(); 14 },onLoading:function(_ 3){18 },onLoading:function(_5){ 15 19 rubricks.common.rubricks_wait_message_open(); 16 20 }}); 21 },detail_area_hide:function(){ 22 Element.hide("news_info"); 23 Element.show("news_empty_message"); 24 },detail_area_show:function(){ 25 Element.hide("news_empty_message"); 26 Element.show("news_info"); 17 27 },edit_news_admin:function(){ 18 28 rubricks.common.Validator.refresh(); 19 29 rubricks.common.FormEditor.editMode("news_edit_area"); 20 },init:function(_4,_5){ 30 },filter_blur:function(){ 31 SelectableTableManager.start(); 32 },filter_clear:function(){ 33 $("news_filter_form").reset(); 34 rubricks.common.fire_onsubmit("news_filter_form"); 35 },filter_date_from_clear:function(){ 36 $("news_filter_date_from").value=""; 37 },filter_date_to_clear:function(){ 38 $("news_filter_date_to").value=""; 39 },filter_focus:function(){ 40 SelectableTableManager.stop(); 41 },filter_refocus:function(){ 42 $("news_filter_word").focus(); 43 },filter_select_target:function(n){ 44 $("news_filter_form").reset(); 45 $("news_filter_target").selectedIndex=n; 46 Switcher.common.open("news_filter_switch","news_filter_area"); 47 rubricks.common.fire_onsubmit("news_filter_form"); 48 },init:function(_7,_8){ 21 49 Element.removeClassName("print_button","disabled"); 22 $("print_news_id").value=_4; 50 $("print_news_id").value=_7; 51 },item_return_comment_save:function(_9){ 52 new Ajax.Updater("news_list_frame",this.url_item_return,{asynchronous:true,evalScripts:true,parameters:{id:_9,comment:$("news_item_return_comment").value},onLoaded:function(_a){ 53 rubricks.common.rubricks_wait_message_close(); 54 },onLoading:function(_b){ 55 rubricks.common.rubricks_wait_message_open(); 56 }}); 57 },news_delete:function(_c){ 58 new Ajax.Request(rubricks.news.url_delete,{asynchronous:true,evalScripts:true,parameters:{delete_news_id:_c},onLoaded:function(_d){ 59 rubricks.common.rubricks_wait_message_close(); 60 },onLoading:function(_e){ 61 rubricks.common.rubricks_wait_message_open(); 62 }}); 23 63 },news_delete_multiple:function(){ 24 var _ 6=this.news_list.getSelected().join(",");25 if(_ 6.length==0){64 var _f=this.news_list.getSelected().join(","); 65 if(_f.length==0){ 26 66 rubricks.common.rubricks_message_window_open(this.msg_news_not_selected,"error"); 27 67 }else{ 28 68 rubricks.common.rubricks_confirm_window_open(this.msg_delete_confirm,function(){ 29 rubricks.news. validate_delete_news_multiple(rubricks.news.news_list.getSelected().join(","));69 rubricks.news.news_delete(rubricks.news.news_list.getSelected().join(",")); 30 70 },null); 31 71 } 32 },no_selected_news:function(){ 33 this.show_news("",true); 34 },open_news_create_window:function(_7){ 72 },news_return_unread_state:function(_10){ 73 new Ajax.Request(this.url_return_unread_state,{asynchronous:true,evalScripts:true,parameters:{id:_10},onLoaded:function(_11){ 74 rubricks.common.rubricks_wait_message_close(); 75 },onLoading:function(_12){ 76 rubricks.common.rubricks_wait_message_open(); 77 }}); 78 },open_item_return_comment_window:function(){ 79 $("news_item_return_comment").value=""; 80 rubricks.news.news_item_return_comment_window.center(); 81 rubricks.news.news_item_return_comment_window.open(); 82 $("news_item_return_comment").focus(); 83 rubricks.common.Validator.refresh(); 84 },open_news_create_window:function(_13){ 35 85 $("post_news_title").value=""; 36 $("post_news_display_name").value=_7; 86 $("post_news[category_id]").selectedIndex=0; 87 $("post_news_display_name").value=_13; 37 88 remove_tiny_mce("post_news_article"); 38 89 $("post_news_article").value=""; … … 42 93 this.news_create_window.open(); 43 94 $("post_news_title").focus(); 44 },overflow_news_textarea:function(_ 8,_9,_a){45 if(overflow_textarea(_ 8,_9)){46 $("rubricks_message").innerHTML=_ a;95 },overflow_news_textarea:function(_14,_15,_16){ 96 if(overflow_textarea(_14,_15)){ 97 $("rubricks_message").innerHTML=_16; 47 98 rubricks.common.rubricks_message_window.options.modal=false; 48 99 rubricks.common.rubricks_message_window.center(); … … 56 107 rubricks.common.fire_submit("news_print_form","print_button"); 57 108 rubricks.common.rubricks_wait_message_close(); 58 },select_multiple_mode:function(_ b){109 },select_multiple_mode:function(_17){ 59 110 this.news_list.makeMultiple(); 60 $(_ b+"select_multiple_form").style.display="none";61 $(_ b+"select_singular_form").style.display="block";62 $(_ b+"news_delete_multiple_form").style.display="block";63 },select_news_list:function(_ c){64 if(_ c!=""&&this.news_list!=null){65 this.news_list.selectEffect(this.news_list.buildTrId(_ c));66 this.show_news(_ c,false);111 $(_17+"select_multiple_form").style.display="none"; 112 $(_17+"select_singular_form").style.display="block"; 113 $(_17+"news_delete_multiple_form").style.display="block"; 114 },select_news_list:function(_18){ 115 if(_18!=""&&this.news_list!=null){ 116 this.news_list.selectEffect(this.news_list.buildTrId(_18)); 117 this.show_news(_18,false); 67 118 } 68 119 },select_singular_mode:function(){ … … 70 121 this.news_list.makeSingular(); 71 122 } 72 },show_tab_button:function(_d){ 73 $(_d+"news_delete_multiple_form").style.display="none"; 74 $(_d+"select_singular_form").style.display="none"; 75 $(_d+"select_multiple_form").style.display="block"; 76 },show_news:function(_e,_f){ 77 var _10=(_e=="")?{}:{id:_e}; 78 new Ajax.Updater("news_info",this.url_show_news,{asynchronous:true,evalScripts:true,parameters:_10,onLoaded:function(_11){ 123 },show_tab_button:function(_19){ 124 $(_19+"news_delete_multiple_form").style.display="none"; 125 $(_19+"select_singular_form").style.display="none"; 126 $(_19+"select_multiple_form").style.display="block"; 127 },show_news:function(_1a,_1b){ 128 var _1c={}; 129 if(_1a!=""){ 130 this.change_style_to_normal(_1a); 131 _1c={id:_1a}; 132 } 133 new Ajax.Updater("news_info",this.url_show_news,{asynchronous:true,evalScripts:true,parameters:_1c,onLoaded:function(_1d){ 79 134 rubricks.common.rubricks_wait_message_close(); 80 },onLoading:function(_1 2){135 },onLoading:function(_1e){ 81 136 rubricks.common.rubricks_wait_message_open(); 82 }});83 },show_public_news_tab:function(){84 rubricks.common.rubricks_wait_message_open();85 this.no_selected_news();86 new Ajax.Updater("public_news_list_tab",this.url_public_news_list,{asynchronous:true,evalScripts:true,onLoaded:function(_13){87 rubricks.common.rubricks_wait_message_close();88 }});89 },show_returned_news_tab:function(){90 rubricks.common.rubricks_wait_message_open();91 this.no_selected_news();92 this.select_singular_mode();93 new Ajax.Updater("returned_news_list_tab",this.url_returned_news_list,{asynchronous:true,evalScripts:true,onLoaded:function(_14){94 rubricks.common.rubricks_wait_message_close();95 show_tab_button("returned_");96 }});97 },show_waiting_news_tab:function(){98 rubricks.common.rubricks_wait_message_open();99 this.no_selected_news();100 this.select_singular_mode();101 new Ajax.Updater("waiting_news_list_tab",this.url_waiting_news_list,{asynchronous:true,evalScripts:true,onLoaded:function(_15){102 rubricks.common.rubricks_wait_message_close();103 show_tab_button("waiting_");104 137 }}); 105 138 },submit_create_news:function(){ … … 113 146 } 114 147 rubricks.common.fire_onsubmit("news_edit_form","news_edit_button","news_edit_area"); 115 },validate_delete_news_multiple:function(_16){ 116 new Ajax.Updater("validate_delete_news_div",this.url_delete_news_multiple,{asynchronous:true,evalScripts:true,parameters:{delete_news_id:_16},onLoaded:function(_17){ 148 }}); 149 Object.extend(rubricks.news.admin,{print:function(){ 150 rubricks.common.fire_submit("news_admin_print_form","print_button"); 117 151 rubricks.common.rubricks_wait_message_close(); 118 },onLoading:function(_18){ 152 }}); 153 Object.extend(rubricks.news.admin_category,{category_window_close:function(){ 154 this.category_window.close(); 155 },category_window_open:function(id){ 156 this.category_window.center(); 157 this.category_window.open(); 158 $("news_category_name").focus(); 159 },category_window_render:function(id){ 160 new Ajax.Updater("news_category_window_frame",this.url_category_window,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_21){ 161 rubricks.common.rubricks_wait_message_close(); 162 },onLoading:function(_22){ 119 163 rubricks.common.rubricks_wait_message_open(); 120 164 }}); 121 }}; 165 },create:function(){ 166 if(this.category_list.length>=this.int_max_record){ 167 rubricks.common.rubricks_message_window_open(this.err_max_record,"error"); 168 }else{ 169 this.category_window_render(); 170 } 171 },delete_confirm:function(){ 172 var _23=this.category_list.getSelected(); 173 if(_23.length<1){ 174 rubricks.common.rubricks_message_window_open(this.msg_category_not_selected,"error"); 175 }else{ 176 var id=parseInt(_23.first(),10); 177 if(id==1){ 178 rubricks.common.rubricks_message_window_open(this.err_delete_default,"error"); 179 }else{ 180 rubricks.common.rubricks_confirm_window_open(rubricks.news.admin_category.msg_delete_confirm,function(){ 181 rubricks.news.admin_category.destroy(id); 182 }); 183 } 184 } 185 },destroy:function(id){ 186 new Ajax.Request(this.url_delete,{asynchronous:true,evalScripts:true,parameters:{id:id},onLoaded:function(_26){ 187 rubricks.common.rubricks_wait_message_close(); 188 },onLoading:function(_27){ 189 rubricks.common.rubricks_wait_message_open(); 190 }}); 191 },edit:function(){ 192 var _28=this.category_list.getSelected(); 193 if(_28.length<1){ 194 rubricks.common.rubricks_message_window_open(this.msg_category_not_selected,"error"); 195 }else{ 196 this.category_window_render(_28.first()); 197 } 198 }}); 122 199 components/news/trunk/news/_install/javascripts/src_news.js
r5405 r5760 1 rubricks.news = { 2 news_list: null, 1 /*** 2 * NewsController 3 */ 4 Object.extend(rubricks.news, { 5 admin: {}, 6 admin_category: {}, 3 7 become_edit_mode: function() { 4 8 rubricks.common.Validator.refresh(); … … 11 15 rubricks.common.FormEditor.readMode('news_edit_area', 'news_edit_form'); 12 16 }, 17 change_style_to_normal: function(id) { 18 $('news_list_title_' + id).style.fontWeight = ''; 19 }, 20 change_style_to_normal_for_block: function(id) { 21 $('news_block_title_' + id).style.fontWeight = ''; 22 }, 13 23 close_news_create_window: function() { 14 24 this.news_create_window.close(); … … 18 28 'news_list_frame', 19 29 this.url_delete, 30 { 31 asynchronous: true, 32 evalScripts: true, 33 parameters: {delete_news_id:delete_id}, 34 onLoaded: function(request) {rubricks.common.rubricks_wait_message_close();}, 35 onLoading: function(request) {rubricks.common.rubricks_wait_message_open();} 36 } 37 ); 38 }, 39 detail_area_hide: function() { 40 Element.hide('news_info'); 41 Element.show('news_empty_message'); 42 }, 43 detail_area_show: function() { 44 Element.hide('news_empty_message'); 45 Element.show('news_info'); 46 }, 47 edit_news_admin: function() { 48 rubricks.common.Validator.refresh(); 49 rubricks.common.FormEditor.editMode('news_edit_area'); 50 }, 51 filter_blur: function() { 52 SelectableTableManager.start(); 53 }, 54 filter_clear: function() { 55 $('news_filter_form').reset(); 56 rubricks.common.fire_onsubmit('news_filter_form'); 57 }, 58 filter_date_from_clear: function() { 59 $('news_filter_date_from').value = ''; 60 }, 61 filter_date_to_clear: function() { 62 $('news_filter_date_to').value = ''; 63 }, 64 filter_focus: function() { 65 SelectableTableManager.stop(); 66 }, 67 filter_refocus: function() { 68 $('news_filter_word').focus(); 69 }, 70 filter_select_target: function(n) { 71 $('news_filter_form').reset(); 72 $('news_filter_target').selectedIndex = n; 73 Switcher.common.open('news_filter_switch', 'news_filter_area'); 74 rubricks.common.fire_onsubmit('news_filter_form'); 75 }, 76 init: function(news_id, has_edit){ 77 Element.removeClassName('print_button', 'disabled'); 78 $('print_news_id').value = news_id; 79 }, 80 item_return_comment_save: function(news_id){ 81 new Ajax.Updater( 82 'news_list_frame', 83 this.url_item_return, 84 { 85 asynchronous: true, 86 evalScripts: true, 87 parameters: {id:news_id, comment:$('news_item_return_comment').value}, 88 onLoaded: function(request){rubricks.common.rubricks_wait_message_close();}, 89 onLoading: function(request){rubricks.common.rubricks_wait_message_open();} 90 } 91 ); 92 }, 93 news_delete: function(delete_id) { 94 new Ajax.Request( 95 rubricks.news.url_delete, 20 96 { 21 97 asynchronous: true, … … 26 102 } 27 103 ); 28 },29 edit_news_admin: function() {30 rubricks.common.Validator.refresh();31 rubricks.common.FormEditor.editMode('news_edit_area');32 },33 init: function(news_id, has_edit){34 Element.removeClassName('print_button', 'disabled');35 $('print_news_id').value = news_id;36 104 }, 37 105 news_delete_multiple: function() { … … 40 108 rubricks.common.rubricks_message_window_open(this.msg_news_not_selected, 'error'); 41 109 } else { 42 rubricks.common.rubricks_confirm_window_open(this.msg_delete_confirm, function() {rubricks.news.validate_delete_news_multiple(rubricks.news.news_list.getSelected().join(','));}, null); 43 } 44 }, 45 no_selected_news: function() { 46 this.show_news('', true) 110 rubricks.common.rubricks_confirm_window_open(this.msg_delete_confirm, function() {rubricks.news.news_delete(rubricks.news.news_list.getSelected().join(','));}, null); 111 } 112 }, 113 news_return_unread_state:function(news_id) { 114 new Ajax.Request( 115 this.url_return_unread_state, 116 { 117 asynchronous:true, 118 evalScripts:true, 119 parameters:{id:news_id}, 120 onLoaded:function(request){rubricks.common.rubricks_wait_message_close();}, 121 onLoading:function(request){rubricks.common.rubricks_wait_message_open();} 122 } 123 ); 124 }, 125 open_item_return_comment_window: function(){ 126 $('news_item_return_comment').value = ''; 127 rubricks.news.news_item_return_comment_window.center(); 128 rubricks.news.news_item_return_comment_window.open(); 129 $('news_item_return_comment').focus(); 130 rubricks.common.Validator.refresh(); 47 131 }, 48 132 open_news_create_window: function(display_name) { 49 133 $('post_news_title').value = ''; 134 $('post_news[category_id]').selectedIndex = 0; 50 135 $('post_news_display_name').value = display_name; 51 136 remove_tiny_mce('post_news_article'); … … 96 181 }, 97 182 show_news: function(news_id, show_wait_message) { 98 var params = (news_id == '') ? {} : {id:news_id}; 183 var params = {}; 184 if(news_id != '') { 185 this.change_style_to_normal(news_id); 186 params = {id:news_id}; 187 } 99 188 new Ajax.Updater( 100 189 'news_info', … … 104 193 evalScripts: true, 105 194 parameters: params, 106 onLoaded: function(request){rubricks.common.rubricks_wait_message_close();}, 107 onLoading: function(request){rubricks.common.rubricks_wait_message_open();} 108 } 109 ); 110 }, 111 show_public_news_tab: function(){ 112 rubricks.common.rubricks_wait_message_open(); 113 this.no_selected_news(); 114 new Ajax.Updater( 115 'public_news_list_tab', 116 this.url_public_news_list, 117 { 118 asynchronous:true, 119 evalScripts:true, 120 onLoaded:function(request){ 121 rubricks.common.rubricks_wait_message_close(); 122 } 123 } 124 ); 125 }, 126 show_returned_news_tab: function(){ 127 rubricks.common.rubricks_wait_message_open(); 128 this.no_selected_news(); 129 this.select_singular_mode(); 130 new Ajax.Updater( 131 'returned_news_list_tab', 132 this.url_returned_news_list, 133 { 134 asynchronous:true, 135 evalScripts:true, 136 onLoaded:function(request){ 137 rubricks.common.rubricks_wait_message_close(); 138 show_tab_button('returned_'); 139 } 140 } 141 ); 142 }, 143 show_waiting_news_tab: function(){ 144 rubricks.common.rubricks_wait_message_open(); 145 this.no_selected_news(); 146 this.select_singular_mode(); 147 new Ajax.Updater( 148 'waiting_news_list_tab', 149 this.url_waiting_news_list, 150 { 151 asynchronous:true, 152 evalScripts:true, 153 onLoaded:function(request){ 154 rubricks.common.rubricks_wait_message_close(); 155 show_tab_button('waiting_'); 156 } 195 onLoaded: function(request) {rubricks.common.rubricks_wait_message_close();}, 196 onLoading: function(request) {rubricks.common.rubricks_wait_message_open();} 157 197 } 158 198 ); … … 169 209 } 170 210 rubricks.common.fire_onsubmit('news_edit_form', 'news_edit_button', 'news_edit_area'); 171 },172 validate_delete_news_multiple: function(delete_id) {173 new Ajax.Updater(174 'validate_delete_news_div',175 this.url_delete_news_multiple,176 {177 asynchronous: true,178 evalScripts: true,179 parameters: {delete_news_id:delete_id},180 onLoaded: function(request){rubricks.common.rubricks_wait_message_close();},181 onLoading: function(request){rubricks.common.rubricks_wait_message_open();}182 }183 );184 211 } 185 } 212 }); 213 214 /*** 215 * AdminController 216 */ 217 Object.extend(rubricks.news.admin, { 218 print: function() { 219 rubricks.common.fire_submit('news_admin_print_form', 'print_button'); 220 rubricks.common.rubricks_wait_message_close(); 221 } 222 }); 223 224 /*** 225 * AdminCategoryController 226 */ 227 Object.extend(rubricks.news.admin_category, { 228 category_window_close: function() { 229 this.category_window.close(); 230 }, 231 category_window_open: function(id) { 232 this.category_window.center(); 233 this.category_window.open(); 234 $('news_category_name').focus(); 235 }, 236 category_window_render: function(id) { 237 new Ajax.Updater( 238 'news_category_window_frame', 239 this.url_category_window, 240 { 241 asynchronous: true, 242 evalScripts: true, 243 parameters: {id:id}, 244 onLoaded: function(request) {rubricks.common.rubricks_wait_message_close();}, 245 onLoading: function(request) {rubricks.common.rubricks_wait_message_open();} 246 } 247 ); 248 }, 249 create: function() { 250 if(this.category_list.length >= this.int_max_record) { 251 rubricks.common.rubricks_message_window_open(this.err_max_record, 'error'); 252 } else { 253 this.category_window_render(); 254 } 255 }, 256 delete_confirm: function() { 257 var selected = this.category_list.getSelected(); 258 if(selected.length < 1) { 259 rubricks.common.rubricks_message_window_open(this.msg_category_not_selected, 'error'); 260 } else { 261 var id = parseInt(selected.first(), 10); 262 if(id == 1) { 263 rubricks.common.rubricks_message_window_open(this.err_delete_default, 'error'); 264 } else { 265 rubricks.common.rubricks_confirm_window_open(rubricks.news.admin_category.msg_delete_confirm, function() {rubricks.news.admin_category.destroy(id);}); 266 } 267 } 268 }, 269 destroy: function(id) { 270 new Ajax.Request( 271 this.url_delete, 272 { 273 asynchronous: true, 274 evalScripts: true, 275 parameters: {id:id}, 276 onLoaded: function(request) {rubricks.common.rubricks_wait_message_close();}, 277 onLoading: function(request) {rubricks.common.rubricks_wait_message_open();} 278 } 279 ); 280 }, 281 edit: function() { 282 var selected = this.category_list.getSelected(); 283 if(selected.length < 1) { 284 rubricks.common.rubricks_message_window_open(this.msg_category_not_selected, 'error'); 285 } else { 286 this.category_window_render(selected.first()); 287 } 288 } 289 }); components/news/trunk/news/admin/main.rhtml
r5690 r5760 1 <%= flash_for_feedback_msg(:news_admin_message) %> 2 <%= flash_for_error_msg(:news_admin_error) %> 3 <% validate_page do %> 4 <div class="rubricks_general_frame_borderless"> 5 <% render_operation_bar do %> 6 <%= form_tag({:controller => '/news/admin', :action => 'print', :page => 'print_admin'}, {:id => 'news_admin_print_form', :class => 'operationbar_button_right_inactive swap', :target => "_blank"}) %> 7 <span id="print_button" class="buttons darkicon_print textcolor_white" onclick="rubricks.common.fire_submit('news_admin_print_form', 'print_button');rubricks.common.rubricks_wait_message_close();"><%= hl('[_Common_Print]') %></span> 8 </form> 1 <div class="rubricks_general_frame_borderless"> 2 <% render_operation_bar do %> 3 <%= form_tag({:controller => '/news/admin', :action => 'print', :print_action => 'print_content'}, {:id => 'news_admin_print_form', :class => 'operationbar_button_right_inactive swap', :target => "_blank"}) %> 4 <span id="print_button" class="buttons darkicon_print textcolor_white" onclick="rubricks.news.admin.print();"><%= hl('[_Common_Print]') %></span> 5 </form> 6 <% end %> 7 <% render_content_body do %> 8 <% render_detail_frame('00') do %> 9 <div id="news_edit_area"> 10 <div> 11 <%= render :partial => '/news/admin/main_read_content' %> 12 </div> 13 <div style="display:none;"> 14 <%= render :partial => '/news/admin/main_edit_content' %> 15 </div> 16 </div> 9 17 <% end %> 10 <% render_content_body do %> 11 <% render_detail_frame('00') do %> 12 <div id="news_edit_area"> 13 <div> 14 <% render_detail('00', hl('[_News_Setting]')) do %> 15 <% render_float_button('float_button_area_read') do %> 16 <div id="news_edit_mode_form" class="float_button_right_inactive swap"> 17 <span id="news_admin_edit_mode_button" class="buttons icon_edit" onclick="rubricks.news.edit_news_admin();"><%= hl('[_Common_Edit]') %></span> 18 </div> 19 <% end %> 20 <%= render :partial => '/news/admin/admin_content' %> 21 <% end %> 22 </div> 23 <div style="display:none;"> 24 <% render_detail('00', hl('[_News_Setting]')) do %> 25 <% validate_form('news_admin_edit_button') do %> 26 <% form_main_tag(:url=>{:controller => '/news/admin', :action => 'update'}, :html => {:id => 'news_edit_form'}) do %> 27 <% render_float_button('float_button_area_admin_edit') do %> 28 <div class="float_button_right_inactive swap"> 29 <span id="news_edit_cancel_button" class="buttons icon_cancel" onclick="rubricks.common.FormEditor.readMode('news_edit_area', 'news_edit_form');"><%= hl('[_Common_Cancel]') %></span> 30 </div> 31 <div class="float_button_right_inactive swap"> 32 <%= span_submit hl('[_Common_Save]'), 'news_admin_edit_button', :modal_area_id => 'news_edit_area' %> 33 </div> 34 <% end %> 35 <table id="test" class="rubricks_general_table"> 36 <tr class="rubricks_general_table_odd"> 37 <td style="width:50%"><%= hl('[_News_Need_Approval_Posted_News]') %></td> 38 <td style="width:50%"> 39 <input type="radio" class="check" id="rubricks_news_need_approval_true" name="news_config[approval]" value="true" <%= "checked" if @nc.approval %>><label for="rubricks_news_need_approval_true"><%= hl('[_Common_Yes]') %></label> 40 <input type="radio" class="check" id="rubricks_news_need_approval_false" name="news_config[approval]" value="false" <%= "checked" unless @nc.approval %>><label for="rubricks_news_need_approval_false"><%= hl('[_Common_No]') %></label> 41 </td> 42 </tr> 43 <tr class="rubricks_general_table_even"> 44 <%= validate 'news_config_news_per_page', [{:required => true}, {:numeric => true}, {:numeric_span => "1..100"}] %> 45 <td><%= hl('[_News_News_Per_Page]') %></td> 46 <td> 47 <%= text_field 'news_config', 'news_per_page', :value => hl(@nc.news_per_page) %> 48 <span id="news_config_news_per_page_msg"></span> 49 </td> 50 </tr> 51 <tr class="rubricks_general_table_odd"> 52 <%= validate 'news_config_news_per_block', [{:required => true}, {:numeric => true}, {:numeric_span => "1..20"}] %> 53 <td><%= hl('[_News_News_Per_Block]') %></td> 54 <td> 55 <%= text_field 'news_config', 'news_per_block', :value => hl(@nc.news_per_block) %> 56 <span id="news_config_news_per_block_msg"></span> 57 </td> 58 </tr> 59 <tr class="rubricks_general_table_even"> 60 <%= validate 'news_config_new_days', [{:required => true}, {:numeric => true}, {:numeric_span => "0..999"}] %> 61 <td><%= hl('[_News_New_Days]') %></td> 62 <td> 63 <%= text_field 'news_config', 'new_days', :value => hl(@nc.new_days) %> 64 <span id="news_config_new_days_msg"></span> 65 </td> 66 </tr> 67 </table> 68 <br class="cl" /> 69 <% end %> 70 <% end %> 71 <% end %> 72 </div> 73 </div> 74 <% end %> 75 <% end %> 76 </div> 77 <script type="text/javascript"> 78 rubricks.common.FormEditor.readMode('news_edit_area'); 79 </script> 80 <% end %> 18 <% end %> 19 </div> 20 <script type="text/javascript"> 21 rubricks.common.FormEditor.readMode('news_edit_area'); 22 </script> 23 <%= flash_for_feedback_msg(:news_message) %> components/news/trunk/news/admin_controller.rb
r5690 r5760 8 8 end 9 9 10 def print_content 11 @nc = News::NewsConfig.instance 12 render :partial => '/news/admin/main_read_content' 13 end 14 10 15 def update 11 16 begin 12 17 ActiveRecord::Base.transaction do 13 News::NewsConfig.update!(1, params[:news_config]) 14 flash[:news_admin_message] = '[_News_Components_Setting_Update]' 18 @nc = News::NewsConfig.instance 19 @nc.update_attributes!({ 20 :approval => params[:news_config][:approval], 21 :news_per_block => params[:news_config][:news_per_block], 22 :news_per_page => params[:news_config][:news_per_page], 23 }) 15 24 end 16 25 rescue Exception => ex 17 26 logger.error(ex.message) 18 27 logger.error(ex.backtrace.join("\n ")) 19 flash[:news_admin_error] = '[_News_Components_Setting_Update_Failed]'28 raise RubricksError::Common::AjaxError, '[_News_Admin_ErrorUpdate]' 20 29 end 30 flash[:news_message] = '[_News_Admin_MessageUpdate]' 31 rubricks_logger(:action_type => :update, :data => @nc) 21 32 redirect_to :controller => "/news/admin", :action => 'main' 22 33 end 23 24 def print_admin25 @nc = News::NewsConfig.instance26 render :template => '/news/admin/_admin_content.rhtml'27 end28 34 end components/news/trunk/news/languages/chinese.rb
r5704 r5760 1 1 module RubricksLanguage 2 2 def define_lang 3 lang('chinese')['_News_Info_Description'] = 'åè¡šåæŸç€ºçœç«æŽæ°ä¿¡æ¯çæ°é»çç»ä»¶ã' 4 lang('chinese')['_News_Info_DisplayName'] = 'æ°é»' 5 lang('chinese')['_News_Info_TrailRead'] = 'æ¥çæ°é»' 6 lang('chinese')['_News_Info_TrailUpdate'] = 'æ°é»çå衚ã»çŒèŸã»å é€' 7 lang('chinese')['_News_Title_Config'] = 'æ°é»è®Ÿçœ®' 8 lang('chinese')['_News_Need_Approval_Posted_News'] = 'åè¡šçæ°é»éèŠæ¹å' 9 lang('chinese')['_News_News_Per_Page']= 'æ°é»å衚æ¯é¡µæŸç€ºçæ°é»æ°' 10 lang('chinese')['_News_News_Per_Block']= 'åšçåäžæŸç€ºçæ°é»æ°' 11 lang('chinese')['_News_New_Days']= 'æŸç€ºäžº(new)ç倩æ°' 12 lang('chinese')['_News_Last_Update'] = 'æåä¿®æ¹æ¥æ' 13 lang('chinese')['_News_Title_News'] = 'æ°é»' 14 lang('chinese')['_News_Setting'] = 'æ°é»è®Ÿçœ®' 15 lang('chinese')['_News_Publish_Date'] = 'ååžæ¥æ' 16 lang('chinese')['_News_Posted_Date'] = 'åè¡šæ¥æ' 17 lang('chinese')['_News_Repost'] = 'éæ°å衚' 18 lang('chinese')['_News_Article_Text'] = 'æ£æ' 19 lang('chinese')['_News_State_Waiting'] = 'çåŸ 20 æ¹å' 21 lang('chinese')['_News_Approval_Item'] = 'æ°é»' 22 lang('chinese')['_News_Title_Access'] = 'æ°é»å衚' 23 lang('chinese')['_News_Authorize_Post'] = 'å衚æé' 24 lang('chinese')['_News_Authorize_Approval'] = 'æ¹åæé' 25 lang('chinese')['_News_Not_Select'] = 'è¯·éæ©æ°é»ã' 26 lang('chinese')['_News_Components_Setting_Update'] = 'æ°é»è®Ÿçœ®ä¿®æ¹å®æ¯ã' 27 lang('chinese')['_News_Posted_Waiting'] = 'æ°é»åè¡šå®æ¯ãæ¹ååå 28 ¬åŒååžã' 29 lang('chinese')['_News_Posted_Public'] = 'æ°é»åè¡šå®æ¯ãæ°é»å 30 ¬åŒååžäºã' 31 lang('chinese')['_News_Reposted_Waiting'] = 'æ°é»éæ°åè¡šå®æ¯ãæ¹ååå 32 ¬åŒååžã' 33 lang('chinese')['_News_Reposted_Public'] = 'æ°é»éæ°åè¡šå®æ¯ãæ°é»å 34 ¬åŒååžäºã' 35 lang('chinese')['_News_Update_Success'] = 'æ°é»ä¿®æ¹å®æ¯ã' 36 lang('chinese')['_News_Multiple_Delete_Failed'] = 'éæ©äºæ²¡ææéå é€çæ°é»ã' 37 lang('chinese')['_News_Delete_Success'] = 'æ°é»å é€å®æ¯ã' 38 lang('chinese')['_News_Waiting_Approval'] = 'æ%sæ¡æ°é»çåŸ 39 æ¹åã请æ¹åæéåã' 40 lang('chinese')['_News_Waiting_Message'] = 'æ%sæ¡åŸ 41 æ¹åçæ°é»ã' 42 lang('chinese')['_News_Returned_Repost'] = 'æ%sæ¡è¢«éåçæ°é»ã请è¿è¡çŒèŸåéæ°å衚ã' 43 lang('chinese')['_News_Components_Setting_Update_Failed'] = 'æ°é»è®Ÿçœ®çä¿®æ¹å€±èŽ¥ã' 44 lang('chinese')['_News_Post_Failed'] = 'æ°é»å衚倱莥ã' 45 lang('chinese')['_News_Update_Failed'] = 'æ°é»ä¿®æ¹å€±èŽ¥ã' 46 lang('chinese')['_News_Delete_Failed'] = 'æ°é»å é€å€±èŽ¥ã' 47 lang('chinese')['_News_Confirm_Update'] = 'çŒèŸåéèŠéæ°æ¹å,ç¡®å®èŠçŒèŸå?' 48 lang('chinese')['_News_Returned_Message'] = 'åŠææ³å次ç³è¯·æ¹åïŒè¯·[éæ°å衚]ã' 49 lang('chinese')['_News_Post_User'] = 'æçš¿çšæ·' 50 lang('chinese')['_News_Display_Only_Manager'] = 'ä» 51 å管çåãæ¿è®€çšæ·æŸç€º' 52 lang('chinese')['_News_Return_Confirm_User_Is_Effective'] = 'æçš¿çšæ·äžºæ æçšæ·ïŒæä»¥äžèœéåãåŠææç« éèŠä¿®æ£ïŒè¯·è¿è¡çŒèŸã' 53 lang('chinese')['_News_Return_Confirm_User_Is_Effective_1'] = 'æçš¿çšæ·äžºæ æçšæ·ïŒæä»¥äžèœéåã' 54 lang('chinese')['_News_Return_Confirm_User_Is_Effective_2'] = 'åŠææç« éèŠä¿®æ£ïŒè¯·è¿è¡çŒèŸã' 55 lang('chinese')['_News_Return_Confirm_User_Is_Guest'] = 'æçš¿çšæ·äžºå¿åçšæ·ïŒæä»¥äžèœéåã' 3 lang('chinese').merge!({ 4 '_News_Admin_ErrorUpdate' => 'æ°é»è®Ÿçœ®çä¿®æ¹å€±èŽ¥ã', 5 '_News_Admin_MessageUpdate' => 'æ°é»è®Ÿçœ®ä¿®æ¹å®æ¯ã', 6 '_News_Category_ErrorCreate' => 'åç±»å建倱莥ã', 7 '_News_Category_ErrorCreateMaxRecord' => '####', 8 '_News_Category_ErrorDelete' => 'åç±»å é€å€±èŽ¥ã', 9 '_News_Category_ErrorDeleteDefaultCategory' => '####', 10 '_News_Category_ErrorUpdate' => 'å类修æ¹å€±èŽ¥ã', 11 '_News_Category_MessageCreate' => 'åç±»åå»ºå®æ¯ã', 12 '_News_Category_MessageDelete' => 'åç±»å é€å®æ¯ã', 13 '_News_Category_MessageDeleteConfirm' => '####', 14 '_News_Category_MessageNotSelected' => '####', 15 '_News_Category_MessageUpdate' => 'å类修æ¹å®æ¯ã', 16 '_News_Common_Category' => 'åç±»', 17 '_News_Common_CategoryCreate' => 'æ°å»ºåç±»', 18 '_News_Common_CategoryList' => 'åç±»å衚', 19 '_News_Common_CategoryName' => 'åç±»å', 20 '_News_Common_CategoryUpdate' => 'å类修æ¹', 21 '_News_Common_Article' => 'æ£æ', 22 '_News_Common_NeedApproval' => 'åè¡šçæ°é»éèŠæ¹å', 23 '_News_Common_News' => 'æ°é»', 24 '_News_Common_NewsList' => 'æ°é»å衚', 25 '_News_Common_NewsPerBlock' => 'åšçåäžæŸç€ºçæ°é»æ°', 26 '_News_Common_NewsPerPage' => 'æ°é»å衚æ¯é¡µæŸç€ºçæ°é»æ°', 27 '_News_Common_NewsSetting' => 'æ°é»è®Ÿçœ®', 28 '_News_Common_LastUpdate' => 'æåä¿®æ¹æ¥æ', 29 '_News_Common_PostedDate' => 'åè¡šæ¥æ', 30 '_News_Common_PublishDate' => 'ååžæ¥æ', 31 '_News_Common_Repost' => 'éæ°å衚', 32 '_News_Common_ReturnComment' => '泚éïŒ[%s]', 33 '_News_Common_Unread' => 'æ¹äžºæªè¯»', 34 '_News_Filter_ButtonPublicNews' => 'å 35 ¬åŒçæ°é»', 36 '_News_Filter_ButtonReturnNews' => 'éåçæ°é»', 37 '_News_Filter_ButtonWaitingNews' => 'çåŸ 38 æ¹åçæ°é»', 39 '_News_Filter_CategoryAll' => 'ææåç±»', 40 '_News_Filter_StateAll' => 'å·²è¯»ã»æªè¯»', 41 '_News_Filter_StateNotRead' => 'æªè¯»', 42 '_News_Info_BlockDescIndex' => 'æ°é»', 43 '_News_Info_BlockTitleIndex' => 'æ°é»', 44 '_News_Info_Description' => 'åè¡šåæŸç€ºçœç«æŽæ°ä¿¡æ¯çæ°é»çç»ä»¶ã', 45 '_News_Info_DisplayName' => 'æ°é»', 46 '_News_Info_FunctionApproval' => 'æ¹åæé', 47 '_News_Info_FunctionPost' => 'å衚æé', 48 '_News_Info_MenuDescAdmin' => 'æ°é»è®Ÿçœ®', 49 '_News_Info_MenuDescCategory' => 'å类管ç', 50 '_News_Info_MenuDescIndex' => 'æ°é»å衚', 51 '_News_Info_MenuTitleAdmin' => 'æ°é»è®Ÿçœ®', 52 '_News_Info_MenuTitleCategory' => 'å类管ç', 53 '_News_Info_MenuTitleIndex' => 'æ°é»å衚', 54 '_News_Info_TrailRead' => 'æ¥çæ°é»', 55 '_News_Info_TrailUpdate' => 'æ°é»çå衚ã»çŒèŸã»å é€', 56 '_News_News_ErrorDelete' => 'æ°é»å é€å€±èŽ¥ã', 57 '_News_News_ErrorDeleteWithoutPermission' => 'éæ©äºæ²¡ææéå é€çæ°é»ã', 58 '_News_News_ErrorPost' => 'æ°é»å衚倱莥ã', 59 '_News_News_ErrorReturnInvalidUser' => 'æçš¿çšæ·äžºæ æçšæ·ïŒæä»¥äžèœéåãåŠææç« éèŠä¿®æ£ïŒè¯·è¿è¡çŒèŸã', 60 '_News_News_ErrorUnread' => '####', 61 '_News_News_ErrorUpdate' => 'æ°é»ä¿®æ¹å€±èŽ¥ã', 62 '_News_News_MessageConfirmUnread' => 'ç¡®å®èŠæ¹äžºæªè¯»ç¶æåïŒ', 63 '_News_News_MessageConfirmUpdate' => 'çŒèŸåéèŠéæ°æ¹å,ç¡®å®èŠçŒèŸå?', 64 '_News_News_MessageDelete' => 'æ°é»å é€å®æ¯ã', 65 '_News_News_MessageNewsNotSelected' => 'è¯·éæ©æ°é»ã', 66 '_News_News_MessagePostToPublic' => 'æ°é»åè¡šå®æ¯ãæ°é»å 67 ¬åŒååžäºã', 68 '_News_News_MessagePostToWaiting' => 'æ°é»åè¡šå®æ¯ãæ¹ååå 69 ¬åŒååžã', 70 '_News_News_MessageRepostToPublic' => 'æ°é»éæ°åè¡šå®æ¯ãæ°é»å 71 ¬åŒååžäºã', 72 '_News_News_MessageRepostToWaiting' => 'æ°é»éæ°åè¡šå®æ¯ãæ¹ååå 73 ¬åŒååžã', 74 '_News_News_MessageReturnComment' => 'å¯ä»¥èŸå 75 ¥æ³šé(å¯é)', 76 '_News_News_MessageReturned' => 'åŠææ³å次ç³è¯·æ¹åïŒè¯·[éæ°å衚]ã', 77 '_News_News_MessageThereAreReturnedNews' => 'æ%sæ¡è¢«éåçæ°é»ã请è¿è¡çŒèŸåéæ°å衚ã', 78 '_News_News_MessageThereAreWaitingApprovalNews' => 'æ%sæ¡æ°é»çåŸ 79 æ¹åã请æ¹åæéåã', 80 '_News_News_MessageThereAreWaitingNews' => 'æ%sæ¡åŸ 81 æ¹åçæ°é»ã', 82 '_News_News_MessageUnableToReturnInvalidUser' => 'æçš¿çšæ·äžºæ æçšæ·ïŒæä»¥äžèœéåã', 83 '_News_News_MessageUnableToReturnGuestUser' => 'æçš¿çšæ·äžºå¿åçšæ·ïŒæä»¥äžèœéåã', 84 '_News_News_MessageUnread' => '####', 85 '_News_News_MessageUpdate' => 'æ°é»ä¿®æ¹å®æ¯ã', 86 }) 56 87 end 57 88 end components/news/trunk/news/languages/english.rb
r5690 r5760 1 1 module RubricksLanguage 2 2 def define_lang 3 lang('english')['_News_Info_Description'] = 'The component to register and display news.' 4 lang('english')['_News_Info_DisplayName'] = 'News' 5 lang('english')['_News_Info_TrailRead'] = 'Read a news' 6 lang('english')['_News_Info_TrailUpdate'] = 'Post/Edit/Delete a news' 7 lang('english')['_News_Title_Config'] = 'News Config' 8 lang('english')['_News_Need_Approval_Posted_News'] = 'Approval is necessary for contributed news' 9 lang('english')['_News_News_Per_Page']= 'News count per page' 10 lang('english')['_News_News_Per_Block']= 'News count per block' 11 lang('english')['_News_New_Days']= 'Days of new news' 12 lang('english')['_News_Last_Update'] = 'Last update' 13 lang('english')['_News_Title_News'] = 'News' 14 lang('english')['_News_Setting'] = 'News Config' 15 lang('english')['_News_Publish_Date'] = 'Publish date' 16 lang('english')['_News_Posted_Date'] = 'Posted date' 17 lang('english')['_News_Repost'] = 'Repost' 18 lang('english')['_News_Article_Text'] = 'Article text' 19 lang('english')['_News_State_Waiting'] = 'Waiting' 20 lang('english')['_News_Approval_Item'] = 'News' 21 lang('english')['_News_Title_Access'] = 'News List' 22 lang('english')['_News_Authorize_Post'] = 'post' 23 lang('english')['_News_Authorize_Approval'] = 'approval' 24 lang('english')['_News_Not_Select'] = 'Please select news.' 25 lang('english')['_News_Components_Setting_Update'] = 'The news setting was updated.' 26 lang('english')['_News_Posted_Waiting'] = 'The news was posted. After it is approved, it will be open to the public.' 27 lang('english')['_News_Posted_Public'] = 'The news was posted. it is open to the public.' 28 lang('english')['_News_Reposted_Waiting'] = 'The news was posted again. After it is approved, it will be open to the public.' 29 lang('english')['_News_Reposted_Public'] = 'The news was posted again. it is open to the public.' 30 lang('english')['_News_Update_Success'] = 'The news was updated.' 31 lang('english')['_News_Multiple_Delete_Failed'] = 'The news that cannot be deleted was selected.' 32 lang('english')['_News_Delete_Success'] = 'The news was deleted.' 33 lang('english')['_News_Waiting_Approval'] = 'There are %s articles waiting to be approved. Please approve or return it.' 34 lang('english')['_News_Waiting_Message'] = 'There are %s articles waiting to be approved. ' 35 lang('english')['_News_Returned_Repost'] = 'There are %s returned articles. Please edit and post again.' 36 lang('english')['_News_Components_Setting_Update_Failed'] = 'The news setting updating was failure.' 37 lang('english')['_News_Post_Failed'] = 'The news posting was failure.' 38 lang('english')['_News_Update_Failed'] = 'The news updating was failure.' 39 lang('english')['_News_Delete_Failed'] = 'The news deleting was failure.' 40 lang('english')['_News_Confirm_Update'] = 'This news needs approval again. Is it all right?' 41 lang('english')['_News_Returned_Message'] = 'Please do "Repost" when you do the approval request again.' 42 lang('english')['_News_Approval_Request'] = 'Repost' 43 lang('english')['_News_Post_User'] = 'Post user' 44 lang('english')['_News_Display_Only_Manager'] = 'Display only to manager and approver' 45 lang('english')['_News_Return_Confirm_User_Is_Effective'] = 'The user is not ffective,return is not enable.If the news need to be edited,please edit.' 46 lang('english')['_News_Return_Confirm_User_Is_Effective_1'] = 'The user is not ffective,return is not enable.' 47 lang('english')['_News_Return_Confirm_User_Is_Effective_2'] = 'If the news need to be edited,please edit.' 48 lang('english')['_News_Return_Confirm_User_Is_Guest'] = 'The user is guest,return is not enable.' 3 lang('english').merge!({ 4 '_News_Admin_ErrorUpdate' => 'Failed to update news settings.', 5 '_News_Admin_MessageUpdate' => 'The news settings are updated.', 6 '_News_Category_ErrorCreate' => 'Failed to create the category.', 7 '_News_Category_ErrorCreateMaxRecord' => 'You can not create the category any more.', 8 '_News_Category_ErrorDelete' => 'Failed to delete the category.', 9 '_News_Category_ErrorDeleteDefaultCategory' => 'You can not delete the default category.', 10 '_News_Category_ErrorUpdate' => 'Failed to update the category.', 11 '_News_Category_MessageCreate' => 'The category is created.', 12 '_News_Category_MessageDelete' => 'The category is deleted.', 13 '_News_Category_MessageDeleteConfirm' => 'Are you sure to delete the category?', 14 '_News_Category_MessageNotSelected' => 'Any categories are not selected.', 15 '_News_Category_MessageUpdate' => 'The category is updated.', 16 '_News_Common_Category' => 'Category', 17 '_News_Common_CategoryCreate' => 'Create Category', 18 '_News_Common_CategoryList' => 'Category List', 19 '_News_Common_CategoryName' => 'Category Name', 20 '_News_Common_CategoryUpdate' => 'Update Category', 21 '_News_Common_Article' => 'Article', 22 '_News_Common_NeedApproval' => 'The news must be approved to publish', 23 '_News_Common_News' => 'News', 24 '_News_Common_NewsList' => 'News List', 25 '_News_Common_NewsPerBlock' => 'News number per block', 26 '_News_Common_NewsPerPage' => 'News number per page', 27 '_News_Common_NewsSetting' => 'News Config', 28 '_News_Common_LastUpdate' => 'Last updated', 29 '_News_Common_PostedDate' => 'Posted date', 30 '_News_Common_PublishDate' => 'Published date', 31 '_News_Common_Repost' => 'Repost', 32 '_News_Common_ReturnComment' => 'Comment: %s', 33 '_News_Common_Unread' => 'Return to unread', 34 '_News_Filter_ButtonPublicNews' => 'Public News', 35 '_News_Filter_ButtonReturnNews' => 'Returned News', 36 '_News_Filter_ButtonWaitingNews' => 'Waiting News', 37 '_News_Filter_CategoryAll' => 'All', 38 '_News_Filter_StateAll' => 'All', 39 '_News_Filter_StateNotRead' => 'Unread', 40 '_News_Info_BlockDescIndex' => 'News Block', 41 '_News_Info_BlockTitleIndex' => 'News', 42 '_News_Info_Description' => 'The component to post and display news.', 43 '_News_Info_DisplayName' => 'News', 44 '_News_Info_FunctionApproval' => 'Approval', 45 '_News_Info_FunctionPost' => 'Post', 46 '_News_Info_MenuDescAdmin' => 'News Config', 47 '_News_Info_MenuDescCategory' => 'Category Management', 48 '_News_Info_MenuDescIndex' => 'News List', 49 '_News_Info_MenuTitleAdmin' => 'News Config', 50 '_News_Info_MenuTitleCategory' => 'Category Management', 51 '_News_Info_MenuTitleIndex' => 'News List', 52 '_News_Info_TrailRead' => 'Read the newses', 53 '_News_Info_TrailUpdate' => 'Post/Edit/Delete newses', 54 '_News_News_ErrorDelete' => 'Failed to delete the news.', 55 '_News_News_ErrorDeleteWithoutPermission' => 'Failed to delete newses because these are not what you have posted.', 56 '_News_News_ErrorPost' => 'Failed to post the news.', 57 '_News_News_ErrorReturnInvalidUser' => 'You can not return the news because poster is not effective now. Please edit if you want.', 58 '_News_News_ErrorUnread' => 'Failed to return the news to unread.', 59 '_News_News_ErrorUpdate' => 'Failed to update the news.', 60 '_News_News_MessageConfirmUnread' => 'Are you sure to return to unread?', 61 '_News_News_MessageConfirmUpdate' => 'This news will need to approve again. Are you sure to update?', 62 '_News_News_MessageDelete' => 'The news is deleted.', 63 '_News_News_MessageNewsNotSelected' => 'Please select a news.', 64 '_News_News_MessagePostToPublic' => 'The news is posted. It is open to the public.', 65 '_News_News_MessagePostToWaiting' => 'The news is posted. It will be open to the public after approval.', 66 '_News_News_MessageRepostToPublic' => 'The news is posted again. It is open to the public.', 67 '_News_News_MessageRepostToWaiting' => 'The news is posted again. It will be open to the public after approval.', 68 '_News_News_MessageReturnComment' => 'You can append comment.', 69 '_News_News_MessageReturned' => 'Please repost if you want to approve the news.', 70 '_News_News_MessageThereAreReturnedNews' => 'There are %s returned articles. Please edit and post again.', 71 '_News_News_MessageThereAreWaitingApprovalNews' => 'There are %s articles waiting to be approved. Please approve or return.', 72 '_News_News_MessageThereAreWaitingNews' => 'There are %s articles waiting to be approved. ', 73 '_News_News_MessageUnableToReturnInvalidUser' => 'You can not return the news because poster is not effective now.', 74 '_News_News_MessageUnableToReturnGuestUser' => 'You can not return the news because poster is guest', 75 '_News_News_MessageUnread' => 'The news is returned to unread.', 76 '_News_News_MessageUpdate' => 'The news is updated.', 77 }) 49 78 end 50 79 end components/news/trunk/news/languages/japanese.rb
r5690 r5760 1 1 module RubricksLanguage 2 2 def define_lang 3 lang('japanese')['_News_Info_Description'] = 'ãµã€ãã®æŽæ°æ 4 å ±çãæçš¿ã»è¡šç€ºããããã®ã³ã³ããŒãã³ãã§ãã' 5 lang('japanese')['_News_Info_DisplayName'] = 'ãã¥ãŒã¹' 6 lang('japanese')['_News_Info_TrailRead'] = 'ãã¥ãŒã¹ã®é²èЧ' 7 lang('japanese')['_News_Info_TrailUpdate'] = 'ãã¥ãŒã¹ã®æçš¿ã»ç·šéã»åé€' 8 lang('japanese')['_News_Title_Config'] = 'ãã¥ãŒã¹èšå®' 9 lang('japanese')['_News_Need_Approval_Posted_News'] = 'æçš¿ããããã¥ãŒã¹ã«æ¿èªãå¿ 10 èŠ' 11 lang('japanese')['_News_News_Per_Page']= 'ãã¥ãŒã¹äžèЧ1ããŒãžã«è¡šç€ºãããã¥ãŒã¹ä»¶æ°' 12 lang('japanese')['_News_News_Per_Block']= 'ãããã¯ã«è¡šç€ºãããã¥ãŒã¹ä»¶æ°' 13 lang('japanese')['_News_New_Days']= 'æ°çãã¥ãŒã¹ãšããæ¥æ°' 14 lang('japanese')['_News_Last_Update'] = 'æçµæŽæ°æ¥' 15 lang('japanese')['_News_Title_News'] = 'ãã¥ãŒã¹' 16 lang('japanese')['_News_Setting'] = 'ãã¥ãŒã¹èšå®' 17 lang('japanese')['_News_Publish_Date'] = 'å 18 ¬éæ¥' 19 lang('japanese')['_News_Posted_Date'] = 'æçš¿æ¥' 20 lang('japanese')['_News_Repost'] = 'åæçš¿' 21 lang('japanese')['_News_Article_Text'] = 'èšäºæ¬æ' 22 lang('japanese')['_News_State_Waiting'] = 'æ¿èªåŸ 23 ã¡' 24 lang('japanese')['_News_Approval_Item'] = 'ãã¥ãŒã¹' 25 lang('japanese')['_News_Title_Access'] = 'ãã¥ãŒã¹äžèЧ' 26 lang('japanese')['_News_Authorize_Post'] = 'æçš¿æš©é' 27 lang('japanese')['_News_Authorize_Approval'] = 'æ¿èªæš©é' 28 lang('japanese')['_News_Not_Select'] = 'ãã¥ãŒã¹ãéžæããŠãã ããã' 29 lang('japanese')['_News_Components_Setting_Update'] = 'ãã¥ãŒã¹èšå®ãæŽæ°ããŸããã' 30 lang('japanese')['_News_Posted_Waiting'] = 'ãã¥ãŒã¹ãæçš¿ããŸããããã¥ãŒã¹ã¯æ¿èªåŸå 31 ¬éãããŸãã' 32 lang('japanese')['_News_Posted_Public'] = 'ãã¥ãŒã¹ãæçš¿ããŸããããã¥ãŒã¹ã¯å 33 ¬éãããŸããã' 34 lang('japanese')['_News_Reposted_Waiting'] = 'ãã¥ãŒã¹ãåæçš¿ããŸããããã¥ãŒã¹ã¯æ¿èªåŸå 35 ¬éãããŸãã' 36 lang('japanese')['_News_Reposted_Public'] = 'ãã¥ãŒã¹ãåæçš¿ããŸããããã¥ãŒã¹ã¯å 37 ¬éãããŸããã' 38 lang('japanese')['_News_Update_Success'] = 'ãã¥ãŒã¹ãæŽæ°ããŸããã' 39 lang('japanese')['_News_Multiple_Delete_Failed'] = 'å逿š©éã®ãªããã¥ãŒã¹ãéžæãããŠããŸãã' 40 lang('japanese')['_News_Delete_Success'] = 'ãã¥ãŒã¹ãåé€ããŸããã' 41 lang('japanese')['_News_Waiting_Approval'] = 'æ¿èªåŸ 42 ã¡ã®ãã¥ãŒã¹ã%sä»¶ãããŸããæ¿èªãåã¯å·®ãæ»ããè¡ã£ãŠãã ããã' 43 lang('japanese')['_News_Waiting_Message'] = 'æ¿èªåŸ 44 ã¡ã®ãã¥ãŒã¹ã%sä»¶ãããŸãã' 45 lang('japanese')['_News_Returned_Repost'] = 'å·®ãæ»ãã®ãã¥ãŒã¹ã%sä»¶ãããŸããåæçš¿ãè¡ã£ãŠãã ããã' 46 lang('japanese')['_News_Components_Setting_Update_Failed'] = 'ãã¥ãŒã¹èšå®ã®æŽæ°ã«å€±æããŸããã' 47 lang('japanese')['_News_Post_Failed'] = 'ãã¥ãŒã¹ã®æçš¿ã«å€±æããŸããã' 48 lang('japanese')['_News_Update_Failed'] = 'ãã¥ãŒã¹ã®æŽæ°ã«å€±æããŸããã' 49 lang('japanese')['_News_Delete_Failed'] = 'ãã¥ãŒã¹ã®åé€ã«å€±æããŸããã' 50 lang('japanese')['_News_Confirm_Update'] = 'ç·šéåŸãåæ¿èªãå¿ 51 èŠã§ããããããã§ããïŒ' 52 lang('japanese')['_News_Returned_Message'] = 'ããäžåºŠæ¿èªäŸé Œãè¡ãå Žåã¯ãåæçš¿ããè¡ã£ãŠãã ããã' 53 lang('japanese')['_News_Post_User'] = 'æçš¿ãŠãŒã¶' 54 lang('japanese')['_News_Display_Only_Manager'] = '管çè 55 ãæ¿èªè 56 ã®ã¿è¡šç€º' 57 lang('japanese')['_News_Return_Confirm_User_Is_Effective'] = 'æçš¿ãããŠãŒã¶ãç¡å¹ã«ãªã£ãŠãããããå·®ãæ»ãããšã¯ã§ããŸãããèšäºã®ä¿®æ£ãå¿ 58 èŠãªå Žåã¯ç·šéãè¡ã£ãŠãã ããã' 59 lang('japanese')['_News_Return_Confirm_User_Is_Effective_1'] = 'æçš¿ãããŠãŒã¶ãç¡å¹ã«ãªã£ãŠãããããå·®ãæ»ãããšã¯ã§ããŸããã' 60 lang('japanese')['_News_Return_Confirm_User_Is_Effective_2'] = 'èšäºã®ä¿®æ£ãå¿ 61 èŠãªå Žåã¯ç·šéãè¡ã£ãŠãã ããã' 62 lang('japanese')['_News_Return_Confirm_User_Is_Guest'] = 'ã²ã¹ããæçš¿ãããã¥ãŒã¹ãå·®ãæ»ãããšã¯ã§ããŸããã' 3 lang('japanese').merge!({ 4 '_News_Admin_ErrorUpdate' => 'ãã¥ãŒã¹èšå®ã®æŽæ°ã«å€±æããŸããã', 5 '_News_Admin_MessageUpdate' => 'ãã¥ãŒã¹èšå®ãæŽæ°ããŸããã', 6 '_News_Category_ErrorCreate' => 'ãã¥ãŒã¹åé¡ã®äœæã«å€±æããŸããã', 7 '_News_Category_ErrorCreateMaxRecord' => 'ãã以äžãã¥ãŒã¹åé¡ãäœæããããšã¯ã§ããŸããã', 8 '_News_Category_ErrorDelete' => 'ãã¥ãŒã¹åé¡ã®åé€ã«å€±æããŸããã', 9 '_News_Category_ErrorDeleteDefaultCategory' => 'ãã¥ãŒã¹åé¡ã®åæå€ãåé€ããããšã¯ã§ããŸããã', 10 '_News_Category_ErrorUpdate' => 'ãã¥ãŒã¹åé¡ã®æŽæ°ã«å€±æããŸããã', 11 '_News_Category_MessageCreate' => 'ãã¥ãŒã¹åé¡ãäœæããŸããã', 12 '_News_Category_MessageDelete' => 'ãã¥ãŒã¹åé¡ãåé€ããŸããã', 13 '_News_Category_MessageDeleteConfirm' => 'åé€ããããã¥ãŒã¹åé¡ã«å±ããå 14 šãŠã®ãã¥ãŒã¹ã¯åæå€ã®ãã¥ãŒã¹åé¡ã«ç§»åããŸããåé€ããŠããããã§ããïŒ', 15 '_News_Category_MessageNotSelected' => 'ãã¥ãŒã¹åé¡ãéžæãããŠããŸããã', 16 '_News_Category_MessageUpdate' => 'ãã¥ãŒã¹åé¡ãæŽæ°ããŸããã', 17 '_News_Common_Category' => 'åé¡', 18 '_News_Common_CategoryCreate' => 'æ°èŠãã¥ãŒã¹åé¡', 19 '_News_Common_CategoryList' => 'ãã¥ãŒã¹åé¡äžèЧ', 20 '_News_Common_CategoryName' => 'ãã¥ãŒã¹åé¡å', 21 '_News_Common_CategoryUpdate' => 'ãã¥ãŒã¹å顿޿°', 22 '_News_Common_Article' => 'èšäºæ¬æ', 23 '_News_Common_NeedApproval' => 'æçš¿ããããã¥ãŒã¹ã«æ¿èªãå¿ 24 èŠ', 25 '_News_Common_News' => 'ãã¥ãŒã¹', 26 '_News_Common_NewsList' => 'ãã¥ãŒã¹äžèЧ', 27 '_News_Common_NewsPerBlock' => 'ãããã¯ã«è¡šç€ºãããã¥ãŒã¹ä»¶æ°', 28 '_News_Common_NewsPerPage' => 'ãã¥ãŒã¹äžèЧ1ããŒãžã«è¡šç€ºãããã¥ãŒã¹ä»¶æ°', 29 '_News_Common_NewsSetting' => 'ãã¥ãŒã¹èšå®', 30 '_News_Common_LastUpdate' => 'æçµæŽæ°æ¥', 31 '_News_Common_PostedDate' => 'æçš¿æ¥', 32 '_News_Common_PublishDate' => 'å 33 ¬éæ¥', 34 '_News_Common_Repost' => 'åæçš¿', 35 '_News_Common_ReturnComment' => 'ã³ã¡ã³ãïŒ ã%sã', 36 '_News_Common_Unread' => 'æªèªã«æ»ã', 37 '_News_Filter_ButtonPublicNews' => 'å 38 ¬éãã¥ãŒã¹', 39 '_News_Filter_ButtonReturnNews' => 'å·®æ»ãã¥ãŒã¹', 40 '_News_Filter_ButtonWaitingNews' => 'æ¿èªåŸ 41 ã¡ãã¥ãŒã¹', 42 '_News_Filter_CategoryAll' => 'å 43 šåé¡', 44 '_News_Filter_StateAll' => 'æ¢èªã»æªèª', 45 '_News_Filter_StateNotRead' => 'æªèªã®ã¿', 46 '_News_Info_BlockDescIndex' => 'ãã¥ãŒã¹ãããã¯', 47 '_News_Info_BlockTitleIndex' => 'ãã¥ãŒã¹', 48 '_News_Info_Description' => 'ãµã€ãã®æŽæ°æ 49 å ±çãæçš¿ã»è¡šç€ºããããã®ã³ã³ããŒãã³ãã§ãã', 50 '_News_Info_DisplayName' => 'ãã¥ãŒã¹', 51 '_News_Info_FunctionApproval' => 'æ¿èªæš©é', 52 '_News_Info_FunctionPost' => 'æçš¿æš©é', 53 '_News_Info_MenuDescAdmin' => 'ãã¥ãŒã¹èšå®', 54 '_News_Info_MenuDescCategory' => 'ãã¥ãŒã¹åé¡ç®¡ç', 55 '_News_Info_MenuDescIndex' => 'ãã¥ãŒã¹äžèЧ', 56 '_News_Info_MenuTitleAdmin' => 'ãã¥ãŒã¹èšå®', 57 '_News_Info_MenuTitleCategory' => 'ãã¥ãŒã¹åé¡ç®¡ç', 58 '_News_Info_MenuTitleIndex' => 'ãã¥ãŒã¹äžèЧ', 59 '_News_Info_TrailRead' => 'ãã¥ãŒã¹ã®é²èЧ', 60 '_News_Info_TrailUpdate' => 'ãã¥ãŒã¹ã®æçš¿ã»ç·šéã»åé€', 61 '_News_News_ErrorDelete' => 'ãã¥ãŒã¹ã®åé€ã«å€±æããŸããã', 62 '_News_News_ErrorDeleteWithoutPermission' => 'å逿š©éã®ãªããã¥ãŒã¹ãéžæãããŠããŸãã', 63 '_News_News_ErrorPost' => 'ãã¥ãŒã¹ã®æçš¿ã«å€±æããŸããã', 64 '_News_News_ErrorReturnInvalidUser' => 'æçš¿ãããŠãŒã¶ãç¡å¹ã«ãªã£ãŠãããããå·®ãæ»ãããšã¯ã§ããŸãããèšäºã®ä¿®æ£ãå¿ 65 èŠãªå Žåã¯ç·šéãè¡ã£ãŠãã ããã', 66 '_News_News_ErrorUnread' => 'ãã¥ãŒã¹ãæªèªã«æ»ãéã«ãšã©ãŒãçºçããŸããã', 67 '_News_News_ErrorUpdate' => 'ãã¥ãŒã¹ã®æŽæ°ã«å€±æããŸããã', 68 '_News_News_MessageConfirmUnread' => 'æªèªã«æ»ããŸããããããã§ããïŒ', 69 '_News_News_MessageConfirmUpdate' => 'ç·šéåŸãåæ¿èªãå¿ 70 èŠã§ããããããã§ããïŒ', 71 '_News_News_MessageDelete' => 'ãã¥ãŒã¹ãåé€ããŸããã', 72 '_News_News_MessageNewsNotSelected' => 'ãã¥ãŒã¹ãéžæããŠãã ããã', 73 '_News_News_MessagePostToPublic' => 'ãã¥ãŒã¹ãæçš¿ããŸããããã¥ãŒã¹ã¯å 74 ¬éãããŸããã', 75 '_News_News_MessagePostToWaiting' => 'ãã¥ãŒã¹ãæçš¿ããŸããããã¥ãŒã¹ã¯æ¿èªåŸå 76 ¬éãããŸãã', 77 '_News_News_MessageRepostToPublic' => 'ãã¥ãŒã¹ãåæçš¿ããŸããããã¥ãŒã¹ã¯å 78 ¬éãããŸããã', 79 '_News_News_MessageRepostToWaiting' => 'ãã¥ãŒã¹ãåæçš¿ããŸããããã¥ãŒã¹ã¯æ¿èªåŸå 80 ¬éãããŸãã', 81 '_News_News_MessageReturnComment' => 'ã³ã¡ã³ããå 82 ¥åããããšãã§ããŸãã(ä»»æ)', 83 '_News_News_MessageReturned' => 'ããäžåºŠæ¿èªäŸé Œãè¡ãå Žåã¯ãåæçš¿ããè¡ã£ãŠãã ããã', 84 '_News_News_MessageThereAreReturnedNews' => 'å·®ãæ»ãã®ãã¥ãŒã¹ã%sä»¶ãããŸããåæçš¿ãè¡ã£ãŠãã ããã', 85 '_News_News_MessageThereAreWaitingApprovalNews' => 'æ¿èªåŸ 86 ã¡ã®ãã¥ãŒã¹ã%sä»¶ãããŸããæ¿èªãåã¯å·®ãæ»ããè¡ã£ãŠãã ããã', 87 '_News_News_MessageThereAreWaitingNews' => 'æ¿èªåŸ 88 ã¡ã®ãã¥ãŒã¹ã%sä»¶ãããŸãã', 89 '_News_News_MessageUnableToReturnInvalidUser' => 'æçš¿ãããŠãŒã¶ãç¡å¹ã«ãªã£ãŠãããããå·®ãæ»ãããšã¯ã§ããŸããã', 90 '_News_News_MessageUnableToReturnGuestUser' => 'ã²ã¹ããæçš¿ãããã¥ãŒã¹ãå·®ãæ»ãããšã¯ã§ããŸããã', 91 '_News_News_MessageUnread' => 'ãã¥ãŒã¹ãæªèªã«æ»ããŸããã', 92 '_News_News_MessageUpdate' => 'ãã¥ãŒã¹ãæŽæ°ããŸããã', 93 }) 63 94 end 64 95 end components/news/trunk/news/news/_main_news_create_window.rhtml
r5697 r5760 1 1 <% if has_post? %> 2 2 <% render_window('news_create_window', 'rubricks.news.news_create_window', hl('[_Common_New]'), {:width => 900, :height => 650,}) do %> 3 <%= tiny_mce_form_remote_tag(:u pdate => 'news_list_frame',:url => {:controller=>'/news/news', :action=>'post'}, :textarea_id => 'post_news_article', :max_length => 10000, :html => {:onsubmit => "rubricks.news.submit_create_news();", :id => 'news_create_form'}) %>3 <%= tiny_mce_form_remote_tag(:url => {:controller=>'/news/news', :action=>'post'}, :textarea_id => 'post_news_article', :max_length => 10000, :html => {:onsubmit => "rubricks.news.submit_create_news();", :id => 'news_create_form'}) %> 4 4 <% validate_form('news_create_button') do %> 5 5 <table class="rubricks_general_table"> … … 10 10 <%= text_field 'post_news', 'title', :size => 32, :class => 'input_text_inactive focus' %> 11 11 <span id="post_news_title_msg"></span> 12 </td> 13 </tr> 14 <tr class="rubricks_general_table_even"> 15 <td class="text_bold" style="width:20%;"><%= hl('[_Common_Category]') %></td> 16 <td style="width:80%;"> 17 <%= select_tag('post_news[category_id]', options_for_select(@select_options , @selected_category))%> 12 18 </td> 13 19 </tr> … … 22 28 <tr class="rubricks_general_table_even"> 23 29 <td class="text_bold" colspan=2> 24 <%= hl("[_News_ Article_Text]") %>30 <%= hl("[_News_Common_Article]") %> 25 31 <%= text_area 'post_news', 'article', :class => "rubricks_general_window", :style => "width:100%; height:300px;" %> 26 32 </td> components/news/trunk/news/news/_news_content.rhtml
r5690 r5760 1 <table class="rubricks_wysiwyg_table" id="news_table" style='table-layout: fixed;'>1 <table class="rubricks_wysiwyg_table" id="news_table" <%= (msie?) ? 'style="table-layout:fixed;"' : '' %>> 2 2 <tbody> 3 <tr class="rubricks_general_table_even">4 <td class="rubricks_wysiwyg_table_td" style="width:15%;font-weight: bold;"><%= hl("[_Common_Title]") %></td>5 <td id="news_detail_title" class="rubricks_wysiwyg_table_td" style="width:85%;" colspan="3">6 <%= hl(@news.title) %>7 < /td>3 <tr style="height:0px;"> 4 <td style="width:15%;"></td> 5 <td style="width:35%;"></td> 6 <td style="width:15%;"></td> 7 <td style="width:35%;"></td> 8 8 </tr> 9 9 <tr class="rubricks_general_table_even"> 10 <% unless @news.rubricks_user %> 11 <td class="rubricks_wysiwyg_table_td" style="width:15%;font-weight: bold;"><%= hl("[_Common_Poster]") %></td> 12 <td id="news_detail_display_name" class="rubricks_wysiwyg_table_td poster_untrusted" style="overflow:hidden;width:40%;"> 13 <%= hl(@news.display_name) %> 14 </td> 15 <td class="rubricks_wysiwyg_table_td" style="width:15%;font-weight: bold;"><%= hl(@news_date_name) %></td> 16 <td id="news_detail_news_date" class="rubricks_wysiwyg_table_td" style="width:30%;"> 17 <%= hl(@news_date) %> 18 </td> 19 <% else %> 20 <td class="rubricks_wysiwyg_table_td" style="width:15%;font-weight: bold;"><%= hl("[_Common_Poster]") %></td> 21 <td id="news_detail_display_name" class="rubricks_wysiwyg_table_td poster_trusted" style="overflow:hidden;width:40%;"> 22 <%= hl(@news.rubricks_user.name) %> 23 </td> 24 <td class="rubricks_wysiwyg_table_td" style="width:15%;font-weight: bold;"><%= hl(@news_date_name) %></td> 25 <td id="news_detail_news_date" class="rubricks_wysiwyg_table_td" style="width:30%;"> 26 <%= hl(@news_date) %> 27 </td> 28 <% end %> 10 <td class="rubricks_wysiwyg_table_td"><span class="text_bold"><%= hl("[_Common_Title]") %></span></td> 11 <td id="news_detail_title" class="rubricks_wysiwyg_table_td" colspan="3"><div class="overflow_auto"><%= hl(@news.title) %></div></td> 29 12 </tr> 30 13 <tr class="rubricks_general_table_even"> 31 <td class="rubricks_wysiwyg_table_td" style="font-weight: bold;" colspan="4"><%= hl("[_News_Article_Text]") %></td> 14 <td class="rubricks_wysiwyg_table_td"><span class="text_bold"><%= hl("[_News_Common_Category]") %></span></td> 15 <td id="news_detail_category_name" class="rubricks_wysiwyg_table_td" colspan="3"><div class="overflow_auto"><%= hl(@news.display_category_name) %></div></td> 16 </tr> 17 <tr class="rubricks_general_table_even"> 18 <% if @news.rubricks_user %> 19 <td class="rubricks_wysiwyg_table_td"><span class="text_bold"><%= hl("[_Common_Poster]") %></span></td> 20 <td id="news_detail_display_name" class="rubricks_wysiwyg_table_td"><div class="overflow_auto"><%= render_user_link(@news.rubricks_user) %></div></td> 21 <td class="rubricks_wysiwyg_table_td"><span class="text_bold"><%= hl(@news_date_name) %></span></td> 22 <td id="news_detail_news_date" class="rubricks_wysiwyg_table_td"><div class="overflow_auto"><%= hl(@news_date) %></div></td> 23 <% else %> 24 <td class="rubricks_wysiwyg_table_td"><span class="text_bold"><%= hl("[_Common_Poster]") %></span></td> 25 <td id="news_detail_display_name" class="rubricks_wysiwyg_table_td poster_untrusted"><div class="overflow_auto"><%= hl(@news.display_name) %></div></td> 26 <td class="rubricks_wysiwyg_table_td"><span class="text_bold"><%= hl(@news_date_name) %></span></td> 27 <td id="news_detail_news_date" class="rubricks_wysiwyg_table_td"><div class="overflow_auto"><%= hl(@news_date) %></div></td> 28 <% end %> 29 </tr> 30 <tr class="rubricks_general_table_even"> 31 <td class="rubricks_wysiwyg_table_td" style="font-weight: bold;" colspan="4"><%= hl("[_News_Common_Article]") %></td> 32 32 </tr> 33 33 <tr class="rubricks_general_table_even"> 34 34 <td class="rubricks_wysiwyg_table_td" colspan="4"> 35 <% if (@news. approval == Acts::Approval::APPROVALED) && (@news.publish_date < @news.updated_on) %>36 <div style="text-align:right;">37 <%= hl("[_News_ Last_Update]") %>:<%= hl(@news.updated_on.strftime(hl("[_Common_Date_HourMinSec_Format]"))) %>35 <% if (@news.is_approvaled?) && (@news.publish_date < @news.updated_on) %> 36 <div class="text_right"> 37 <%= hl("[_News_Common_LastUpdate]") %>:<%= hl(@news.updated_on.strftime(hl("[_Common_Date_HourMinSec_Format]"))) %> 38 38 </div> 39 39 <% end %> 40 <% if params[:action] == "print_news" %> 41 <div style='overflow: hidden;width: 100%;'> 42 <% else %> 43 <div style='overflow: auto;width: 100%;'> 44 <% end %> 40 <div class="overflow_auto"> 45 41 <%= render_content_tiny_mce(@news.article, {:id => 'news_detail_content'}) %> 46 < div style='height: 25px;'></div>42 <br class="cl" /> 47 43 </div> 48 44 </td> components/news/trunk/news/news/delete_news_multiple.rhtml
r3895 r5760 6 6 <% else %> 7 7 <script type="text/javascript"> 8 rubricks.news. delete_news('<%= @delete_news_ids %>');8 rubricks.news.news_delete('<%= @delete_news_ids %>'); 9 9 rubricks.news.no_selected_news(); 10 10 </script> components/news/trunk/news/news/item_return_confirm.rhtml
r5690 r5760 13 13 ); 14 14 <% else %> 15 rubricks.common.rubricks_message_window_open('<%= hl('[_News_ Return_Confirm_User_Is_Effective]') %>');15 rubricks.common.rubricks_message_window_open('<%= hl('[_News_News_MessageUnableToReturnInvalidUser]') %>'); 16 16 <% end %> 17 17 </script> components/news/trunk/news/news/main.rhtml
r5690 r5760 4 4 <div class="rubricks_general_frame_borderless"> 5 5 <% render_operation_bar do %> 6 <%= form_tag({:controller => '/news/news', :action => 'print', :p age=> 'print_news'}, {:id => 'news_print_form', :class => 'operationbar_button_right_inactive swap', :target => "_blank"}) %>6 <%= form_tag({:controller => '/news/news', :action => 'print', :print_action => 'print_news'}, {:id => 'news_print_form', :class => 'operationbar_button_right_inactive swap', :target => "_blank"}) %> 7 7 <%= hidden_field 'print_news', 'id' %> 8 8 <span id="print_button" class="buttons disabled darkicon_print textcolor_white" onclick="rubricks.news.print_news();"><%= hl('[_Common_Print]') %></span> … … 12 12 <span id="open_news_create_window_button" class="buttons darkicon_new textcolor_white" onclick="rubricks.news.open_news_create_window('<%= hl(default_display_name.gsub("\\", "\\\\\\").gsub("'", "\\\\'").gsub("\"", "\\\\\"")) %>');"><%= hl('[_Common_New]') %></span> 13 13 </div> 14 <% if @waiting_news_is_existent_true %> 15 <div id="operationbar_button_filter_target_wait" class="operationbar_button_left_inactive swap"> 16 <span id="news_select_waiting_news_id" class="buttons darkicon_search textcolor_white" onclick="rubricks.news.filter_select_target(1); Element.hide('operationbar_button_filter_target_wait');"><%= hl('[_News_Filter_ButtonWaitingNews]') %></span> 17 </div> 18 <% end %> 19 <% if @returned_news_is_existent_true %> 20 <div id="operationbar_button_filter_target_return" class="operationbar_button_left_inactive swap"> 21 <span id="news_select_returned_news_id" class="buttons darkicon_search textcolor_white" onclick="rubricks.news.filter_select_target(2); Element.hide('operationbar_button_filter_target_return');"><%= hl('[_News_Filter_ButtonReturnNews]') %></span> 22 </div> 23 <% end %> 14 24 <% end %> 15 25 <% end %> 16 26 <% render_content_body do %> 17 27 <% render_list_frame('01') do %> 18 <% render_list('01', hl('[_News_Title_Access]')) do %> 28 <% render_list('01', hl('[_News_Common_NewsList]')) do %> 29 <%= render :partial => '/news/news/news_filter' %> 19 30 <div id="news_list_frame"> 20 <%= @news_list%>31 <%= simple_render_component('/news/news', 'news_list', {}) %> 21 32 </div> 22 33 <% end %> 23 34 <% end %> 24 35 <% render_detail_frame('01') do %> 25 <div id="news_info"> 26 <%= @news_detail %> 36 <div id="news_empty_message" style="display:none;"> 37 <% render_detail('01', '') do %> 38 <div class="rubricks_detail_information"> 39 <%= hl('[_Common_DetailInformation]') %> 40 </div> 41 <% end %> 42 </div> 43 <div id="news_info" style="display:none;"> 44 <%= simple_render_component('/news/news', 'show_news', {:id => params[:id]}) %> 27 45 </div> 28 46 <% end %> components/news/trunk/news/news/news_list.rhtml
r5690 r5760 1 <%= flash_for_feedback_msg(:news_message) %> 2 <% if News::NewsItem.waiting_news_empty? && News::NewsItem.returned_news_empty? %> 3 <%= @public_news_list %> 1 <% if @news_items.empty? %> 2 <div class="rubricks_list_message"> 3 <%= hl(['[_Common_ListMessage]', hl('[_News_Common_News]')]) %> 4 </div> 4 5 <% else %> 5 <div id="news_list_tab" style="display:none;"> 6 <div onclick="rubricks.news.show_public_news_tab();"> 7 <h3 id="public_news_tab" class="rubricks_general_tabBox_tab"><%= hl('[_Common_Open]') %></h3> 8 <div id="public_news_list_tab" class="rubricks_general_tabBox_content"><%= @public_news_list %></div> 9 </div> 10 <div onclick="rubricks.news.show_waiting_news_tab();"> 11 <h3 id="waiting_news_tab" class="rubricks_general_tabBox_tab"><%= hl('[_News_State_Waiting]') %></h3> 12 <div class="rubricks_general_tabBox_content"> 13 <div id="waiting_news_list_tab"><%= @waiting_news_list %></div> 6 <% render_float_button('news_operation_button') do %> 7 <% if has_delete_multiple? %> 8 <div id="news_select_multiple_form" class="float_button_right_inactive swap" style="display: block;"> 9 <span id="news_select_multiple_button" class="buttons icon_multiple" onclick="rubricks.news.select_multiple_mode('news_');"><%= hl('[_Common_SelectMultiple]') %></span> 14 10 </div> 15 </div> 16 <div onclick="rubricks.news.show_returned_news_tab();"> 17 <h3 id="returned_news_tab" class="rubricks_general_tabBox_tab"><%= hl('[_Common_Admit_Return]') %></h3> 18 <div class="rubricks_general_tabBox_content"> 19 <div id="returned_news_list_tab"><%= @returned_news_list %></div> 11 <div id="news_select_singular_form" class="float_button_right_inactive swap" style="display: none;"> 12 <span id="news_select_singular_button" class="buttons icon_single" onclick="rubricks.news.select_singular_mode('news_');rubricks.news.show_tab_button('news_');"><%= hl('[_Common_SelectSingular]') %></span> 20 13 </div> 21 </div> 22 </div> 14 <div id="news_news_delete_multiple_form" class="float_button_right_inactive swap" style="display: none;"> 15 <span id="news_news_delete_multiple_button" class="buttons icon_delete" onclick="rubricks.news.news_delete_multiple();"><%= hl('[_Common_Delete]') %></span> 16 </div> 17 <% end %> 18 <% end %> 19 <%= pagination_remote_links(@pages, {:params => {:update => 'news_list_frame', :url => {:controller => '/news/news', :action => 'news_list', :params => {:keep_detail_is_true => true}}}, :window_size => 5}, {:id => 'news_news_list_navigation_top'}) %> 20 <% render_selectable_table('news_news_list', 'rubricks.news.news_list', selectable_table_options(@news_id)) do %> 21 <tbody> 22 <% @news_items.each do |news| %> 23 <% render_selectable_tr(news.id) do %> 24 <td id="news_list_publish_date_<%= hl(news.id) %>" class="custom_selectableTable_td" style="width:72px;"> 25 <span> 26 <% if news.is_approvaled? %> 27 <%= hl(publish_date_to_s(news)) %> 28 <% else %> 29 <%= hl(updated_on_to_s(news)) %> 30 <% end %> 31 </span> 32 </td> 33 <td id="news_list_title_<%= hl(news.id) %>" class="custom_selectableTable_td" style="<%=(news.read?) ? '' : 'font-weight:bold;'%>"><div> 34 <%= hl(cutoff_news_title(news.title)) %> 35 </td> 36 <% end %> 37 <% end %> 38 </tbody> 39 <% end %> 40 <%= pagination_remote_links(@pages, {:params => {:update => 'news_list_frame', :url => {:controller => '/news/news', :action => 'news_list', :params => {:keep_detail_is_true => true}}}, :window_size => 5}, {:id => 'news_news_list_navigation_bottom'}) %> 41 <% end %> 42 <% if @search %> 23 43 <script type="text/javascript"> 24 new TabBox('news_list_tab', {selected:<%= hl(@news_list_tab) %>});44 setTimeout(function() {rubricks.news.filter_refocus();}, 100); 25 45 </script> 26 46 <% end %> components/news/trunk/news/news/show_news.rhtml
r5709 r5760 1 <%= flash_for_feedback_msg(:news_message) %>2 1 <% if @news %> 3 2 <% validate_page do %> 4 3 <div id="news_edit_area"> 5 4 <div> 6 <% render_detail('01', hl('[_News_ Title_News]')) do %>5 <% render_detail('01', hl('[_News_Common_News]')) do %> 7 6 <% render_float_button('float_button_area_show') do %> 8 7 <% if has_edit?(@news) %> 9 8 <div id="news_delete_form" class="float_button_right_inactive swap"> 10 <span id="news_delete_confirm_button" class="buttons icon_delete" onclick="<%= render_confirm_window('[_Common_Delete_Confirm]', "rubricks.news. delete_news('#{hl(@news.id)}');rubricks.news.no_selected_news();") %>"><%= hl('[_Common_Delete]') %></span>9 <span id="news_delete_confirm_button" class="buttons icon_delete" onclick="<%= render_confirm_window('[_Common_Delete_Confirm]', "rubricks.news.news_delete('#{hl(@news.id)}');") %>"><%= hl('[_Common_Delete]') %></span> 11 10 </div> 12 11 <div id="news_edit_mode_form" class="float_button_right_inactive swap"> 13 <span id="news_edit_mode_button" class="buttons icon_edit" onclick="<%= (need_confirm_update?(@news))? render_confirm_window('[_News_ Confirm_Update]', "rubricks.news.become_edit_mode();") : 'rubricks.news.become_edit_mode();' %>"><%= hl(@edit_button_name) %></span>12 <span id="news_edit_mode_button" class="buttons icon_edit" onclick="<%= (need_confirm_update?(@news))? render_confirm_window('[_News_News_MessageConfirmUpdate]', "rubricks.news.become_edit_mode();") : 'rubricks.news.become_edit_mode();' %>"><%= hl(@edit_button_name) %></span> 14 13 </div> 15 14 <% end %> 16 15 <% if has_approval?(@news) %> 17 <%= form_ remote_tag(:update => 'message_area',:url => {:controller=>'/news/news', :action=>'item_return_confirm', :id => @news}, :html =>{:id => 'news_return_form', :class => 'float_button_right_inactive swap'}) %>16 <%= form_tag({:controller => '/'}, {:id => 'news_return_form', :class => 'float_button_right_inactive swap'}) %> 18 17 <% if @user_effectiv_is_true == true %> 19 <span id="news_return_confirm_button" class="buttons icon_refusal" onclick="<%= render_confirm_window('[_Common_Admit_Return_Confirm]', "rubricks.common.fire_onsubmit('news_return_form', 'news_return_confirm_button');") %>"><%= hl('[_Common_Admit_Return]') %></span> 18 <span id="news_return_confirm_button" class="buttons icon_refusal" onclick="rubricks.news.open_item_return_comment_window();"><%= hl('[_Common_Admit_Return]') %></span> 19 <%= render :partial => '/news/news/item_return_confirm_window' %> 20 20 <% else %> 21 <span id="news_return_confirm_button" class="buttons icon_refusal" ><%= hl('[_Common_Admit_Return]') %></span>21 <span id="news_return_confirm_button" class="buttons icon_refusal"><%= hl('[_Common_Admit_Return]') %></span> 22 22 <% end %> 23 23 </form> … … 26 26 </form> 27 27 <% end %> 28 <div id="news_return_unread_state_form" class="float_button_right_inactive swap" style="<%=(RubricksLib.guest?)? 'display:none;' : ''%>"> 29 <span id="news_return_unread_state" class="buttons icon_undo" onclick="<%= render_confirm_window('[_News_News_MessageConfirmUnread]', "rubricks.news.news_return_unread_state('#{hl(@news.id)}');") %>"><%= hl('[_News_Common_Unread]') %></span> 30 </div> 28 31 <% end %> 29 32 <% if @news.is_returned? && @nc.approval %> 30 <div class="pointcolor_text" style="margin:0 15px;"><%= hl('[_News_Returned_Message]') %></div> 33 <div class="pointcolor_text news_additional_commont"> 34 <p><%= hl('[_News_News_MessageReturned]') %></p> 35 <% unless @news.comment.blank? %> 36 <p><%= hl('[_News_Common_ReturnComment]', @news.comment) %></p> 37 <% end %> 38 </div> 31 39 <% end %> 32 <% if (@user_effectiv_is_true != true)&& !(@news.is_returned?)&&(@news.approval != 1)%>33 <div class="pointcolor_text " style="margin:0 15px;">40 <% if @user_effectiv_is_true.blank? && @news.is_waiting? %> 41 <div class="pointcolor_text news_additional_commont"> 34 42 <% if @news.rubricks_user %> 35 <%= hl('[_News_ Return_Confirm_User_Is_Effective_1]') %>43 <%= hl('[_News_News_MessageUnableToReturnInvalidUser]') %> 36 44 <% else %> 37 <%= hl('[_News_ Return_Confirm_User_Is_Guest]') %>45 <%= hl('[_News_News_MessageUnableToReturnGuestUser]') %> 38 46 <% end %> 39 47 </div> … … 48 56 <div style="display:none;"> 49 57 <% if has_edit?(@news) %> 50 <% render_detail('01', hl('[_News_ Title_News]')) do %>58 <% render_detail('01', hl('[_News_Common_News]')) do %> 51 59 <% validate_form('news_edit_button') do %> 52 <%= tiny_mce_form_remote_tag(:u pdate => 'news_list_frame',:url => {:controller=>'/news/news', :action=>'update', :id => @news}, :textarea_id => 'news_article', :max_length => 10000, :html => {:id => 'news_edit_form'}) %>60 <%= tiny_mce_form_remote_tag(:url => {:controller=>'/news/news', :action=>'update', :id => @news}, :textarea_id => 'news_article', :max_length => 10000, :html => {:id => 'news_edit_form', :onsubmit => %Q|rubricks.common.FormEditor.readMode('news_edit_area');|}) %> 53 61 <% render_float_button('float_button_area_edit') do %> 54 62 <div class="float_button_right_inactive swap"> … … 68 76 </td> 69 77 </tr> 78 <tr class="rubricks_general_table_even"> 79 <td class="text_bold" style="width:20%;"><%= hl('[_News_Common_Category]') %></td> 80 <td style="width:80%;"> 81 <%= select_tag('news[category_id]', options_for_select(@select_options, @selected_category)) %> 82 </td> 83 </tr> 70 84 <tr class="rubricks_general_table_even" <%= (@news.rubricks_user) ? 'style="display:none;"' : '' %>> 71 85 <%= validate 'news_display_name', [{:required => true}, {:length => '1..32'}] %> … … 78 92 <tr class="rubricks_general_table_even"> 79 93 <td class="text_bold" colspan=2> 80 <%= hl("[_News_ Article_Text]") %>94 <%= hl("[_News_Common_Article]") %> 81 95 <%= text_area 'news', 'article', :class => "rubricks_general_window", :style => "height:300px; width:100%;" %> 82 96 </td> … … 91 105 </div> 92 106 <% end %> 93 <div id="message_area" style="display:none"></div>94 107 <script type="text/javascript"> 95 108 rubricks.news.init('<%= @news.id %>', <%= has_edit?(@news) %>); 109 rubricks.news.detail_area_show(); 96 110 </script> 97 111 <% else %> 98 <% render_detail('01', hl('[_News_Title_News]')) do %>99 <div class="rubricks_detail_information">100 <%= hl('[_Common_DetailInformation]') %>101 </div>102 <% end %>103 112 <script type="text/javascript"> 104 113 Element.addClassName('print_button', 'disabled'); 105 114 $('print_news_id').value = ''; 115 rubricks.news.detail_area_hide(); 106 116 </script> 107 117 <% end %> components/news/trunk/news/news_config.rb
r4612 r5760 1 1 class News::NewsConfig < ActiveRecord::Base 2 acts_as_record_trails :trails_fields => {:approval => '[_News_ Need_Approval_Posted_News]', :news_per_block => '[_News_News_Per_Block]', :news_per_page => '[_News_News_Per_Page]', :new_days => '[_News_New_Days]'}, :default_methods => [:approval, :news_per_block, :news_per_page, :new_days], :auto_logger => {:update => true}2 acts_as_record_trails :trails_fields => {:approval => '[_News_Common_NeedApproval]', :news_per_block => '[_News_Common_NewsPerBlock]', :news_per_page => '[_News_Common_NewsPerPage]'}, :default_methods => [:approval, :news_per_block, :news_per_page] 3 3 validates_bool_of :approval 4 4 validates_inclusion_of :news_per_block, :in => 1..20 components/news/trunk/news/news_controller.rb
r5709 r5760 1 1 class News::NewsController < ApplicationController 2 include News::NewsHelper3 2 define_page 4 3 uses_component_template_root 5 4 use_tiny_mce_attachable 6 contents_approval_controller('/news/news_item', :approval_item => '[_News_ Approval_Item]', :approval_action => 'main',7 :after_approve_action => 'news_list', :after_return_action => 'news_list', :approval_componemt => 'news', :approval_function => 'approval')5 contents_approval_controller('/news/news_item', :approval_item => '[_News_Common_News]', :approval_action => 'main', :after_approve_action => 'news_approval', :after_return_action => 'news_approval', :approval_componemt => 'news', :approval_function => 'approval') 6 helper :'news/common' 8 7 authorize :access 9 8 authorize :approval, :only => [:before_approve, :item_approve, :item_return, :after_approve, :after_return] 10 authorize :post, :only => [:post ]9 authorize :post, :only => [:post,:create_news_window] 11 10 12 11 def main 13 @news_list = simple_render_component_as_string('/news/news', 'news_list', params)14 @news_detail = simple_render_component_as_string('/news/news', 'show_news', params)15 16 12 if current_user.id != RubricksUser::GUEST_USER_ID 17 13 waiting_count = News::NewsItem.waiting_news_count 18 14 unless waiting_count == 0 15 @waiting_news_is_existent_true = true 19 16 if permitted_current_component_function?('approval') 20 add_news_message(RubricksLib.hl('[_News_ Waiting_Approval]', waiting_count))21 else 22 add_news_message(RubricksLib.hl('[_News_ Waiting_Message]', waiting_count))17 add_news_message(RubricksLib.hl('[_News_News_MessageThereAreWaitingApprovalNews]', waiting_count)) 18 else 19 add_news_message(RubricksLib.hl('[_News_News_MessageThereAreWaitingNews]', waiting_count)) 23 20 end 24 21 end 25 22 returned_count = News::NewsItem.returned_news_count 26 23 unless returned_count == 0 27 add_news_message(RubricksLib.hl('[_News_Returned_Repost]', returned_count)) 28 end 29 end 24 @returned_news_is_existent_true = true 25 add_news_message(RubricksLib.hl('[_News_News_MessageThereAreReturnedNews]', returned_count)) 26 end 27 end 28 @select_options = News::NewsCategory.select_options 29 @selected_category = News::NewsCategory.selected_category 30 @select_options_for_filter = @select_options.dup.unshift(News::NewsCategory.default_select_option) 31 set_filter_conditions('news_filter', {}) 32 end 33 34 def after_approve(item) 35 add_news_message(RubricksLib.hl('[_Common_Approval_Success]', RubricksLib.hl('[_News_Common_News]'))) 36 end 37 38 def after_return(item) 39 item.update_attribute(:comment, params[:comment]) 40 add_news_message(RubricksLib.hl('[_Common_Approval_Return_Success]', RubricksLib.hl('[_News_Common_News]'))) 41 end 42 43 def before_approve(item) 44 item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 45 end 46 47 def before_return(item) 48 news_user = RubricksUser.find_by_id(item.rubricks_user_id) 49 raise RubricksError::Common::AjaxError, '[_News_News_ErrorReturnInvalidUser]' unless news_user.effective 50 end 51 52 def delete 53 check_permission 54 delete_news_id_list = (params[:delete_news_id]) ? params[:delete_news_id].split(',') : [] 55 raise RubricksError::Common::AjaxError, '[_News_News_ErrorDeleteWithoutPermission]' unless check_all_own_news(delete_news_id_list) 56 if delete_news_id_list && delete_news_id_list.first 57 news_item = News::NewsItem.find(delete_news_id_list.first) 58 if news_item.is_waiting? 59 page_name = 'waiting_page' 60 elsif news_item.is_returned? 61 page_name = 'returned_page' 62 else 63 page_name = 'public_page' 64 end 65 end 66 ActiveRecord::Base.transaction do 67 delete_news_id_list.each do |delete_news_id| 68 news = News::NewsItem.find(delete_news_id) 69 unless News::NewsLib.administrator? 70 unless news.is_approvaled? 71 unless check_own_news(delete_news_id) 72 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 73 end 74 end 75 end 76 if News::NewsItem.destroy(delete_news_id) 77 add_news_message('[_News_News_MessageDelete]') 78 else 79 add_news_message('[_News_News_ErrorDelete]') 80 end 81 end 82 end 83 @detail_hide = true 84 headers["Content-Type"] = "text/javascript" 85 render :template => '/news/news/update.rjs' 86 end 87 88 def file_accessable?(ra) 89 return true if News::NewsLib.administrator? 90 ral = ra.rubricks_attachment_links 91 if ral.empty? 92 return News::NewsLib.has_post? 93 end 94 news = News::NewsItem.find(ral.first.rubricks_attachable_id) 95 return false unless news 96 return news.accessable? 97 end 98 99 def news_approval 30 100 end 31 101 32 102 def news_list 33 news_id = params[:news_id] ||= params[:id] 34 if news_id 35 news_item = News::NewsItem.find(news_id) rescue news_id = nil 36 end 37 unless params[:page_name] 38 if guest? || !news_item || news_item.is_approvaled? 39 params[:page_name] = 'public_page' 40 elsif news_item.is_waiting? 41 params[:page_name] = 'waiting_page' 42 elsif news_item.is_returned? 43 params[:page_name] = 'returned_page' 44 end 45 end 46 case params[:page_name] 47 when 'waiting_page' 48 params[:page_name] = 'public_page' if News::NewsItem.waiting_news_empty? 49 when 'returned_page' 50 params[:page_name] = 'public_page' if News::NewsItem.returned_news_empty? 51 end 52 case params[:page_name] 53 when 'public_page' 54 @news_list_tab = "1" 55 @public_news_list = simple_render_component_as_string('/news/news', 'public_news_list', params) 56 when 'waiting_page' 57 @news_list_tab = "2" 58 @waiting_news_list = simple_render_component_as_string('/news/news', 'waiting_news_list', params) 59 when 'returned_page' 60 @news_list_tab = "3" 61 @returned_news_list = simple_render_component_as_string('/news/news', 'returned_news_list', params) 62 end 63 end 64 65 def item_return_confirm 66 item = News::NewsItem.find_by_id(params[:id]) 67 news_user = RubricksUser.find_by_id(item.rubricks_user_id) 68 if news_user.effective == true 69 @message_is_true = false 70 @item_id = params[:id] 71 else 72 @message_is_true = true 73 end 74 end 75 76 def public_news_list 77 news_id = params[:news_id] ||= params[:id] 78 @nc = News::NewsConfig.instance 79 if news_id 80 news_item = News::NewsItem.find(news_id) rescue news_item = nil 81 if news_item && (news_item.is_approvaled? || !guest?) 82 news_count = News::NewsItem.count(:conditions => ['approval = 1 and (publish_date > ? or (publish_date = ? and id > ?))', news_item.publish_date, news_item.publish_date, news_item.id]) 83 params[:page] = news_count / @nc.news_per_page + 1 84 @show_news_id = news_id 85 end 86 end 87 @pages, @news_items = paginate(:'news/news_item', :per_page => @nc.news_per_page, :conditions => ['approval = 1'], :order => 'publish_date DESC, id DESC') 103 @nc = News::NewsConfig.instance 104 @news_id = params[:id] || 0 105 per_page = @nc.news_per_page 106 filter_conditions = filter_merge_conditions({:input_data => params[:news_filter], :page => params[:page].to_i}) 107 @search = filter_conditions[:search] 108 count = News::NewsItem.count(:all, :conditions => filter_conditions[:conditions], :include => :news_already_reads) 109 @pages = ::ActionController::Pagination::Paginator.new(self, count, per_page, filter_conditions[:page]) 110 @news_items = News::NewsItem.find(:all, :conditions => filter_conditions[:conditions], :include => :news_already_reads, :limit => @pages.items_per_page, :offset => @pages.current.offset, :order => filter_conditions[:order]) 88 111 rubricks_logger({:action_type => :list, :data => @news_items}) 89 end90 91 def waiting_news_list92 approval_news_list(Acts::Approval::WAITING)93 end94 95 def returned_news_list96 approval_news_list(Acts::Approval::RETURNED)97 end98 99 def show_news100 @nc = News::NewsConfig.instance101 news_id = params[:news_id] ||= params[:id]102 if news_id103 @news = News::NewsItem.find(news_id) rescue return104 if !administrator?105 if !@news.is_approvaled?106 unless check_own_news(news_id)107 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller108 end109 end110 end111 news_user = RubricksUser.find_by_id(@news.rubricks_user_id)112 if news_user113 if news_user.effective == true114 @user_effectiv_is_true = true115 else116 @user_effectiv_is_true = false117 end118 end119 if @news.is_approvaled?120 @news_date_name = '[_News_Publish_Date]'121 @news_date = @news.publish_date.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))122 @edit_button_name = '[_Common_Edit]'123 @edit_submit_button_name = '[_Common_Save]'124 elsif @news.is_waiting?125 @news_date_name = '[_News_Posted_Date]'126 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))127 @edit_button_name = '[_Common_Edit]'128 @edit_submit_button_name = '[_Common_Save]'129 elsif @news.is_returned?130 @news_date_name = '[_News_Posted_Date]'131 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))132 @edit_button_name = '[_News_Repost]'133 @edit_submit_button_name = '[_Common_Submit]'134 end135 end136 rubricks_logger({:action_type => :detail, :data => @news})137 end138 139 def news_window140 news_id = params[:id]141 @news = News::NewsItem.find(news_id) rescue return142 @news_date_name = '[_News_Publish_Date]'143 @news_date = @news.publish_date.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]'))144 end145 146 def update147 check_permission148 nc = News::NewsConfig.instance149 ru = current_user150 news_id = params[:id]151 unless check_own_news(news_id)152 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller153 end154 @news_item = News::NewsItem.find(news_id)155 before_approval = @news_item.approval156 @news_item.title = params[:news][:title]157 @news_item.display_name = params[:news][:display_name]158 @news_item.article = params[:news][:article]159 if @news_item.is_returned?160 if !nc.approval161 @news_item.approval = Acts::Approval::APPROVALED162 @news_item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S")163 else164 @news_item.approval = Acts::Approval::WAITING165 end166 elsif need_confirm_update?(@news_item)167 @news_item.approval = Acts::Approval::WAITING168 end169 if @news_item.save170 if before_approval == Acts::Approval::RETURNED171 if @news_item.is_approvaled?172 add_news_message('[_News_Reposted_Public]')173 else174 add_news_message('[_News_Reposted_Waiting]')175 end176 else177 add_news_message('[_News_Update_Success]')178 end179 else180 add_news_message('[_News_Post_Failed]')181 end182 redirect_to :controller => "/news/news", :action => 'news_list', :params => {:id => @news_item.id, :show_news => true}183 112 end 184 113 … … 193 122 @news_item.rubricks_user_id = ru.id unless ru.id == RubricksUser::GUEST_USER_ID 194 123 @news_item.approval = Acts::Approval::WAITING 195 124 @news_item.news_category_id = params[:post_news][:category_id] 196 125 if @news_item.is_waiting? && (!nc.approval || permitted_current_component_function?('approval') && @news_item.my_news?) 197 126 @news_item.approval = Acts::Approval::APPROVALED 198 127 @news_item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 199 128 end 200 201 if @news_item.save 202 if @news_item.is_approvaled? 203 add_news_message('[_News_Posted_Public]') 129 count = News::NewsCategory.count(:conditions =>['id = ?', params[:post_news][:category_id]]) 130 if count == 0 131 raise ActiveRecord::RecordNotFound 132 else 133 if @news_item.save 134 if @news_item.is_approvaled? 135 add_news_message('[_News_News_MessagePostToPublic]') 136 else 137 add_news_message('[_News_News_MessagePostToWaiting]') 138 end 204 139 else 205 add_news_message('[_News_Posted_Waiting]') 206 end 207 else 208 add_news_message('[_News_Post_Failed]') 209 end 210 redirect_to :controller => "/news/news", :action => 'news_list', :params => {:id => @news_item.id} 211 end 212 213 def delete_news_multiple 214 check_permission 215 216 delete_news_id_list = (params[:delete_news_id]) ? params[:delete_news_id].split(',') : [] 217 if !check_all_own_news(delete_news_id_list) 218 flash[:validate_delete_news_message] = '[_News_Multiple_Delete_Failed]' 219 else 220 @delete_news_ids = (params[:delete_news_id]) ? params[:delete_news_id] : '' 221 end 222 end 223 224 def delete 225 check_permission 226 227 delete_news_id_list = (params[:delete_news_id]) ? params[:delete_news_id].split(',') : [] 228 229 if delete_news_id_list && delete_news_id_list.first 230 news_item = News::NewsItem.find(delete_news_id_list.first) 231 if news_item.is_waiting? 232 page_name = 'waiting_page' 233 elsif news_item.is_returned? 234 page_name = 'returned_page' 235 else 236 page_name = 'public_page' 237 end 238 end 239 ActiveRecord::Base.transaction do 240 delete_news_id_list.each do |delete_news_id| 241 news = News::NewsItem.find(delete_news_id) 242 if !administrator? 243 if !news.is_approvaled? 244 unless check_own_news(delete_news_id) 245 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 246 end 247 end 248 end 249 if News::NewsItem.destroy(delete_news_id) 250 add_news_message('[_News_Delete_Success]') 251 else 252 add_news_message('[_News_Delete_Failed]') 253 end 254 end 255 end 256 257 redirect_to :controller => "/news/news", :action => 'news_list', :params => {:page_name => page_name} 258 end 259 260 def block 261 News::NewsItem.approved_scope do 262 @nc = News::NewsConfig.instance 263 @news_items = News::NewsItem.find(:all, :limit => @nc.news_per_block, :order => 'publish_date DESC, id DESC') 264 end 265 end 266 267 def before_approve(item) 268 item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 269 end 270 271 def after_approve(item) 272 add_news_message(RubricksLib.hl('[_Common_Approval_Success]', RubricksLib.hl('[_News_Approval_Item]'))) 273 end 274 275 def after_return(item) 276 add_news_message(RubricksLib.hl('[_Common_Approval_Return_Success]', RubricksLib.hl('[_News_Approval_Item]'))) 140 add_news_message('[_News_News_ErrorPost]') 141 end 142 headers["Content-Type"] = "text/javascript" 143 render :template => '/news/news/update.rjs' 144 end 277 145 end 278 146 … … 280 148 @news = News::NewsItem.find(params[:print_news][:id]) 281 149 if @news.is_approvaled? 282 @news_date_name = '[_News_ Publish_Date]'150 @news_date_name = '[_News_Common_PublishDate]' 283 151 @news_date = @news.publish_date.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 284 152 elsif @news.is_waiting? 285 @news_date_name = '[_News_ Posted_Date]'153 @news_date_name = '[_News_Common_PostedDate]' 286 154 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 287 155 elsif @news.is_returned? 288 @news_date_name = '[_News_ Posted_Date]'156 @news_date_name = '[_News_Common_PostedDate]' 289 157 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 290 158 end … … 292 160 end 293 161 294 def file_accessable?(ra) 295 return true if administrator? 296 ral = ra.rubricks_attachment_links 297 if ral.empty? 298 return has_post? 299 end 300 news = News::NewsItem.find(ral.first.rubricks_attachable_id) 301 return false unless news 302 return news.accessable? 162 def return_unread_state 163 @ni_id = params[:id].to_i 164 begin 165 ActiveRecord::Base.transaction do 166 news_already_read = News::NewsAlreadyRead.find(:first, :conditions => ["news_item_id = ? and rubricks_user_id = ? ", @ni_id, RubricksLib.current_user.id]) 167 news_already_read.destroy 168 end 169 rescue Exception => ex 170 logger.error(ex.message) 171 logger.error(ex.backtrace.join("\n ")) 172 raise RubricksError::Common::AjaxError, '[_News_News_ErrorUnread]' 173 end 174 flash[:news_message] = '[_News_News_MessageUnread]' 175 headers["Content-Type"] = "text/javascript" 176 render :template => '/news/news/return_unread_state.rjs' 177 end 178 179 def show_news 180 @nc = News::NewsConfig.instance 181 news_id = params[:news_id] ||= params[:id] 182 if news_id 183 @news = News::NewsItem.find(news_id) rescue return 184 if !News::NewsLib.administrator? 185 if !@news.is_approvaled? 186 unless check_own_news(news_id) 187 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 188 end 189 end 190 end 191 news_user = RubricksUser.find_by_id(@news.rubricks_user_id) 192 if news_user 193 if news_user.effective == true 194 @user_effectiv_is_true = true 195 else 196 @user_effectiv_is_true = false 197 end 198 end 199 if @news.is_approvaled? 200 @news_date_name = '[_News_Common_PublishDate]' 201 @news_date = @news.publish_date.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 202 @edit_button_name = '[_Common_Edit]' 203 @edit_submit_button_name = '[_Common_Save]' 204 elsif @news.is_waiting? 205 @news_date_name = '[_News_Common_PostedDate]' 206 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 207 @edit_button_name = '[_Common_Edit]' 208 @edit_submit_button_name = '[_Common_Save]' 209 elsif @news.is_returned? 210 @news_date_name = '[_News_Common_PostedDate]' 211 @news_date = @news.updated_on.strftime(RubricksLib.hl('[_Common_Date_HourMinSec_Format]')) 212 @edit_button_name = '[_News_Common_Repost]' 213 @edit_submit_button_name = '[_Common_Submit]' 214 end 215 @news.read 216 @select_options = News::NewsCategory.select_options 217 @selected_category = News::NewsCategory.selected_category(@news.news_category_id) 218 rubricks_logger({:action_type => :detail, :data => @news}) 219 end 220 end 221 222 def update 223 check_permission 224 nc = News::NewsConfig.instance 225 ru = current_user 226 news_id = params[:id] 227 unless check_own_news(news_id) 228 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 229 end 230 @news_item = News::NewsItem.find(news_id) 231 before_approval = @news_item.approval 232 @news_item.title = params[:news][:title] 233 @news_item.display_name = params[:news][:display_name] 234 @news_item.article = params[:news][:article] 235 @news_item.news_category_id = params[:news][:category_id] 236 if @news_item.is_returned? 237 if !nc.approval 238 @news_item.approval = Acts::Approval::APPROVALED 239 @news_item.publish_date = DateTime.now.strftime("%Y-%m-%d %H:%M:%S") 240 else 241 @news_item.approval = Acts::Approval::WAITING 242 end 243 elsif News::NewsLib.need_confirm_update?(@news_item) 244 @news_item.approval = Acts::Approval::WAITING 245 end 246 if @news_item.save 247 if before_approval == Acts::Approval::RETURNED 248 if @news_item.is_approvaled? 249 add_news_message('[_News_News_MessageRepostToPublic]') 250 else 251 add_news_message('[_News_News_MessageRepostToWaiting]') 252 end 253 else 254 add_news_message('[_News_News_MessageUpdate]') 255 end 256 else 257 add_news_message('[_News_News_ErrorUpdate]') 258 end 259 headers["Content-Type"] = "text/javascript" 260 render :template => '/news/news/update.rjs' 303 261 end 304 262 305 263 private 306 def approval_news_list(approval) 307 news_id = params[:id] 308 nc = News::NewsConfig.instance 309 if news_id 310 news_item = News::NewsItem.find(news_id) rescue news_item = nil 311 if news_item 312 news_count = News::NewsItem.count(:conditions => ['approval = 1 and (publish_date > ? or (publish_date = ? and id > ?))', news_item.publish_date, news_item.publish_date, news_item.id]) 313 if administrator? 314 news_count = News::NewsItem.count(:conditions => ['approval = ? and (updated_on > ? or (updated_on = ? and id > ?))', approval, news_item.updated_on, news_item.updated_on, news_item.id]) 315 else 316 news_count = News::NewsItem.count(:conditions => ['rubricks_user_id = ? and approval = ? and (updated_on > ? or (updated_on = ? and id > ?))', current_user.id, approval, news_item.updated_on, news_item.updated_on, news_item.id]) 317 end 318 params[:page] = news_count / nc.news_per_page + 1 319 @show_news_id = news_id 320 end 321 end 322 if administrator? 323 @pages, @news_items = paginate(:'news/news_item', :per_page => nc.news_per_page, :conditions => ['approval = ?', approval], :order => 'updated_on DESC, id DESC') 324 rubricks_logger({:action_type => :list, :data => @news_items}) 325 else 326 @pages, @news_items = paginate(:'news/news_item', :per_page => nc.news_per_page, :conditions => ['rubricks_user_id = ? and approval = ?', current_user.id, approval], :order => 'updated_on DESC, id DESC') 327 rubricks_logger({:action_type => :list, :data => @news_items}) 328 end 329 end 330 331 def check_permission 332 unless administrator? || permitted_current_component_function?("post") 333 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 334 end 264 def add_news_message(message) 265 flash[:news_message] ||= Array.new 266 flash[:news_message] << message 267 end 268 269 def check_all_own_news(news_id_list) 270 news_id_list.each do |news_id| 271 return false unless check_own_news(news_id) 272 end 273 return true 335 274 end 336 275 … … 339 278 news_item = News::NewsItem.find(news_id) 340 279 if guest? || !news_item.my_news? 341 unless administrator?280 unless News::NewsLib.administrator? 342 281 return false 343 282 end … … 346 285 end 347 286 348 def check_all_own_news(news_id_list) 349 news_id_list.each do |news_id| 350 return false unless check_own_news(news_id) 351 end 352 return true 353 end 354 355 def add_news_message(message) 356 flash[:news_message] ||= Array.new 357 flash[:news_message] << message 287 def check_permission 288 unless News::NewsLib.administrator? || permitted_current_component_function?("post") 289 raise RubricksError::User::UnauthorizedException, RubricksMessage::MESSAGE_I0002, caller 290 end 291 end 292 293 def filter_merge_conditions(options) 294 options = { 295 :input_data => {}, 296 :page => 0, 297 }.merge(options) 298 options[:input_data].symbolize_keys! rescue {} 299 filter_conditions_hash = get_filter_conditions('news_filter') || {} 300 filter_conditions_hash = News::NewsItem.filter_merge_hash(filter_conditions_hash, options[:input_data], options[:page]) 301 set_filter_conditions('news_filter', filter_conditions_hash) 302 return News::NewsItem.filter_merge_conditions(filter_conditions_hash) 303 end 304 305 def get_search_keyword(keyword) 306 if keyword == nil 307 return nil 308 else 309 keyword.escape_sql_for_like 310 end 358 311 end 359 312 end components/news/trunk/news/news_item.rb
r4994 r5760 5 5 acts_as_tiny_mce_attachable :article 6 6 belongs_to :rubricks_user 7 validates_not_nil_of :rubricks_user_id 7 belongs_to :news_category 8 has_many :news_already_reads 9 validates_numericality_of :rubricks_user_id, :only_integer => true 10 validates_numericality_of :news_category_id, :only_integer => true 8 11 validates_not_nil_of :approval 9 12 validates_not_nil_of :article 10 validates_length_of :display_name, :in => 1..32 11 validates_length_of :title, :in => 1..64 13 validates_length_of :display_name, :in => 1..32 14 validates_length_of :title, :in => 1..64 15 validates_length_of :comment, :in => 0..80 16 after_create {|record| News::NewsAlreadyRead.read(record, true)} 17 after_update {|record| News::NewsAlreadyRead.refresh(record)} 18 before_destroy {|record| News::NewsAlreadyRead.destroy(record)} 12 19 13 20 class << self … … 37 44 return returned_news_count == 0 38 45 end 46 47 def filter_merge_conditions(filter_conditions_hash) 48 filter_conditions, query, conditions = {}, [], [] 49 unless filter_conditions_hash[:word].blank? 50 conditions = RubricksLib.query_to_conditions(filter_conditions_hash[:word], ['title', 'article_plain']) 51 query << conditions.shift 52 end 53 case filter_conditions_hash[:state] 54 when 'not_read' 55 nar_list = News::NewsAlreadyRead.find(:all, :conditions => ['rubricks_user_id = ?', RubricksLib.current_user.id]) 56 query << 'news_items.id not in (?)' 57 conditions << nar_list.map{|nar| nar.news_item_id} 58 end 59 unless filter_conditions_hash[:category].to_i == 0 60 query << 'news_items.news_category_id = ?' 61 conditions << filter_conditions_hash[:category].to_i 62 end 63 case filter_conditions_hash[:target] 64 when 'wait' 65 query << 'news_items.approval = ?' 66 query << 'news_items.rubricks_user_id = ?' unless News::NewsLib.administrator? 67 conditions << Acts::Approval::WAITING 68 conditions << RubricksLib.current_user.id unless News::NewsLib.administrator? 69 when 'return' 70 query << 'news_items.approval = ?' 71 query << 'news_items.rubricks_user_id = ?' unless News::NewsLib.administrator? 72 conditions << Acts::Approval::RETURNED 73 conditions << RubricksLib.current_user.id unless News::NewsLib.administrator? 74 else 75 query << 'news_items.approval = ?' 76 conditions << Acts::Approval::APPROVALED 77 end 78 date_range = RubricksLib.dates_to_range(filter_conditions_hash[:date_from], filter_conditions_hash[:date_to]) 79 if date_range.first == date_range.last && date_range.first != RubricksLib::DATE_DUMMY 80 if filter_conditions_hash[:target] == 'open' 81 temp = date_range.first.is_in_a_day_conditions('publish_date') 82 else 83 temp= date_range.first.is_in_a_day_conditions('updated_on') 84 end 85 query.concat(temp.shift.split(' AND ')) 86 conditions.concat(temp) 87 else 88 date_string = (filter_conditions_hash[:target] == 'open') ? 'publish_date' : 'updated_on' 89 if date_range.first != RubricksLib::DATE_DUMMY 90 query << "#{date_string} >= ?" 91 conditions << date_range.first 92 else 93 query << "#{date_string} >= ?" 94 conditions << RubricksLib::DATE_START 95 end 96 if date_range.last != RubricksLib::DATE_DUMMY 97 query << "#{date_string} <= ?" 98 conditions << date_range.last 99 end 100 end 101 conditions.unshift(query.join(' and ')) 102 filter_conditions[:conditions] = conditions 103 filter_conditions[:order] = (filter_conditions_hash[:target] == 'open') ? 'publish_date desc' : 'updated_on desc' 104 filter_conditions[:page] = filter_conditions_hash[:page] 105 filter_conditions[:search] = !filter_conditions_hash[:word].blank? 106 return filter_conditions 107 end 108 109 def filter_merge_hash(filter_conditions_hash, input_data, page) 110 if input_data.is_a?(Hash) 111 input_data = input_data.symbolize_keys 112 filter_conditions_hash[:word] = input_data[:word] unless input_data[:word].nil? 113 filter_conditions_hash[:category] = input_data[:category] unless input_data[:category].nil? 114 filter_conditions_hash[:state] = input_data[:state] unless input_data[:state].nil? 115 filter_conditions_hash[:target] = input_data[:target] unless input_data[:target].nil? 116 filter_conditions_hash[:date_from] = input_data[:date_from] unless input_data[:date_from].nil? 117 filter_conditions_hash[:date_to] = input_data[:date_to] unless input_data[:date_to].nil? 118 end 119 filter_conditions_hash[:page] = page if page != 0 120 return filter_conditions_hash 121 end 39 122 end 40 123 … … 46 129 return is_approvaled? || my_news? 47 130 end 131 132 def display_category_name 133 self.news_category.name 134 end 135 136 def read 137 News::NewsAlreadyRead.read(self) 138 end 139 140 def read?(ru_id = nil) 141 if RubricksLib.guest? 142 return true 143 else 144 ru_id ||= RubricksLib.current_user.id 145 read_list = self.news_already_reads.map{|nar| nar.rubricks_user_id} 146 return read_list.include?(ru_id) 147 end 148 end 48 149 end components/news/trunk/news/preload/_preload.rhtml
r5690 r5760 1 <%= stylesheet_link_tag '/stylesheets/components/news/news' %> 1 2 <%= javascript_include_tag '/javascripts/components/news/news' %> 2 3 <script type="text/javascript"> 3 4 Object.extend(rubricks.news, { 4 msg_delete_confirm: "<%= hl('[_Common_Delete_Confirm]') %>", 5 msg_news_article_max: "<%= hl('[_Common_ExceedMaxCharacter]', 10000) %>", 6 msg_news_not_selected: "<%= hl('[_News_Not_Select]') %>", 7 url_delete: "<%= url_for(:controller => "/news/news", :action => 'delete') %>", 8 url_delete_news_multiple: "<%= url_for(:controller => "/news/news", :action => 'delete_news_multiple') %>", 9 url_public_news_list: "<%= url_for(:controller => '/news/news', :action => 'public_news_list') %>", 10 url_returned_news_list: "<%= url_for(:controller => '/news/news', :action => 'returned_news_list') %>", 11 url_show_news: "<%= url_for(:controller => '/news/news', :action => 'show_news') %>", 12 url_waiting_news_list: "<%= url_for(:controller => '/news/news', :action => 'waiting_news_list') %>" 5 msg_delete_confirm: '<%= jl('[_Common_Delete_Confirm]') %>', 6 msg_news_article_max: '<%= jl('[_Common_ExceedMaxCharacter]', 10000) %>', 7 msg_news_not_selected: '<%= jl('[_News_News_MessageNewsNotSelected]') %>', 8 url_delete: '<%= url_for(:controller => '/news/news', :action => 'delete') %>', 9 url_item_return: '<%= url_for(:controller => '/news/news', :action => 'item_return') %>', 10 url_public_news_list: '<%= url_for(:controller => '/news/news', :action => 'public_news_list') %>', 11 url_return_unread_state: '<%= url_for(:controller => '/news/news', :action => 'return_unread_state') %>', 12 url_returned_news_list: '<%= url_for(:controller => '/news/news', :action => 'returned_news_list') %>', 13 url_show_news: '<%= url_for(:controller => '/news/news', :action => 'show_news') %>', 14 url_waiting_news_list: '<%= url_for(:controller => '/news/news', :action => 'waiting_news_list') %>' 15 }); 16 Object.extend(rubricks.news.admin_category, { 17 err_delete_default: '<%= jl('[_News_Category_ErrorDeleteDefaultCategory]') %>', 18 err_max_record: '<%= jl('[_News_Category_ErrorCreateMaxRecord]') %>', 19 int_max_record: <%= News::NewsCategory::MAX_RECORD %>, 20 msg_category_not_selected: '<%= jl('[_News_Category_MessageNotSelected]') %>', 21 msg_delete_confirm: '<%= jl('[_News_Category_MessageDeleteConfirm]') %>', 22 url_category_window: '<%= url_for(:controller => '/news/admin_category', :action => 'category_window') %>', 23 url_delete: '<%= url_for(:controller => '/news/admin_category', :action => 'delete') %>' 13 24 }); 14 25 </script> components/news/trunk/news/rubricks_search.rb
r4578 r5760 3 3 result = [] 4 4 conditions = RubricksLib.query_to_conditions(query, target_list) 5 query = conditions.shift 6 query = "(#{query}) AND approval=1" 7 conditions.unshift(query) 8 ni_list = News::NewsItem.find(:all, :conditions => conditions, :offset => offset,:limit => limit, :order => 'created_on DESC') 5 ni_list = News::NewsItem.approved_scope {News::NewsItem.find(:all, :conditions => conditions, :offset => offset,:limit => limit, :order => 'created_on DESC')} 9 6 ni_list.each do |ni| 10 7 result << { 11 :url => {:controller => '/news/news', :action => 'main', :params => {:id => ni.id}},12 :permalink => {:controller => '/news/news', : main => '_main', :params => {:id => ni.id}},8 :url => {:controller => '/news/news', :action => 'main', :params => {:id => ni.id}}, 9 :permalink => {:controller => '/news/news', :action => 'index', :params => {:id => ni.id}}, 13 10 :title => ni.title, 14 11 :author => ni.display_name, … … 22 19 def count(query, ru, target_list = ['display_name', 'title', 'article_plain']) 23 20 conditions = RubricksLib.query_to_conditions(query, target_list) 24 query = conditions.shift 25 query = "(#{query}) AND approval=1" 26 conditions.unshift(query) 27 count = News::NewsItem.count(:all, :conditions => conditions) 28 return count 21 return News::NewsItem.approved_scope {News::NewsItem.count(:all, :conditions => conditions)} 29 22 end 30 23 … … 33 26 'display_name' => '[_Common_Poster]', 34 27 'title' => '[_Common_Title]', 35 'article_plain' => '[_News_ Article_Text]'28 'article_plain' => '[_News_Common_Article]' 36 29 } 37 30 end
