Changeset 5721
- Timestamp:
- 03/24/08 10:13:21 (2 years ago)
- Files:
-
- components/todo_list/trunk/todo_list/_install/component_info.rb (modified) (3 diffs)
- components/todo_list/trunk/todo_list/_install/db/001_todo_list_schema_001.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/_install/db/002_todo_list_schema_002.rb (added)
- components/todo_list/trunk/todo_list/_install/images/bin_closed.png (deleted)
- components/todo_list/trunk/todo_list/_install/images/calendar.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/icon_alert.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/icon_delete.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/icon_down_arrow.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/icon_entry.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/icon_right_arrow.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/icon_white.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/pin-blue.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/pin-red.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/pin-yellow.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/reopen.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/todo_check_false.gif (deleted)
- components/todo_list/trunk/todo_list/_install/images/todo_check_true.gif (deleted)
- components/todo_list/trunk/todo_list/_install/javascripts (added)
- components/todo_list/trunk/todo_list/_install/javascripts/src_todo.js (added)
- components/todo_list/trunk/todo_list/_install/javascripts/todo.js (added)
- components/todo_list/trunk/todo_list/_install/stylesheets/todo.css (modified) (2 diffs)
- components/todo_list/trunk/todo_list/admin/_main_edit_content.rhtml (modified) (2 diffs)
- components/todo_list/trunk/todo_list/admin/_main_read_content.rhtml (modified) (1 diff)
- components/todo_list/trunk/todo_list/admin/main.rhtml (modified) (1 diff)
- components/todo_list/trunk/todo_list/admin_controller.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/admin_helper.rb (added)
- components/todo_list/trunk/todo_list/block (added)
- components/todo_list/trunk/todo_list/block/index.rhtml (added)
- components/todo_list/trunk/todo_list/block/list.rhtml (added)
- components/todo_list/trunk/todo_list/block/update.rjs (added)
- components/todo_list/trunk/todo_list/block_controller.rb (added)
- components/todo_list/trunk/todo_list/common (added)
- components/todo_list/trunk/todo_list/common/_todo_input_window.rhtml (added)
- components/todo_list/trunk/todo_list/common/input.rjs (added)
- components/todo_list/trunk/todo_list/common_controller.rb (added)
- components/todo_list/trunk/todo_list/common_helper.rb (added)
- components/todo_list/trunk/todo_list/component_plugins/reminder/init.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/index_controller.rb (added)
- components/todo_list/trunk/todo_list/languages/chinese.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/languages/english.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/languages/japanese.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/list_controller.rb (added)
- components/todo_list/trunk/todo_list/preload/_preload.rhtml (modified) (1 diff)
- components/todo_list/trunk/todo_list/remind_mail_cron.rb (modified) (2 diffs)
- components/todo_list/trunk/todo_list/todo (deleted)
- components/todo_list/trunk/todo_list/todo_controller.rb (deleted)
- components/todo_list/trunk/todo_list/todo_helper.rb (deleted)
- components/todo_list/trunk/todo_list/todo_list_category_box.rb (modified) (1 diff)
- components/todo_list/trunk/todo_list/todo_list_config.rb (modified) (2 diffs)
- components/todo_list/trunk/todo_list/todo_list_lib.rb (added)
- components/todo_list/trunk/todo_list/todo_list_mailer.rb (modified) (2 diffs)
- components/todo_list/trunk/todo_list/todo_list_todo.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
components/todo_list/trunk/todo_list/_install/component_info.rb
r5698 r5721 1 1 class TodoList::ComponentInfo < RubricksComponentInfo 2 2 def initialize 3 @display_name = '[_TodoList_ Title]'3 @display_name = '[_TodoList_Info_DisplayName]' 4 4 @version = '0.3.8' 5 @description = '[_TodoList_ Component_Description]'5 @description = '[_TodoList_Info_Description]' 6 6 @author = 'Rubricks.org' 7 7 @license = 'MIT' 8 8 @blocks = [ 9 9 { 10 :title => '[_Todo _Common_TodoReminder]',11 :controller => '/todo_list/ todo',12 :action => ' reminder_block',10 :title => '[_TodoList_Info_BlockTitleList]', 11 :controller => '/todo_list/block', 12 :action => 'index', 13 13 :function => 'access', 14 :description => '[_Todo _Block_Description]'14 :description => '[_TodoList_Info_BlockDescList]' 15 15 } 16 16 ] … … 19 19 { 20 20 :extend_page => 'main', 21 :title => '[_TodoList_ Menu]',22 :controller => '/todo_list/ todo',21 :title => '[_TodoList_Info_MenuTitleIndex]', 22 :controller => '/todo_list/index', 23 23 :function => 'access', 24 :description => 'Main Menu', 24 :description => '[_TodoList_Info_MenuDescIndex]', 25 }, 26 { 27 :extend_page => 'main', 28 :title => '[_TodoList_Info_MenuTitleList]', 29 :controller => '/todo_list/list', 30 :function => 'access', 31 :description => '[_TodoList_Info_MenuDescList]', 25 32 }, 26 33 { 27 34 :extend_page => 'admin', 28 :title => '[_Todo _Admin_Title]',35 :title => '[_TodoList_Info_MenuTitleAdmin]', 29 36 :controller => '/todo_list/admin', 30 37 :function => 'admin', 31 :description => ' Admin Menu',38 :description => '[_TodoList_Info_MenuDescAdmin]', 32 39 } 33 40 ] … … 35 42 { 36 43 :record_type => 'read', 37 :examples => '[_Todo _TrailRead]'44 :examples => '[_TodoList_Info_TrailRead]' 38 45 }, 39 46 { 40 47 :record_type => 'update', 41 :examples => '[_Todo _TrailUpdate]'48 :examples => '[_TodoList_Info_TrailUpdate]' 42 49 }, 43 50 ] components/todo_list/trunk/todo_list/_install/db/001_todo_list_schema_001.rb
r4145 r5721 5 5 #################################################################################################################### 6 6 create_table :todo_list_todos, :force => true do |t| 7 t.column :title, :string, :limit => 90, :default => '', :null => false 8 t.column :content, :text 9 t.column :category, :string, :limit => 90 10 t.column :created_on, :datetime, :null => false 11 t.column :updated_on, :datetime, :null => false 12 t.column :start_on, :datetime 13 t.column :close_on, :datetime 14 t.column :closed_on, :datetime 15 t.column :this_order, :integer, :limit => 1, :default => 2, :null => false 7 t.column :closed_flag, :integer, :limit => 1, :default => 0, :null => false 8 t.column :delete_flag, :integer, :limit => 1, :default => 0, :null => false 9 t.column :reminder_flag, :integer, :limit => 1, :default => 0, :null => false 10 t.column :sync_calendar_flag, :integer, :limit => 1, :default => 0, :null => false 16 11 t.column :order_in_box, :integer, :limit => 255, :default => 1, :null => false 17 12 t.column :progress, :integer, :limit => 2, :default => 0, :null => false 18 t.column :closed_flag, :integer, :limit => 1, :default => 0, :null => false19 t.column :delete_flag, :integer, :limit => 1, :default => 0, :null => false20 13 t.column :rubricks_user_id_owner, :integer, :default => 0, :null => false 21 14 t.column :rubricks_user_id_from, :integer, :default => 0, :null => false 22 15 t.column :rubricks_user_id_to, :integer 23 t.column :todo_id, :integer, :limit => 1024 t.column :reminder_flag, :integer, :limit => 1, :default => 0, :null => false25 16 t.column :reminder_delay, :integer, :limit => 1, :default => 0, :null => false 26 17 t.column :reminder_every, :integer, :limit => 1, :default => 0, :null => false 18 t.column :this_order, :integer, :limit => 1, :default => 2, :null => false 19 t.column :todo_id, :integer, :limit => 10 27 20 t.column :todo_list_category_box_id, :integer, :null => false 28 t.column :sync_calendar_flag, :integer, :limit => 1, :default => 0, :null => false 21 t.column :category, :string, :limit => 90 22 t.column :title, :string, :limit => 90, :default => '', :null => false 23 t.column :content, :text 24 t.column :close_on, :datetime 25 t.column :closed_on, :datetime 26 t.column :created_on, :datetime, :null => false 27 t.column :start_on, :datetime 28 t.column :updated_on, :datetime, :null => false 29 29 end 30 30 31 31 create_table :todo_list_category_boxes, :force => true do |t| 32 t.column :box_no, :integer, :default => 1, :null => false 33 t.column :rubricks_user_id, :integer, :null => false 32 34 t.column :title, :string, :limit => 90, :default => '', :null => false 33 t.column :box_no, :integer, :limit => 1, :default => 1, :null => false34 t.column :rubricks_user_id, :integer, :null => false35 35 end 36 36 37 37 create_table :todo_list_configs, :force => true do |t| 38 t.column :site_reminder_flag, :integer, :limit => 1,:default => 0, :null => false39 t.column :site_remind_hour, :integer, :limit => 24,:default => 0, :null => false40 t.column :site_remind_min, :integer, :limit => 60,:default => 0, :null => false38 t.column :site_reminder_flag, :integer, :default => 0, :null => false 39 t.column :site_remind_hour, :integer, :default => 0, :null => false 40 t.column :site_remind_min, :integer, :default => 0, :null => false 41 41 end 42 42 components/todo_list/trunk/todo_list/_install/stylesheets/todo.css
r5698 r5721 1 /*-------------------------*/ 2 /* style of list */ 3 /*-------------------------*/ 4 .todo_label_dateCompleted { 5 background-repeat: no-repeat; 6 padding-left: 20px; 7 } 8 .todo_label_dateWarning { 9 background-repeat: no-repeat; 10 padding: 1px 0px 1px 20px; 11 } 12 .todo_list_priority_icon { 13 background-repeat: no-repeat; 14 background-position: right; 15 width: 5px; 16 padding: 0; 17 margin: 0; 18 } 19 .todo_list_colb { 20 padding: 2px; 21 border-collapse: collapse; 22 margin: 0; 23 } 24 .todo_list_colb_text{ 25 padding: 0; 26 margin: 0; 27 border: none; 28 border-collapse: collapse; 29 text-align: left; 30 } 31 .todo_list_colh{ 32 padding: 2px; 33 border-collapse: collapse; 34 margin: 0; 35 } 36 .todo_list_colh_text{ 37 padding: 0; 38 margin: 0; 39 border: none; 40 border-collapse: collapse; 41 text-align: center; 42 } 43 .todo_list_coln1_right{ 44 background-repeat: no-repeat; 45 border: none; 46 padding: 2px; 47 border-collapse: collapse; 48 margin: 0; 49 } 50 .todo_list_rowb { 51 padding: 0; 52 border-collapse: collapse; 53 margin: auto; 54 width: 98%; 55 } 56 .todo_list_rowb:hover { 57 padding: 0; 58 border-collapse: collapse; 59 margin: auto; 60 width: 98%; 61 background-color: #ffffcc; 62 filter: alpha(opacity=90); /*IE*/ 63 } 64 .todo_list_tbody { 65 filter: alpha(opacity=90); /*IE*/ 66 } 67 .todo_list_tbody_hover { 68 background-color: #ffffcc; 69 filter: alpha(opacity=90); /*IE*/ 70 } 71 .todo_list_rowb_print { 72 padding: 0; 73 border-collapse: collapse; 74 margin: auto; 75 width: 98%; 76 } 77 .todo_list_rowh { 78 padding: 0; 79 border-collapse: collapse; 80 margin: auto; 81 position: relative; 82 width: 98%; 1 /*--[Settings for Common]-------------*/ 2 .todo_validate_msg { 3 height: 18px; 4 line-height: 18px; 5 margin-top: 2px; 83 6 } 84 7 85 /*-------------------------*/ 86 /* Common */ 87 /*-------------------------*/ 88 .todo_input_style { 89 margin: 10px; 8 /*--[Settings for Tyle Style]---------*/ 9 div.todo_area { 10 margin: 10px 0; 90 11 } 12 td.todo_category_box { 13 padding: 0; 14 text-align: center; 15 vertical-align: top; 16 width: 30%; 17 } 18 div.todo_category_box { 19 float: left; 20 min-height: 300px; 21 width: 100%; 22 } 23 div.todo_tile { 24 border-style: solid; 25 border-width: 1px; 26 margin: 3px auto; 27 padding: 3px; 28 text-align: left; 29 width: 95%; 30 } 31 table.todo_tile { 32 table-layout: fixed; 33 width: 100%; 34 } 35 table.todo_tile tr td { 36 border: none; 37 padding: 0; 38 } 39 .todo_tile_buttons { 40 height: 21px; 41 line-height: 21px; 42 width: 75px; 43 } 44 img.todo_tile_dummy { 45 float: left; 46 height: 300px; 47 width: 1px; 48 } 49 div.todo_tile_priority_1 { 50 border-right: 5px solid #66cc00; 51 } 52 div.todo_tile_priority_2 { 53 border-right: 5px solid #ffcc00; 54 } 55 div.todo_tile_priority_3 { 56 border-right: 5px solid #ff3333; 57 } 58 59 /*--[Settings for Progress Bar]-------*/ 91 60 .todo_progress { 92 61 font-size: 1px; 93 62 height: 10px; 94 63 padding: 0; 95 width: 60px;96 64 } 97 65 .todo_progress_done { … … 104 72 background-color: #bbbbff; 105 73 } 106 .todo_tile_icon_delete {107 border: none;108 padding: 0;109 margin: 0;110 cursor: pointer;111 }112 .todo_tile_icon_edit {113 border: none;114 padding: 0;115 margin: 0;116 cursor: pointer;117 }118 .todo_tile_icon_not_completed {119 border: none;120 padding: 0;121 margin: 0;122 cursor: pointer;123 }124 .todo_tile_icon_reopen {125 border: none;126 padding: 0;127 margin: 0;128 cursor: pointer;129 }components/todo_list/trunk/todo_list/admin/_main_edit_content.rhtml
r5698 r5721 1 1 <% validate_page do %> 2 <% render_detail('00', hl('[_Todo _Admin_Frame_Title]')) do %>2 <% render_detail('00', hl('[_TodoList_Common_TodoConfig]')) do %> 3 3 <% validate_form('update_button') do %> 4 4 <% form_main_tag(:url=>{:controller => '/todo_list/admin', :action => 'update'}, :html => {:id => 'todo_edit_form'}) do %> 5 5 <% render_float_button('float_button_area_admin_edit') do %> 6 6 <div class="float_button_right_inactive swap"> 7 <span id="todo_admin_edit_cancel_button" class="buttons icon_cancel" onclick="rubricks.todo_list. change_read_mode();"><%= hl('[_Common_Cancel]') %></span>7 <span id="todo_admin_edit_cancel_button" class="buttons icon_cancel" onclick="rubricks.todo_list.admin_change_read_mode();"><%= hl('[_Common_Cancel]') %></span> 8 8 </div> 9 9 <div class="float_button_right_inactive swap"> … … 13 13 <table class="rubricks_general_table"> 14 14 <tr class="rubricks_general_table_even"> 15 <td style="width:30%;"><%= hl('[_Todo _Common_Reminder]')%></td>15 <td style="width:30%;"><%= hl('[_TodoList_Common_Reminder]')%></td> 16 16 <td style="width:70%;"> 17 <input type="radio" id="todo_config_site_reminder_flag_use" name="todo_config[site_reminder_flag]" class="check" value=" 1" onclick="rubricks.todo_list.toggle_admin_calendar_flag();" <%= (@todo_config.site_reminder_flag == 1) ? 'checked="checked"' : '' %> />17 <input type="radio" id="todo_config_site_reminder_flag_use" name="todo_config[site_reminder_flag]" class="check" value="true" onclick="rubricks.todo_list.admin_toggle_reminder_flag();" <%= (@tlc.site_reminder_flag) ? 'checked="checked"' : '' %> /> 18 18 <label for="todo_config_site_reminder_flag_use"><%= hl('[_Common_Use]') %></label> 19 <input type="radio" id="todo_config_site_reminder_flag_not_use" name="todo_config[site_reminder_flag]" class="check" value=" 0" onclick="rubricks.todo_list.toggle_admin_calendar_flag();" <%= (@todo_config.site_reminder_flag == 1) ? '' : 'checked="checked"' %> />19 <input type="radio" id="todo_config_site_reminder_flag_not_use" name="todo_config[site_reminder_flag]" class="check" value="false" onclick="rubricks.todo_list.admin_toggle_reminder_flag();" <%= (@tlc.site_reminder_flag) ? '' : 'checked="checked"' %> /> 20 20 <label for="todo_config_site_reminder_flag_not_use"><%= hl('[_Common_NotUse]') %></label> 21 21 </td> 22 22 </tr> 23 23 <tr id="todo_edit_area_time" class="rubricks_general_table_even"> 24 <td><%= hl('[_Todo_Admin_RemindTime]')%></td> 25 <td> 26 <%= select_number :name => 'todo_config[site_remind_hour]', :range => 0..23, :step => 1, :selected => @todo_config.site_remind_hour, :disabled => 1 %> 27 <%= hl('[_Common_Hour]')%> 28 <%= select_number :name => 'todo_config[site_remind_min]', :range => 0..59, :step => 30, :selected => @todo_config.site_remind_min, :disabled => 1 %> 29 <%= hl('[_Common_Minute]')%> 30 </td> 24 <td><%= hl('[_TodoList_Admin_RemindTime]')%></td> 25 <td><%= render_site_remind_time_select(@tlc) %></td> 31 26 </tr> 32 27 </table> components/todo_list/trunk/todo_list/admin/_main_read_content.rhtml
r5698 r5721 1 <% render_detail('00', hl('[_Todo _Admin_Frame_Title]')) do %>1 <% render_detail('00', hl('[_TodoList_Common_TodoConfig]')) do %> 2 2 <% render_float_button('float_button_area_read') do %> 3 3 <div id="todo_admin_edit_mode_form" class="float_button_right_inactive swap"> 4 <span id="todo_admin_edit_mode_button" class="buttons icon_edit" onclick="rubricks.todo_list. change_edit_mode();"><%= hl('[_Common_Edit]') %></span>4 <span id="todo_admin_edit_mode_button" class="buttons icon_edit" onclick="rubricks.todo_list.admin_change_edit_mode();"><%= hl('[_Common_Edit]') %></span> 5 5 </div> 6 6 <% end %> 7 7 <table class="rubricks_general_table"> 8 8 <tr class="rubricks_general_table_even"> 9 <td style="width:30%;"><%= hl('[_Todo_Common_Reminder]')%></td> 10 <td style="width:70%;"> 11 <%= (@todo_config.site_reminder_flag != 0) ? hl('[_Common_Use]') : hl('[_Common_NotUse]') %> 12 </td> 9 <td style="width:30%;"><%= hl('[_TodoList_Common_Reminder]')%></td> 10 <td style="width:70%;"><%= (@tlc.site_reminder_flag) ? hl('[_Common_Use]') : hl('[_Common_NotUse]') %></td> 13 11 </tr> 14 <tr class="rubricks_general_table_even" <%= (@todo_config.site_reminder_flag != 0) ? '' : 'style="display:none;"' %>> 15 <td><%= hl('[_Todo_Admin_RemindTime]')%></td> 16 <td> 17 <%= h(@todo_config.site_remind_hour) %> 18 <%= hl('[_Common_Hour]')%> 19 <%= h(@todo_config.site_remind_min) %> 20 <%= hl('[_Common_Minute]')%> 21 </td> 12 <tr class="rubricks_general_table_even" <%= (@tlc.site_reminder_flag) ? '' : 'style="display:none;"' %>> 13 <td><%= hl('[_TodoList_Admin_RemindTime]')%></td> 14 <td><%= sprintf('%02d', @tlc.site_remind_hour) %>:<%= sprintf('%02d', @tlc.site_remind_min) %></td> 22 15 </tr> 23 16 </table> components/todo_list/trunk/todo_list/admin/main.rhtml
r5698 r5721 17 17 <script type="text/javascript"> 18 18 rubricks.common.FormEditor.readMode('todo_edit_area'); 19 Object.extend(rubricks.todo_list, { 20 change_edit_mode: function() { 21 rubricks.common.Validator.refresh(); 22 rubricks.common.FormEditor.editMode('todo_edit_area'); 23 }, 24 change_read_mode: function() { 25 rubricks.common.FormEditor.readMode('todo_edit_area', 'todo_edit_form'); 26 this.toggle_admin_calendar_flag(); 27 }, 28 toggle_admin_calendar_flag: function() { 29 var sync_calendar_time_open_flag = ($('todo_config_site_reminder_flag_use').checked == true); 30 if(sync_calendar_time_open_flag){ 31 $('todo_edit_area_time').style.display = ''; 32 } else { 33 $('todo_edit_area_time').style.display = 'none'; 34 } 35 } 36 }); 37 rubricks.todo_list.toggle_admin_calendar_flag(); 19 rubricks.todo_list.admin_toggle_reminder_flag(); 38 20 </script> 39 21 <%= flash_for_feedback_msg(:todo_common) %> components/todo_list/trunk/todo_list/admin_controller.rb
r5698 r5721 2 2 define_page 3 3 uses_component_template_root 4 helper 'todo_list/todo'5 4 6 5 def main 7 @todo_config = TodoList::TodoListConfig.instance 8 if @todo_config.site_reminder_flag==1 9 rubricks_logger(:action_type => :detail, :data => { 10 RubricksLib.hl('[_Todo_TrailAdminUpdate_col1]') => (@todo_config.site_reminder_flag==1 ? RubricksLib.hl('[_Common_Use]') : RubricksLib.hl('[_Common_NotUse]')), 11 RubricksLib.hl('[_Todo_TrailAdminUpdate_col2]') => @todo_config.site_remind_hour, 12 RubricksLib.hl('[_Todo_TrailAdminUpdate_col3]') => @todo_config.site_remind_min 13 }) 14 else 15 rubricks_logger(:action_type => :detail, :data => { 16 RubricksLib.hl('[_Todo_TrailAdminUpdate_col1]') => (@todo_config.site_reminder_flag==1 ? RubricksLib.hl('[_Common_Use]') : RubricksLib.hl('[_Common_NotUse]')) 17 }) 18 end 6 @tlc = TodoList::TodoListConfig.instance 7 rubricks_logger(:action_type => :detail, :data => @tlc) 19 8 end 20 9 21 10 def update 22 @todo_config = TodoList::TodoListConfig.instance 23 if @todo_config.update_attributes(params[:todo_config]) 24 flash[:todo_common] = RubricksLib.hl('[_Todo_Admin_Updated]') 25 if @todo_config.site_reminder_flag==1 26 rubricks_logger(:action_type => :update, :data => { 27 RubricksLib.hl('[_Todo_TrailAdminUpdate_col1]') => (@todo_config.site_reminder_flag==1 ? RubricksLib.hl('[_Common_Use]') : RubricksLib.hl('[_Common_NotUse]')), 28 RubricksLib.hl('[_Todo_TrailAdminUpdate_col2]') => @todo_config.site_remind_hour, 29 RubricksLib.hl('[_Todo_TrailAdminUpdate_col3]') => @todo_config.site_remind_min 11 begin 12 ActiveRecord::Base.transaction do 13 @tlc = TodoList::TodoListConfig.instance 14 @tlc.update_attributes({ 15 :site_reminder_flag => params[:todo_config][:site_reminder_flag], 16 :site_remind_hour => params[:todo_config][:site_remind_hour], 17 :site_remind_min => params[:todo_config][:site_remind_min], 30 18 }) 31 else 32 rubricks_logger(:action_type => :update, :data => { 33 RubricksLib.hl('[_Todo_TrailAdminUpdate_col1]') => (@todo_config.site_reminder_flag==1 ? RubricksLib.hl('[_Common_Use]') : RubricksLib.hl('[_Common_NotUse]')) 34 }) 19 TodoList::TodoListLib.save_cron 35 20 end 36 else 37 flash[:todo_common] = RubricksLib.hl('[_Todo_Admin_NotUpdated]') 21 rescue Exception => ex 22 logger.error(ex.message) 23 logger.error(ex.backtrace.join("\n ")) 24 flash[:todo_update_error] = '[_TodoList_Admin_ErrorUpdate]' 38 25 end 39 save_cron 26 flash[:todo_update_message] = '[_TodoList_Admin_MessageUpdate]' 27 rubricks_logger(:action_type => :update, :data => @tlc) 40 28 redirect_to :action => 'main' 41 29 end 42 43 private44 def save_cron45 c = RubricksCron.count("name = 'todo_remind_mail'")46 if c == 047 new_cron = RubricksCron.new48 new_cron.name = 'todo_remind_mail'49 new_cron.hour = TodoList::TodoListConfig.instance.site_remind_hour50 new_cron.min = TodoList::TodoListConfig.instance.site_remind_min51 new_cron.args = '[]'52 new_cron.command_class_name = 'TodoList::RemindMailCron'53 new_cron.loop = 154 new_cron.save!55 else56 current_cron = RubricksCron.find_by_name('todo_remind_mail')57 current_cron.hour = TodoList::TodoListConfig.instance.site_remind_hour58 current_cron.min = TodoList::TodoListConfig.instance.site_remind_min59 current_cron.save!60 end61 end62 30 end components/todo_list/trunk/todo_list/component_plugins/reminder/init.rb
r4142 r5721 1 c = RubricksCron.count("name = 'todo_remind_mail'") 2 3 if c == 0 4 new_cron = RubricksCron.new 5 new_cron.name = 'todo_remind_mail' 6 new_cron.hour = TodoList::TodoListConfig.instance.site_remind_hour 7 new_cron.min = TodoList::TodoListConfig.instance.site_remind_min 8 new_cron.args = '[]' 9 new_cron.command_class_name = 'TodoList::RemindMailCron' 10 new_cron.loop = 1 11 new_cron.save 12 else 13 current_cron = RubricksCron.find_by_name('todo_remind_mail') 14 current_cron.hour = TodoList::TodoListConfig.instance.site_remind_hour 15 current_cron.min = TodoList::TodoListConfig.instance.site_remind_min 16 current_cron.save 17 end 1 TodoList::TodoListLib.save_cron components/todo_list/trunk/todo_list/languages/chinese.rb
r5705 r5721 1 1 module RubricksLanguage 2 2 def define_lang 3 lang('chinese')['_TodoList_Title'] = 'ToDo' 4 lang('chinese')['_TodoList_Component_Description'] = 'ToDo管ççå·¥å 5 ·' 6 7 lang('chinese')['_TodoList_Menu'] = 'ToDoå衚' 8 lang('chinese')['_TodoList_Frame_Title'] = 'ToDo' 9 10 lang('chinese')['_Todo_TrailRead'] = 'æ¥çToDo' 11 lang('chinese')['_Todo_TrailUpdate'] = 'ToDoçæ°å»ºã»ä¿®æ¹ã»å é€' 12 13 lang('chinese')['_Todo_TrailUpdate_Note_CatChange'] = 'æŽæ¢åç±»' 14 lang('chinese')['_Todo_TrailUpdate_Note_CatNameChange'] = 'ä¿®æ¹åç±»åç§°' 15 lang('chinese')['_Todo_TrailUpdate_Note_TodoClose'] = 'ä»»å¡å®æ' 16 lang('chinese')['_Todo_TrailList_Note_TileView'] = 'ToDoçå衚æŸç€ºåºåïŒ' 17 18 lang('chinese')['_Todo_TrailAdminUpdate_col1'] = 'æ¯åŠå¯ä»¥äœ¿çšToDoæé' 19 lang('chinese')['_Todo_TrailAdminUpdate_col2'] = 'ToDoæéåä¿¡ïŒæ¶ïŒ' 20 lang('chinese')['_Todo_TrailAdminUpdate_col3'] = 'ToDoæéåä¿¡ïŒåïŒ' 21 22 lang('chinese')['_Todo_Admin_Title'] = 'ToDo讟眮' 23 lang('chinese')['_Todo_Admin_Frame_Title'] = 'ToDo讟眮' 24 lang('chinese')['_Todo_Admin_Updated'] = 'ToDo讟眮修æ¹å®æ¯ã' 25 lang('chinese')['_Todo_Admin_NotUpdated'] = 'ToDo讟眮修æ¹å€±èŽ¥ã' 26 lang('chinese')['_Todo_Common_Reminder'] = 'ToDoæé' 27 lang('chinese')['_Todo_Common_TodoReminder'] = 'ToDoæé' 28 lang('chinese')['_Todo_Admin_RemindTime'] = 'æéé®ä»¶åéæ¶éŽ' 29 lang('chinese')['_Todo_Common_Todo'] = 'ToDo' 30 31 lang('chinese')['_Todo_Block_Description'] = 'æŸç€ºåšæéæéŽçToDoä»»å¡ççåã' 32 33 lang('chinese')['_Todo_Com_tabMenu1'] = 'æªå®æ' 34 lang('chinese')['_Todo_Com_tabMenu2'] = '宿' 35 lang('chinese')['_Todo_Com_tabMenu3'] = 'å 36 šéš' 37 38 lang('chinese')['_Todo_Com_CategoryBoxName'] = 'åç±»åç§°' 39 lang('chinese')['_Todo_Com_labelViewStyle'] = 'ToDoçæŸç€ºæ¹åŒ' 40 lang('chinese')['_Todo_Com_optionViewStyle1'] = 'å衚' 41 lang('chinese')['_Todo_Com_optionViewStyle2'] = 'å¹³éº' 42 43 lang('chinese')['_Todo_Com_btn_done'] = '宿' 44 lang('chinese')['_Todo_Com_btn_view'] = '诊ç»' 45 lang('chinese')['_Todo_Com_btn_edit'] = 'çŒèŸ' 46 lang('chinese')['_Todo_Com_btn_delete'] = 'å é€' 47 lang('chinese')['_Todo_Com_btn_reopen'] = 'æ¹äžºæªå®æ' 48 49 # lang('chinese')['_Todo_Com_this_order_0'] = 'æªæå®' 50 lang('chinese')['_Todo_Com_this_order_1'] = 'äœ' 51 lang('chinese')['_Todo_Com_this_order_2'] = 'æ®é' 52 lang('chinese')['_Todo_Com_this_order_3'] = 'é«' 53 54 lang('chinese')['_Todo_Main_msg_delete_confirm'] = 'ç¡®å®èŠå é€åïŒ' 55 lang('chinese')['_Todo_Main_msg_done_confirm'] = 'ç¡®å®èŠæç¶ææ¹äžºå®æïŒè¿åºŠ100%ïŒåïŒ' 56 lang('chinese')['_Todo_Main_MsgReopenConfirm'] = 'ç¡®å®èŠæç¶ææ¹äžºæªå®æåïŒ' 57 58 lang('chinese')['_Todo_Main_Created'] = 'ToDoåå»ºå®æ¯ã' 59 lang('chinese')['_Todo_Main_Updated'] = 'ToDoä¿®æ¹å®æ¯ã' 60 lang('chinese')['_Todo_Main_Completed'] = 'ToDoç¶ææ¹äžºå®æã' 61 lang('chinese')['_Todo_Main_Deleted'] = 'ToDoå é€å®æ¯ã' 62 63 lang('chinese')['_Todo_Main_SearchNotFound'] = '没æç¬Šåæ¡ä»¶çToDoã' 64 lang('chinese')['_Todo_Main_msg_cannot_complete'] = 'å€äºå¯ä»¥ä¿åçç¶æåã请æäžå®ææé®ã' 65 66 lang('chinese')['_Todo_Main_msg_dateTermConfirm1'] = 'æéŽåŒå§æ¥æäžèœåšæéŽç»ææ¥æä¹åã' 67 lang('chinese')['_Todo_Main_msg_dateTermConfirm2'] = 'æéŽç»ææ¥æäžèœåšæéŽåŒå§æ¥æä¹åã' 68 69 70 lang('chinese')['_Todo_ListView_title'] = 'æ é¢' 71 lang('chinese')['_Todo_ListView_content'] = 'å 72 容' 73 lang('chinese')['_Todo_ListView_this_order'] = 'äŒå 74 级å«' 75 lang('chinese')['_Todo_ListView_progress'] = 'è¿åºŠ' 76 lang('chinese')['_Todo_ListView_created_on'] = 'å建æ¥' 77 lang('chinese')['_Todo_ListView_start_on'] = 'é¢å®åŒå§æ¥' 78 lang('chinese')['_Todo_ListView_close_on'] = 'é¢å®å®ææ¥' 79 lang('chinese')['_Todo_ListView_closed_on'] = '宿æ¥' 80 lang('chinese')['_Todo_ListView_dot'] = 'ã»' 81 lang('chinese')['_Todo_ListView_semi'] = 'ïŒ' 82 83 lang('chinese')['_Todo_Reminder_NotFound'] = 'æéäžååšã' 84 lang('chinese')['_Todo_Reminder_Off'] = 'æ ¹æ®ç®¡çè 85 ç讟眮ïŒäžèœäœ¿çšToDoçæéåèœã' 86 lang('chinese')['_Todo_Reminder_BeforeDay'] = '䞺%d倩ä¹å' 87 lang('chinese')['_Todo_Reminder_JustToday'] = 'ä»å€©æªæ¢' 88 lang('chinese')['_Todo_Reminder_AfterDay'] = 'å·²è¿%d倩' 89 lang('chinese')['_Todo_Reminder_ToHome'] = 'ToDo' 90 lang('chinese')['_Todo_Reminder_Detail'] = 'ToDo诊ç»' 91 lang('chinese')['_Todo_Admin_RunDruby'] = 'â»åŠé䜿çšè¯·å¯åšbackgrounDrb' 92 93 lang('chinese')['_Todo_EditDlg_label_title'] = 'ToDoçŒèŸç»é¢' 94 lang('chinese')['_Todo_EditDlg_label_title_new'] = 'æ°å»ºToDo' 95 lang('chinese')['_Todo_EditDlg_label_title_update'] = 'ToDoçŒèŸ' 96 lang('chinese')['_Todo_EditDlg_msg_on_serverError'] = 'äžèœä¿®æ¹ToDoã确讀èŸå 97 ¥å 98 容åïŒéæ°æ§è¡è¯¥æäœã' 99 lang('chinese')['_Todo_EditDlg_msg_required'] = '(*å¿ 100 é¡»)' 101 lang('chinese')['_Todo_EditDlg_msg_dateFmtRule'] = 'èŸå 102 ¥æ ŒåŒïŒ(幎4äœ/æ/æ¥)' 103 lang('chinese')['_Todo_EditDlg_label_save'] = 'ä¿å' 104 lang('chinese')['_Todo_EditDlg_label_save_option'] = 'ä¿åçåæ¶å°ToDoæ¹äžºå®æ' 105 lang('chinese')['_Todo_EditDlg_label_cancel'] = 'åæ¶' 106 lang('chinese')['_Todo_EditDlg_msg_dateConfirm'] = '请èŸå 107 ¥æ ŒåŒäžºyyyy/MM/ddçæ¥æã' 108 lang('chinese')['_Todo_EditDlg_msg_dateTermConfirm1'] = 'é¢å®åŒå§æ¥äžèœåšé¢å®å®ææ¥ä¹åã' 109 lang('chinese')['_Todo_EditDlg_msg_dateTermConfirm2'] = 'é¢å®å®ææ¥äžèœåšé¢å®åŒå§æ¥ä¹åã' 110 lang('chinese')['_Todo_EditDlg_msg_progressConfirm'] = 'è¯·éæ©è¿åºŠã' 111 lang('chinese')['_Todo_EditDlg_msg_dateInvalid'] = 'è¯¥æ¥æäžååšã' 112 113 lang('chinese')['_Todo_EditDlg_title'] = 'æ é¢' 114 lang('chinese')['_Todo_EditDlg_content'] = 'å 115 容' 116 lang('chinese')['_Todo_EditDlg_this_order'] = 'äŒå 117 级å«' 118 lang('chinese')['_Todo_EditDlg_progress'] = 'è¿åºŠ' 119 lang('chinese')['_Todo_EditDlg_created_on'] = 'å建æ¥' 120 lang('chinese')['_Todo_EditDlg_start_on'] = 'é¢å®åŒå§æ¥' 121 lang('chinese')['_Todo_EditDlg_close_on'] = 'é¢å®å®ææ¥' 122 lang('chinese')['_Todo_EditDlg_closed_on'] = '宿æ¥' 123 lang('chinese')['_Todo_EditDlg_rubricks_user_id_from'] = 'å建è 124 ' 125 126 lang('chinese')['_Todo_EditDlg_CalendarSync'] = '忥åèåš' 127 lang('chinese')['_Todo_EditDlg_CalendarRegisterTime'] = 'å建æ¶éŽ ' 128 lang('chinese')['_Todo_EditDlg_CalendarHour'] = 'æ¶' 129 lang('chinese')['_Todo_EditDlg_CalendarMin'] = 'å' 130 lang('chinese')['_Todo_EditDlg_SendReminder'] = 'åéæé' 131 lang('chinese')['_Todo_EditDlg_FromCompleteDate'] = 'é¢å®å®ææ¥æç' 132 lang('chinese')['_Todo_EditDlg_Today'] = 'åœå€©' 133 lang('chinese')['_Todo_EditDlg_ToCompleteDate'] = 'åŒå§' 134 lang('chinese')['_Todo_EditDlg_Everyday'] = 'æ¯å€©' 135 lang('chinese')['_Todo_EditDlg_AtOnce'] = 'ä» 136 1次' 137 lang('chinese')['_Todo_EditDlg_Notify'] = 'æé' 138 139 lang('chinese')['_Todo_TileView_label_priority3'] = 'æ£åšå€ççä»»å¡' 140 lang('chinese')['_Todo_TileView_label_priority2'] = 'çåŸ 141 å€ççä»»å¡' 142 lang('chinese')['_Todo_TileView_label_priority1'] = 'æªæç®å€ççä»»å¡' 143 lang('chinese')['_Todo_TileView_label_closeOn'] = 'æªæ¢æ¥' 144 lang('chinese')['_Todo_TileView_cssTitle_category_box'] = 'å¯ä»¥çŒèŸåç±»åç§°' 145 146 lang('chinese')['_filter_target1'] = 'æ é¢' 147 lang('chinese')['_filter_target2'] = 'å 148 容' 149 lang('chinese')['_filter_target3'] = 'äŒå 150 级å«' 151 lang('chinese')['_filter_target4'] = 'é¢å®åŒå§æ¥' 152 lang('chinese')['_filter_target5'] = 'é¢å®å®ææ¥' 153 154 lang('chinese')['_filter1_kind'] = 'åé¢å¹é 155 ' 156 157 lang('chinese')['_filter3_order1'] = 'äœ' 158 lang('chinese')['_filter3_order2'] = 'æ®é' 159 lang('chinese')['_filter3_order3'] = 'é«' 160 161 lang('chinese')['_filter_target_label'] = 'æ£çŽ¢å¯¹è±¡ïŒ' 162 lang('chinese')['_filter1_kind_label'] = 'æ£çŽ¢æ¹æ³ã»å 163 ³é®åïŒ' 164 lang('chinese')['_filter3_order_label'] = 'äŒå 165 级å«ïŒ' 166 lang('chinese')['_filter4_term_label'] = 'æéŽïŒ' 167 168 lang('chinese')['_filter4_text0_label_jp'] = '' 169 lang('chinese')['_filter4_text1_label_jp'] = 'åŒå§' 170 lang('chinese')['_filter4_text2_label_jp'] = 'ç»æ' 3 lang('chinese').merge!({ 4 '_TodoList_Admin_ErrorUpdate' => 'ToDo讟眮修æ¹å€±èŽ¥ã', 5 '_TodoList_Admin_MessageUpdate' => 'ToDo讟眮修æ¹å®æ¯ã', 6 '_TodoList_Admin_RemindTime' => 'æéé®ä»¶åéæ¶éŽ', 7 '_TodoList_Common_CloseOn' => 'é¢å®å®ææ¥', 8 '_TodoList_Common_DeadlineAfter' => 'å·²è¿%d倩', 9 '_TodoList_Common_DeadlineBefore' => '䞺%d倩ä¹å', 10 '_TodoList_Common_DeadlineJust' => 'ä»å€©æªæ¢', 11 '_TodoList_Common_ErrorCreate' => 'ToDoå建倱莥ã', 12 '_TodoList_Common_ErrorDelete' => 'ToDoå é€å€±èŽ¥ã', 13 '_TodoList_Common_ErrorTodoNotSelected' => 'ToDo没æéæ©ã', 14 '_TodoList_Common_ErrorUpdate' => 'ToDoçŒèŸå€±èŽ¥ã', 15 '_TodoList_Common_InputWindowTitle' => 'ToDoçŒèŸç»é¢', 16 '_TodoList_Common_MessageCreate' => 'ToDoåå»ºå®æ¯ã', 17 '_TodoList_Common_MessageDelete' => 'ToDoå é€å®æ¯ã', 18 '_TodoList_Common_MessageFinishConfirm' => 'ç¡®å®èŠæç¶ææ¹äžºå®æïŒè¿åºŠ100%ïŒåïŒ', 19 '_TodoList_Common_MessageRevertConfirm' => 'ç¡®å®èŠæç¶ææ¹äžºæªå®æïŒè¿åºŠ90%ïŒåïŒ', 20 '_TodoList_Common_MessageUpdate' => 'ToDoä¿®æ¹å®æ¯ã', 21 '_TodoList_Common_Progress' => 'è¿åºŠ', 22 '_TodoList_Common_Reminder' => 'ToDoæé', 23 '_TodoList_Common_RemindOptionsDelimiter' => 'åŒå§', 24 '_TodoList_Common_RemindOptionAtOnce' => 'ä» 25 1次', 26 '_TodoList_Common_RemindOptionEveryday' => 'æ¯å€©', 27 '_TodoList_Common_SendReminder' => 'åéæé', 28 '_TodoList_Common_SendReminderAtOnce' => 'åš%såéæé', 29 '_TodoList_Common_SendReminderEveryday' => '%såŒå§æ¯å€©åéæé', 30 '_TodoList_Common_StartOn' => 'é¢å®åŒå§æ¥', 31 '_TodoList_Common_ThisOrder' => 'äŒå 32 级å«', 33 '_TodoList_Common_Todo' => 'ToDo', 34 '_TodoList_Common_TodoConfig' => 'ToDo讟眮', 35 '_TodoList_Common_TodoDetail' => 'ToDo诊ç»', 36 '_TodoList_Common_TodoList' => 'ToDoå衚', 37 '_TodoList_Filter_TargetOptionAll' => 'å 38 šéš', 39 '_TodoList_Filter_TargetOptionCompleted' => '宿', 40 '_TodoList_Filter_TargetOptionUncompleted' => 'æªå®æ', 41 '_TodoList_Index_LabelPriority1' => 'æªæç®å€ççä»»å¡', 42 '_TodoList_Index_LabelPriority2' => 'çåŸ 43 å€ççä»»å¡', 44 '_TodoList_Index_LabelPriority3' => 'æ£åšå€ççä»»å¡', 45 '_TodoList_Info_BlockDescList' => 'Todoçå', 46 '_TodoList_Info_BlockTitleList' => 'Todoçå', 47 '_TodoList_Info_Description' => 'ToDo管ççå·¥å 48 ·', 49 '_TodoList_Info_DisplayName' => 'ToDo', 50 '_TodoList_Info_MenuDescAdmin' => 'ToDo讟眮', 51 '_TodoList_Info_MenuDescIndex' => 'Todo', 52 '_TodoList_Info_MenuDescList' => 'ToDoå衚', 53 '_TodoList_Info_MenuTitleAdmin' => 'ToDo讟眮', 54 '_TodoList_Info_MenuTitleIndex' => 'ToDo', 55 '_TodoList_Info_MenuTitleList' => 'ToDoå衚', 56 '_TodoList_Info_TrailRead' => 'æ¥çToDo', 57 '_TodoList_Info_TrailUpdate' => 'ToDoçæ°å»ºã»ä¿®æ¹ã»å é€', 58 }) 171 59 end 172 60 end components/todo_list/trunk/todo_list/languages/english.rb
r5698 r5721 1 1 module RubricksLanguage 2 2 def define_lang 3 lang('english')['_TodoList_Title'] = 'ToDo' 4 lang('english')['_TodoList_Component_Description'] = 'The component for todo-management.' 5 6 lang('english')['_TodoList_Menu'] = 'ToDo' 7 lang('english')['_TodoList_Frame_Title'] = 'ToDo' 8 9 lang('english')['_Todo_TrailRead'] = 'Read a todo' 10 lang('english')['_Todo_TrailUpdate'] = 'Post/Edit/Delete a todo' 11 12 lang('english')['_Todo_TrailUpdate_Note_CatChange'] = 'Moving Category' 13 lang('english')['_Todo_TrailUpdate_Note_CatNameChange'] = 'Changing Category Name' 14 lang('english')['_Todo_TrailUpdate_Note_TodoClose'] = 'Completing ToDo' 15 lang('english')['_Todo_TrailList_Note_TileView'] = 'ToDo View AreaïŒ' 16 17 lang('english')['_Todo_TrailAdminUpdate_col1'] = 'Using Reminder' 18 lang('english')['_Todo_TrailAdminUpdate_col2'] = 'Reminding Hour' 19 lang('english')['_Todo_TrailAdminUpdate_col3'] = 'Reminding Minute' 20 21 lang('english')['_Todo_Admin_Title'] = 'Todo Config' 22 lang('english')['_Todo_Admin_Frame_Title'] = 'Todo Setting' 23 lang('english')['_Todo_Admin_Updated'] = 'Updated' 24 lang('english')['_Todo_Admin_NotUpdated'] = 'Fail to update' 25 lang('english')['_Todo_Common_Reminder'] = 'Reminder' 26 lang('english')['_Todo_Common_TodoReminder'] = 'Todo Reminder' 27 lang('english')['_Todo_Admin_RemindTime'] = 'Remind Time' 28 lang('english')['_Todo_Common_Todo'] = 'ToDo' 29 30 lang('english')['_Todo_Block_Description'] = 'This block displays todo tasks on remind span' 31 32 lang('english')['_Todo_Com_tabMenu1'] = 'In progress' 33 lang('english')['_Todo_Com_tabMenu2'] = 'Completed' 34 lang('english')['_Todo_Com_tabMenu3'] = 'All' 35 36 lang('english')['_Todo_Com_CategoryBoxName'] = 'Category Box Name' 37 lang('english')['_Todo_Com_labelViewStyle'] = 'View Style' 38 lang('english')['_Todo_Com_optionViewStyle1'] = 'By List' 39 lang('english')['_Todo_Com_optionViewStyle2'] = 'By Tile' 40 41 lang('english')['_Todo_Com_btn_done'] = 'Mark Complete' 42 lang('english')['_Todo_Com_btn_view'] = 'View Detail' 43 lang('english')['_Todo_Com_btn_edit'] = 'Edit' 44 lang('english')['_Todo_Com_btn_delete'] = 'Delete' 45 lang('english')['_Todo_Com_btn_reopen'] = 'Reopen' 46 47 lang('english')['_Todo_Com_this_order_0'] = 'none' 48 lang('english')['_Todo_Com_this_order_1'] = 'Low' 49 lang('english')['_Todo_Com_this_order_2'] = 'Normal' 50 lang('english')['_Todo_Com_this_order_3'] = 'High' 51 52 lang('english')['_Todo_Main_msg_delete_confirm'] = 'Do you delete it?' 53 lang('english')['_Todo_Main_msg_done_confirm'] = 'Do you mark Completed?' 54 lang('english')['_Todo_Main_MsgReopenConfirm'] = 'Do you reopen it?' 55 56 lang('english')['_Todo_Main_Created'] = 'Created' 57 lang('english')['_Todo_Main_Updated'] = 'Updated' 58 lang('english')['_Todo_Main_Completed'] = 'Completed' 59 lang('english')['_Todo_Main_Deleted'] = 'Deleted' 60 61 lang('english')['_Todo_Main_SearchNotFound'] = 'No result' 62 lang('english')['_Todo_Main_msg_cannot_complete'] = 'Plz push button after recordable.' 63 64 lang('english')['_Todo_Main_msg_dateTermConfirm1'] = 'invalid term' 65 lang('english')['_Todo_Main_msg_dateTermConfirm2'] = 'invalid term' 66 67 68 lang('english')['_Todo_ListView_title'] = 'Title' 69 lang('english')['_Todo_ListView_content'] = 'Detail' 70 lang('english')['_Todo_ListView_this_order'] = 'Priority' 71 lang('english')['_Todo_ListView_progress'] = 'Progress' 72 lang('english')['_Todo_ListView_created_on'] = 'Registered Date' 73 lang('english')['_Todo_ListView_start_on'] = 'Start date' 74 lang('english')['_Todo_ListView_close_on'] = 'Due date' 75 lang('english')['_Todo_ListView_closed_on'] = 'Date completed' 76 lang('english')['_Todo_ListView_dot'] = '&' 77 lang('english')['_Todo_ListView_semi'] = ':' 78 79 lang('english')['_Todo_Reminder_NotFound'] = 'No Remind' 80 lang('english')['_Todo_Reminder_Off'] = 'Administrator set reminder disable. So you can\'t use reminder.' 81 lang('english')['_Todo_Reminder_BeforeDay'] = 'after %ddays' 82 lang('english')['_Todo_Reminder_JustToday'] = 'Today' 83 lang('english')['_Todo_Reminder_AfterDay'] = 'exceeds %ddays' 84 lang('english')['_Todo_Reminder_ToHome'] = 'Todo List' 85 lang('english')['_Todo_Reminder_Detail'] = 'Todo Detail' 86 lang('english')['_Todo_Admin_RunDruby'] = 'Run backgroundRb' 87 88 lang('english')['_Todo_EditDlg_label_title'] = 'Todo Form' 89 lang('english')['_Todo_EditDlg_label_title_new'] = 'New ToDo' 90 lang('english')['_Todo_EditDlg_label_title_update'] = 'ToDo Update' 91 lang('english')['_Todo_EditDlg_msg_on_serverError'] = 'This request is failure. Please confirm your input data.' 92 lang('english')['_Todo_EditDlg_msg_required'] = '(*required)' 93 lang('english')['_Todo_EditDlg_msg_dateFmtRule'] = 'e.g. 2005/1/3' 94 lang('english')['_Todo_EditDlg_label_save'] = 'save' 95 lang('english')['_Todo_EditDlg_label_save_option'] = 'with complete' 96 lang('english')['_Todo_EditDlg_label_cancel'] = 'cancel' 97 lang('english')['_Todo_EditDlg_msg_dateConfirm'] = 'choose from the calender' 98 lang('english')['_Todo_EditDlg_msg_dateTermConfirm1'] = 'invalid term' 99 lang('english')['_Todo_EditDlg_msg_dateTermConfirm2'] = 'invalid term' 100 lang('english')['_Todo_EditDlg_msg_progressConfirm'] = 'choose from the list' 101 lang('english')['_Todo_EditDlg_msg_dateInvalid'] = 'invalid date' 102 103 lang('english')['_Todo_EditDlg_title'] = 'ToDo' 104 lang('english')['_Todo_EditDlg_content'] = 'Detail' 105 lang('english')['_Todo_EditDlg_this_order'] = 'Priority' 106 lang('english')['_Todo_EditDlg_progress'] = 'Progress' 107 lang('english')['_Todo_EditDlg_created_on'] = 'Registered Date' 108 lang('english')['_Todo_EditDlg_start_on'] = 'Start date' 109 lang('english')['_Todo_EditDlg_close_on'] = 'Due date' 110 lang('english')['_Todo_EditDlg_closed_on'] = 'Date completed' 111 lang('english')['_Todo_EditDlg_rubricks_user_id_from'] = 'Registrant' 112 113 lang('english')['_Todo_EditDlg_CalendarSync'] = 'Sync with calendar' 114 lang('english')['_Todo_EditDlg_CalendarRegisterTime'] = 'time' 115 lang('english')['_Todo_EditDlg_CalendarHour'] = 'hour' 116 lang('english')['_Todo_EditDlg_CalendarMin'] = 'min' 117 lang('english')['_Todo_EditDlg_SendReminder'] = 'Send Reminder' 118 lang('english')['_Todo_EditDlg_FromCompleteDate'] = '' 119 lang('english')['_Todo_EditDlg_Today'] = 'On the day' 120 lang('english')['_Todo_EditDlg_ToCompleteDate'] = '' 121 lang('english')['_Todo_EditDlg_Everyday'] = 'Everyday' 122 lang('english')['_Todo_EditDlg_AtOnce'] = 'At Once' 123 lang('english')['_Todo_EditDlg_Notify'] = '' 124 125 lang('english')['_Todo_TileView_label_priority3'] = 'Active Task' 126 lang('english')['_Todo_TileView_label_priority2'] = 'Waiting Task' 127 lang('english')['_Todo_TileView_label_priority1'] = 'Pending Task' 128 lang('english')['_Todo_TileView_label_closeOn'] = '' 129 lang('english')['_Todo_TileView_cssTitle_category_box'] = 'Edit Category Box Title' 130 131 lang('english')['_filter_target1'] = 'title' 132 lang('english')['_filter_target2'] = 'content' 133 lang('english')['_filter_target3'] = 'priority' 134 lang('english')['_filter_target4'] = 'day of start' 135 lang('english')['_filter_target5'] = 'day of close' 136 137 lang('english')['_filter1_kind'] = 'like %' 138 139 lang('english')['_filter3_order1'] = 'law' 140 lang('english')['_filter3_order2'] = 'normal' 141 lang('english')['_filter3_order3'] = 'hight' 142 143 lang('english')['_filter_target_label'] = 'filter target:' 144 lang('english')['_filter1_kind_label'] = 'keyword:' 145 lang('english')['_filter3_order_label'] = 'order:' 146 lang('english')['_filter4_term_label'] = 'term:' 147 148 lang('english')['_filter4_text0_label_jp'] = 'From:' 149 lang('english')['_filter4_text1_label_jp'] = ' To:' 150 lang('english')['_filter4_text2_label_jp'] = '' 3 lang('english').merge!({ 4 '_TodoList_Admin_ErrorUpdate' => 'Failed to update todo configs.', 5 '_TodoList_Admin_MessageUpdate' => 'todo configs are updated.', 6 '_TodoList_Admin_RemindTime' => 'Remind Time', 7 '_TodoList_Common_CloseOn' => 'Closing date', 8 '_TodoList_Common_DeadlineAfter' => '%d day(s) after', 9 '_TodoList_Common_DeadlineBefore' => '%d day(s) before', 10 '_TodoList_Common_DeadlineJust' => 'Today', 11 '_TodoList_Common_ErrorCreate' => 'Failed to create the task.', 12 '_TodoList_Common_ErrorDelete' => 'Failed to delete the task.', 13 '_TodoList_Common_ErrorTodoNotSelected' => 'Any task is not selected.', 14 '_TodoList_Common_ErrorUpdate' => 'Failed to update the task.', 15 '_TodoList_Common_InputWindowTitle' => 'ToDo Input Window', 16 '_TodoList_Common_MessageCreate' => 'The task is created.', 17 '_TodoList_Common_MessageDelete' => 'The task is deleted.', 18 '_TodoList_Common_MessageFinishConfirm' => 'Are you sure to finish this task?', 19 '_TodoList_Common_MessageRevertConfirm' => 'Are you sure to revert this task?', 20 '_TodoList_Common_MessageUpdate' => 'The task is updated.', 21 '_TodoList_Common_Progress' => 'Progress', 22 '_TodoList_Common_Reminder' => 'Reminder', 23 '_TodoList_Common_RemindOptionsDelimiter' => ' / ', 24 '_TodoList_Common_RemindOptionAtOnce' => 'At Once', 25 '_TodoList_Common_RemindOptionEveryday' => 'Everyday', 26 '_TodoList_Common_SendReminderAtOnce' => 'Send remind mail at %s', 27 '_TodoList_Common_SendReminderEveryday' => 'Send remind mail everyday from %s', 28 '_TodoList_Common_SendReminder' => 'Send Reminder', 29 '_TodoList_Common_StartOn' => 'Starting date', 30 '_TodoList_Common_ThisOrder' => 'Priority', 31 '_TodoList_Common_Todo' => 'Task', 32 '_TodoList_Common_TodoConfig' => 'ToDo Config', 33 '_TodoList_Common_TodoDetail' => 'ToDo Detail', 34 '_TodoList_Common_TodoList' => 'ToDo List', 35 '_TodoList_Filter_TargetOptionAll' => 'All', 36 '_TodoList_Filter_TargetOptionCompleted' => 'Completed', 37 '_TodoList_Filter_TargetOptionUncompleted' => 'Uncompleted', 38 '_TodoList_Index_LabelPriority1' => 'Pending Task', 39 '_TodoList_Index_LabelPriority2' => 'Waiting Task', 40 '_TodoList_Index_LabelPriority3' => 'Active Task', 41 '_TodoList_Info_BlockDescList' => 'Todo Block', 42 '_TodoList_Info_BlockTitleList' => 'Todo Block', 43 '_TodoList_Info_Description' => 'The component for todo management.', 44 '_TodoList_Info_DisplayName' => 'ToDo', 45 '_TodoList_Info_MenuDescAdmin' => 'ToDo Config', 46 '_TodoList_Info_MenuDescIndex' => 'Todo', 47 '_TodoList_Info_MenuDescList' => 'Todo List', 48 '_TodoList_Info_MenuTitleAdmin' => 'ToDo Config', 49 '_TodoList_Info_MenuTitleIndex' => 'ToDo', 50 '_TodoList_Info_MenuTitleList' => 'ToDo List', 51 '_TodoList_Info_TrailRead' => 'Read todo data.', 52 '_TodoList_Info_TrailUpdate' => 'Post/Edit/Delete todo data.', 53 }) 151 54 end 152 55 end components/todo_list/trunk/todo_list/languages/japanese.rb
r5698 r5721 1 1 module RubricksLanguage 2 2 def define_lang 3 lang('japanese')['_TodoList_Title'] = 'ToDo' 4 lang('japanese')['_TodoList_Component_Description'] = 'ToDo管çããŒã«' 5 6 lang('japanese')['_TodoList_Menu'] = 'ToDoäžèЧ' 7 lang('japanese')['_TodoList_Frame_Title'] = 'ToDo' 8 9 lang('japanese')['_Todo_TrailRead'] = 'ToDoã®é²èЧ' 10 lang('japanese')['_Todo_TrailUpdate'] = 'ToDoã®ç»é²ã»å€æŽã»åé€' 11 12 lang('japanese')['_Todo_TrailUpdate_Note_CatChange'] = 'ã«ããŽãªç§»å' 13 lang('japanese')['_Todo_TrailUpdate_Note_CatNameChange'] = 'ã«ããŽãªå倿Ž' 14 lang('japanese')['_Todo_TrailUpdate_Note_TodoClose'] = 'ã¿ã¹ã¯å®äº' 15 lang('japanese')['_Todo_TrailList_Note_TileView'] = 'ToDoã®äžèŠ§è¡šç€ºé åïŒ' 16 17 lang('japanese')['_Todo_TrailAdminUpdate_col1'] = 'ToDoãªãã€ã³ãã®äœ¿çšå¯åŠ' 18 lang('japanese')['_Todo_TrailAdminUpdate_col2'] = 'ToDoãªãã€ã³ãã¡ãŒã«éä¿¡ïŒæïŒ' 19 lang('japanese')['_Todo_TrailAdminUpdate_col3'] = 'ToDoãªãã€ã³ãã¡ãŒã«éä¿¡ïŒåïŒ' 20 21 lang('japanese')['_Todo_Admin_Title'] = 'ToDoèšå®' 22 lang('japanese')['_Todo_Admin_Frame_Title'] = 'ToDoèšå®' 23 lang('japanese')['_Todo_Admin_Updated'] = 'Todoèšå®ãæŽæ°ããŸããã' 24 lang('japanese')['_Todo_Admin_NotUpdated'] = 'Todoèšå®ã®æŽæ°ã«å€±æããŸããã' 25 lang('japanese')['_Todo_Common_Reminder'] = 'ToDoãªãã€ã³ã' 26 lang('japanese')['_Todo_Common_TodoReminder'] = 'ToDoãªãã€ã³ã' 27 lang('japanese')['_Todo_Admin_RemindTime'] = 'ãªãã€ã³ãã¡ãŒã«éä¿¡æå»' 28 lang('japanese')['_Todo_Common_Todo'] = 'ToDo' 29 30 lang('japanese')['_Todo_Block_Description'] = 'ãªãã€ã³ãæéäžã®ToDoã¿ã¹ã¯ã衚瀺ãããããã¯ã§ãã' 31 32 lang('japanese')['_Todo_Com_tabMenu1'] = 'æªå®äºè¡šç€º' 33 lang('japanese')['_Todo_Com_tabMenu2'] = 'å®äºè¡šç€º' 34 lang('japanese')['_Todo_Com_tabMenu3'] = 'å 35 šä»¶è¡šç€º' 36 37 lang('japanese')['_Todo_Com_CategoryBoxName'] = 'ã«ããŽãªããã¯ã¹å' 38 lang('japanese')['_Todo_Com_labelViewStyle'] = 'ToDoã®è¡šç€ºæ¹æ³' 39 lang('japanese')['_Todo_Com_optionViewStyle1'] = 'äžèŠ§è¡šç€º' 40 lang('japanese')['_Todo_Com_optionViewStyle2'] = 'ã¿ã€ã«è¡šç€º' 41 42 lang('japanese')['_Todo_Com_btn_done'] = 'å®äº' 43 lang('japanese')['_Todo_Com_btn_view'] = '詳现' 44 lang('japanese')['_Todo_Com_btn_edit'] = 'ç·šé' 45 lang('japanese')['_Todo_Com_btn_delete'] = 'åé€' 46 lang('japanese')['_Todo_Com_btn_reopen'] = 'æªå®äºã«æ»ã' 47 48 # lang('japanese')['_Todo_Com_this_order_0'] = 'æªæå®' 49 lang('japanese')['_Todo_Com_this_order_1'] = 'äœã' 50 lang('japanese')['_Todo_Com_this_order_2'] = 'æ®é' 51 lang('japanese')['_Todo_Com_this_order_3'] = 'é«ã' 52 53 lang('japanese')['_Todo_Main_msg_delete_confirm'] = 'åé€ããŠããããã§ããïŒ' 54 lang('japanese')['_Todo_Main_msg_done_confirm'] = 'ã¿ã¹ã¯ãå®äº(鲿ç100%)ã«ããŸããããããã§ããïŒ' 55 lang('japanese')['_Todo_Main_MsgReopenConfirm'] = 'ã¿ã¹ã¯ãæªå®äºã«æ»ããŸããããããã§ããïŒ' 56 57 lang('japanese')['_Todo_Main_Created'] = 'ToDoãäœæããŸããã' 58 lang('japanese')['_Todo_Main_Updated'] = 'ToDoãæŽæ°ããŸããã' 59 lang('japanese')['_Todo_Main_Completed'] = 'ToDoãå®äºã«ããŸããã' 60 lang('japanese')['_Todo_Main_Deleted'] = 'ToDoãåé€ããŸããã' 61 62 lang('japanese')['_Todo_Main_SearchNotFound'] = 'æ€çŽ¢çµæããããŸããã' 63 lang('japanese')['_Todo_Main_msg_cannot_complete'] = 'ä¿åã§ããç¶æ 64 ã«ããåŸãå®äºãã¿ã³ãæŒããŠãã ããã' 65 66 lang('japanese')['_Todo_Main_msg_dateTermConfirm1'] = 'æéçµäºæ¥ããåŸã®æééå§æ¥ã¯æå®ã§ããŸããã' 67 lang('japanese')['_Todo_Main_msg_dateTermConfirm2'] = 'æééå§æ¥ããåã®æéçµäºæ¥ã¯æå®ã§ããŸããã' 68 69 70 lang('japanese')['_Todo_ListView_title'] = 'ã¿ã€ãã«' 71 lang('japanese')['_Todo_ListView_content'] = 'å 72 容' 73 lang('japanese')['_Todo_ListView_this_order'] = 'åªå 74 床' 75 lang('japanese')['_Todo_ListView_progress'] = '鲿ç' 76 lang('japanese')['_Todo_ListView_created_on'] = 'ç»é²æ¥' 77 lang('japanese')['_Todo_ListView_start_on'] = 'éå§äºå®æ¥' 78 lang('japanese')['_Todo_ListView_close_on'] = 'å®äºäºå®æ¥' 79 lang('japanese')['_Todo_ListView_closed_on'] = 'å®äºæ¥' 80 lang('japanese')['_Todo_ListView_dot'] = 'ã»' 81 lang('japanese')['_Todo_ListView_semi'] = 'ïŒ' 82 83 lang('japanese')['_Todo_Reminder_NotFound'] = 'ãªãã€ã³ãã¯ãããŸããã' 84 lang('japanese')['_Todo_Reminder_Off'] = '管çè 85 ã®èšå®ã«ãããToDoã®ãªãã€ã³ãæ©èœã®å©çšãåºæ¥ãªããªã£ãŠããŸãã' 86 lang('japanese')['_Todo_Reminder_BeforeDay'] = '%dæ¥å' 87 lang('japanese')['_Todo_Reminder_JustToday'] = 'æ¬æ¥ãå' 88 lang('japanese')['_Todo_Reminder_AfterDay'] = '%dæ¥è¶ 89 é' 90 lang('japanese')['_Todo_Reminder_ToHome'] = 'ToDo' 91 lang('japanese')['_Todo_Reminder_Detail'] = 'ToDo詳现' 92 lang('japanese')['_Todo_Admin_RunDruby'] = 'â»å©çšããã«ã¯backgrounDrbãèµ·åããŠãã ãã' 93 94 lang('japanese')['_Todo_EditDlg_label_title'] = 'ToDoç·šéç»é¢' 95 lang('japanese')['_Todo_EditDlg_label_title_new'] = 'æ°èŠToDoäœæ' 96 lang('japanese')['_Todo_EditDlg_label_title_update'] = 'ToDoç·šé' 97 lang('japanese')['_Todo_EditDlg_msg_on_serverError'] = 'ToDoãæŽæ°ã§ããŸããã§ãããå 98 ¥åå 99 容ã確èªã®äžãåå®è¡ããŠãã ããã' 100 lang('japanese')['_Todo_EditDlg_msg_required'] = '(*å¿ 101 é )' 102 lang('japanese')['_Todo_EditDlg_msg_dateFmtRule'] = 'å 103 ¥å圢åŒïŒ(幎4æ¡/æ/æ¥)' 104 lang('japanese')['_Todo_EditDlg_label_save'] = 'ä¿å' 105 lang('japanese')['_Todo_EditDlg_label_save_option'] = 'ä¿åãšåæã«ToDoãå®äºã«ãã' 106 lang('japanese')['_Todo_EditDlg_label_cancel'] = 'ãã£ã³ã»ã«' 107 lang('japanese')['_Todo_EditDlg_msg_dateConfirm'] = 'yyyy/MM/dd圢åŒã§å 108 ¥åããŠãã ããã' 109 lang('japanese')['_Todo_EditDlg_msg_dateTermConfirm1'] = 'å®äºäºå®æ¥ããåŸã®éå§äºå®æ¥ã¯æå®ã§ããŸããã' 110 lang('japanese')['_Todo_EditDlg_msg_dateTermConfirm2'] = 'éå§äºå®æ¥ããåã®å®äºäºå®æ¥ã¯æå®ã§ããŸããã' 111 lang('japanese')['_Todo_EditDlg_msg_progressConfirm'] = '鲿çãéžæããŠãã ããã' 112 lang('japanese')['_Todo_EditDlg_msg_dateInvalid'] = 'ååšããªãæ¥ä»ã§ãã' 113 114 lang('japanese')['_Todo_EditDlg_title'] = 'ã¿ã€ãã«' 115 lang('japanese')['_Todo_EditDlg_content'] = 'å 116 容' 117 lang('japanese')['_Todo_EditDlg_this_order'] = 'åªå 118 床' 119 lang('japanese')['_Todo_EditDlg_progress'] = '鲿ç' 120 lang('japanese')['_Todo_EditDlg_created_on'] = 'ç»é²æ¥' 121 lang('japanese')['_Todo_EditDlg_start_on'] = 'éå§äºå®æ¥' 122 lang('japanese')['_Todo_EditDlg_close_on'] = 'å®äºäºå®æ¥' 123 lang('japanese')['_Todo_EditDlg_closed_on'] = 'å®äºæ¥' 124 lang('japanese')['_Todo_EditDlg_rubricks_user_id_from'] = 'ç»é²è 125 ' 126 127 lang('japanese')['_Todo_EditDlg_CalendarSync'] = 'ã«ã¬ã³ããŒé£æº' 128 lang('japanese')['_Todo_EditDlg_CalendarRegisterTime'] = 'ç»é²æå» ' 129 lang('japanese')['_Todo_EditDlg_CalendarHour'] = 'æ' 130 lang('japanese')['_Todo_EditDlg_CalendarMin'] = 'å' 131 lang('japanese')['_Todo_EditDlg_SendReminder'] = 'ãªãã€ã³ããéã' 132 lang('japanese')['_Todo_EditDlg_FromCompleteDate'] = 'å®äºäºå®æ¥ã®' 133 lang('japanese')['_Todo_EditDlg_Today'] = 'åœæ¥' 134 lang('japanese')['_Todo_EditDlg_ToCompleteDate'] = 'ãã' 135 lang('japanese')['_Todo_EditDlg_Everyday'] = 'æ¯æ¥' 136 lang('japanese')['_Todo_EditDlg_AtOnce'] = '1åã®ã¿' 137 lang('japanese')['_Todo_EditDlg_Notify'] = 'éç¥ãã' 138 139 lang('japanese')['_Todo_TileView_label_priority3'] = '察å¿äžã¿ã¹ã¯' 140 lang('japanese')['_Todo_TileView_label_priority2'] = '察å¿åŸ 141 ã¡ã¿ã¹ã¯' 142 lang('japanese')['_Todo_TileView_label_priority1'] = 'ãã³ãã£ã³ã°ã¿ã¹ã¯' 143 lang('japanese')['_Todo_TileView_label_closeOn'] = 'ã' 144 lang('japanese')['_Todo_TileView_cssTitle_category_box'] = 'ã«ããŽãªåãç·šéã§ããŸã' 145 146 lang('japanese')['_filter_target1'] = 'ã¿ã€ãã«' 147 lang('japanese')['_filter_target2'] = 'å 148 容' 149 lang('japanese')['_filter_target3'] = 'åªå 150 床' 151 lang('japanese')['_filter_target4'] = 'éå§äºå®æ¥' 152 lang('japanese')['_filter_target5'] = 'å®äºäºå®æ¥' 153 154 lang('japanese')['_filter1_kind'] = 'åæ¹äžèŽ' 155 156 lang('japanese')['_filter3_order1'] = 'äœã' 157 lang('japanese')['_filter3_order2'] = 'æ®é' 158 lang('japanese')['_filter3_order3'] = 'é«ã' 159 160 lang('japanese')['_filter_target_label'] = 'ãã£ã«ã¿å¯Ÿè±¡ïŒ' 161 lang('japanese')['_filter1_kind_label'] = 'æ€çŽ¢æ¹æ³ã»ããŒã¯ãŒãïŒ' 162 lang('japanese')['_filter3_order_label'] = 'åªå 163 床ïŒ' 164 lang('japanese')['_filter4_term_label'] = 'æéïŒ' 165 166 lang('japanese')['_filter4_text0_label_jp'] = '' 167 lang('japanese')['_filter4_text1_label_jp'] = 'ãã' 168 lang('japanese')['_filter4_text2_label_jp'] = 'ãŸã§' 3 lang('japanese').merge!({ 4 '_TodoList_Admin_ErrorUpdate' => 'Todoèšå®ã®æŽæ°ã«å€±æããŸããã', 5 '_TodoList_Admin_MessageUpdate' => 'Todoèšå®ãæŽæ°ããŸããã', 6 '_TodoList_Admin_RemindTime' => 'ãªãã€ã³ãã¡ãŒã«éä¿¡æå»', 7 '_TodoList_Common_CloseOn' => 'å®äºäºå®æ¥', 8 '_TodoList_Common_DeadlineAfter' => 'ç· å%dæ¥è¶ 9 é', 10 '_TodoList_Common_DeadlineBefore' => 'ç· å%dæ¥å', 11 '_TodoList_Common_DeadlineJust' => 'æ¬æ¥ç· å', 12 '_TodoList_Common_ErrorCreate' => 'ToDoã®æ°èŠäœæã«å€±æããŸããã', 13 '_TodoList_Common_ErrorDelete' => 'ToDoã®åé€ã«å€±æããŸããã', 14 '_TodoList_Common_ErrorTodoNotSelected' => 'ToDoãéžæãããŠããŸããã', 15 '_TodoList_Common_ErrorUpdate' => 'ToDoã®æŽæ°ã«å€±æããŸããã', 16 '_TodoList_Common_InputWindowTitle' => 'ToDoå 17 ¥åç»é¢', 18 '_TodoList_Common_MessageCreate' => 'ToDoãæ°èŠäœæããŸããã', 19 '_TodoList_Common_MessageDelete' => 'ToDoãåé€ããŸããã', 20 '_TodoList_Common_MessageFinishConfirm' => 'ã¿ã¹ã¯ãå®äº(鲿ç100%)ã«ããŸããããããã§ããïŒ', 21 '_TodoList_Common_MessageRevertConfirm' => 'ã¿ã¹ã¯ãæªå®äº(鲿ç90%)ã«ããŸããããããã§ããïŒ', 22 '_TodoList_Common_MessageUpdate' => 'ToDoãæŽæ°ããŸããã', 23 '_TodoList_Common_Progress' => '鲿ç', 24 '_TodoList_Common_Reminder' => 'ToDoãªãã€ã³ã', 25 '_TodoList_Common_RemindOptionsDelimiter' => ' ãã ', 26 '_TodoList_Common_RemindOptionAtOnce' => '1åã®ã¿', 27 '_TodoList_Common_RemindOptionEveryday' => 'æ¯æ¥', 28 '_TodoList_Common_SendReminder' => 'ãªãã€ã³ããéã', 29 '_TodoList_Common_SendReminderAtOnce' => '%sã«ãªãã€ã³ããéã', 30 '_TodoList_Common_SendReminderEveryday' => '%sããæ¯æ¥ãªãã€ã³ããéã', 31 '_TodoList_Common_StartOn' => 'éå§äºå®æ¥', 32 '_TodoList_Common_ThisOrder' => 'åªå 33 床', 34 '_TodoList_Common_Todo' => 'ToDo', 35 '_TodoList_Common_TodoConfig' => 'ToDoèšå®', 36 '_TodoList_Common_TodoDetail' => 'ToDo詳现', 37 '_TodoList_Common_TodoList' => 'ToDoäžèЧ', 38 '_TodoList_Filter_TargetOptionAll' => 'å 39 šãŠ', 40 '_TodoList_Filter_TargetOptionCompleted' => 'å®äºã®ã¿', 41 '_TodoList_Filter_TargetOptionUncompleted' => 'æªå®äºã®ã¿', 42 '_TodoList_Index_LabelPriority1' => 'ãã³ãã£ã³ã°ã¿ã¹ã¯', 43 '_TodoList_Index_LabelPriority2' => '察å¿åŸ 44 ã¡ã¿ã¹ã¯', 45 '_TodoList_Index_LabelPriority3' => '察å¿äžã¿ã¹ã¯', 46 '_TodoList_Info_BlockDescList' => 'Todoãããã¯', 47 '_TodoList_Info_BlockTitleList' => 'Todoãããã¯', 48 '_TodoList_Info_Description' => 'ToDoã®ç®¡çãè¡ãã³ã³ããŒãã³ãã§ãã', 49 '_TodoList_Info_DisplayName' => 'ToDo', 50 '_TodoList_Info_MenuDescAdmin' => 'ToDoèšå®', 51 '_TodoList_Info_MenuDescIndex' => 'Todo', 52 '_TodoList_Info_MenuDescList' => 'TodoäžèЧ', 53 '_TodoList_Info_MenuTitleAdmin' => 'ToDoèšå®', 54 '_TodoList_Info_MenuTitleIndex' => 'ToDo', 55 '_TodoList_Info_MenuTitleList' => 'ToDoäžèЧ', 56 '_TodoList_Info_TrailRead' => 'ToDoã®é²èЧ', 57 '_TodoList_Info_TrailUpdate' => 'ToDoã®ç»é²ã»æŽæ°ã»åé€', 58 }) 169 59 end 170 60 end components/todo_list/trunk/todo_list/preload/_preload.rhtml
r5710 r5721 1 1 <%= stylesheet_link_tag '/stylesheets/components/todo_list/todo' %> 2 <script type="text/javascript"> 3 rubricks.todo_list = { 4 g_event : null, 5 editdialog : null, 6 search_window : null, 7 todo_stopBubble : function(event){ 8 if(event && !UserAgent.isIE()){ 9 event.stopPropagation(); 10 } 11 if(event && UserAgent.isIE()){ 12 window.event.cancelBubble = true; 13 } 14 }, 15 _todo_list_reload : function(_area, _target_data, _viewmode, _filter_target, _filter1_kind, _filter1_text, _filter3_order, _filter4_text1, _filter4_text2){ 16 new Ajax.Updater( 17 _area, 18 this.url_todo_view_maindata, 19 { 20 asynchronous: true, 21 evalScripts: true, 22 onLoaded: function (request) {rubricks.common.rubricks_wait_message_close();}, 23 onLoading: function (request) {rubricks.common.rubricks_wait_message_open();}, 24 parameters: { 25 "todo_p[targetdata]": _target_data, 26 "todo_p[viewmode]": _viewmode, 27 "todo_p[filter_target]": _filter_target, 28 "todo_p[filter1_kind]": _filter1_kind, 29 "todo_p[filter1_text]": _filter1_text, 30 "todo_p[filter3_order]": _filter3_order, 31 "todo_p[filter4_text1]": _filter4_text1, 32 "todo_p[filter4_text2]": _filter4_text2 33 }, 34 onSuccess: rubricks.todo_list._todo_list_reload_successed() 35 } 36 ); 37 }, 38 _todo_list_reload_successed : function(){ 39 }, 40 _todo_list_reload_failed : function(){ 41 }, 42 todo_list_reload : function(){ 43 _target_data = document.getElementById("todo_targetdata_hiddenid").value; 44 _viewmode = document.getElementById("todo_viewmode").value; 45 if(_target_data == "incomplete"){ 46 _area = document.getElementById("tabBox_panel0"); 47 } 48 if(_target_data == "complete"){ 49 _area = document.getElementById("tabBox_panel1"); 50 } 51 if(_target_data == "all"){ 52 _area = document.getElementById("tabBox_panel2"); 53 } 54 _filter_target = $("todo_filter_target").value; 55 _filter1_kind = $("todo_filter1_kind" ).value; 56 _filter1_text = $("todo_filter1_text" ).value; 57 _filter3_order = $("todo_filter3_order").value; 58 _filter4_text1 = $("todo_filter4_text1").value; 59 _filter4_text2 = $("todo_filter4_text2").value; 60 61 rubricks.todo_list._todo_list_reload(_area, _target_data, _viewmode, _filter_target, _filter1_kind, _filter1_text, _filter3_order, _filter4_text1, _filter4_text2); 62 }, 63 todo_displayEditDialog_loading : function(mode, id, event){ 64 // get "dialog html". 65 if(mode == "u"){ 66 // $('todo_dialog_divid_title').innerHTML = this.str_title_update; 67 document.getElementById("todo_p_id_up").value = id; 68 document.getElementById("todo_getdialog_formid_update").onsubmit(); 69 }else{ 70 // $('todo_dialog_divid_title').innerHTML = this.str_title_new; 71 document.getElementById("todo_p_id_new").value = id; 72 document.getElementById("todo_getdialog_formid_insert").onsubmit(); 73 } 74 }, 75 todo_displayEditDialog_successed : function(){ 76 // display dialog as window 77 rubricks.todo_list.editdialog.open(); 78 rubricks.todo_list.editdialog.center(); 79 }, 80 todo_execSubmitOnDialog_executing : function(flag){ 81 if(flag){ 82 rubricks.common.rubricks_confirm_window_open(this.msg_done_confirm, function() {rubricks.todo_list._todo_execSubmitOnDialog_save_and_complete();}, function() {$('todo_editdlg_sbumit').disabled=false;}); 83 }else{ 84 rubricks.todo_list._todo_execSubmitOnDialog_save(); 85 } 86 }, 87 todo_execSubmitOnDialog_successed : function(){ 88 // reload "todo list" 89 90 //todo_view_maindata(document.getElementById('todo_targetdata_hiddenid').value); 91 rubricks.todo_list.todo_list_reload(); 92 rubricks.common.rubricks_feedback_msg.add(this.msg_main_updated); 93 94 // close dialog window 95 rubricks.todo_list.editdialog.close(); 96 }, 97 todo_execCancelOnDialog : function(){ 98 // close dialog window 99 rubricks.todo_list.editdialog.close(); 100 }, 101 _todo_execSubmitOnDialog_save : function(){ 102 document.getElementById("todo_editdialog_formid").onsubmit(); 103 }, 104 _todo_execSubmitOnDialog_save_and_complete : function(){ 105 document.getElementById("todo_editdialog_formid").onsubmit(); 106 }, 107 todo_deleteAction : function(mode, id, event){ 108 document.getElementById("todo_p_id_del").value = id 109 document.getElementById("todo_delete_formid").onsubmit(); 110 }, 111 todo_deleteAction_successed : function(){ 112 idname = "todo" + document.getElementById('todo_p_id_del').value; 113 rubricks.todo_list.todo_list_reload(); 114 rubricks.common.rubricks_feedback_msg.add(this.msg_main_deleted); 115 }, 116 todo_closeAction : function(mode, id, event){ 117 document.getElementById("todo_p_id_close").value = id 118 document.getElementById("todo_close_formid").onsubmit(); 119 }, 120 todo_reopenAction : function(reopenTodoId){ 121 new Ajax.Request( 122 this.url_reopen, 123 { 124 asynchronous:true, 125 evalScripts:true, 126 parameters:'id=' + reopenTodoId, 127 onLoading:function(request){ 128 rubricks.common.rubricks_wait_message_open(); 129 }, 130 onSuccess:function(){ 131 rubricks.todo_list.todo_list_reload(); 132 rubricks.common.rubricks_feedback_msg.add(rubricks.todo_list.msg_main_updated); 133 }, 134 onComplete:function(request){ 135 rubricks.common.rubricks_wait_message_close(); 136 } 137 } 138 ) 139 }, 140 todo_closeAction_successed : function(){ 141 rubricks.todo_list.todo_list_reload(); 142 rubricks.common.rubricks_feedback_msg.add(this.msg_main_completed); 143 }, 144 todo_dummy : function(event){ 145 return true; 146 }, 147 todo_list_toggle : function(id, event){ 148 if(!UserAgent.isIE()){ 149 event.stopPropagation(); 150 } 151 if(UserAgent.isIE()){ 152 window.event.cancelBubble = true; 153 } 154 obj = document.getElementById("todo" + id + "_h"); 155 reg = new RegExp("^todo_list_colb_text icon_plus"); 156 if(reg.test(obj.className)){ 157 obj.className = "todo_list_colb_text icon_minus"; 158 }else{ 159 obj.className = "todo_list_colb_text icon_plus"; 160 } 161 //new Effect.toggle(document.getElementById("todo_detail" + id)); 162 new Element.toggle("todo_detail" + id); 163 }, 164 open_search_window : function(){ 165 rubricks.todo_list.search_window.open() 166 rubricks.todo_list.search_window.center() 167 }, 168 turnFlag : function(index){ 169 if(index == 20){ 170 $('todo_p_editdlg_sbumit_option').checked = true; 171 }else{ 172 $('todo_p_editdlg_sbumit_option').checked = false; 173 } 174 }, 175 trunFilter : function(){ 176 var btn = $('todo_list_filter_btn'); 177 var reg = new RegExp("^switcher_switch switcher_state_close"); 178 if(reg.test(btn.className)){ 179 btn.className = "switcher_switch switcher_state_open"; 180 new Element.toggle("todo_list_filter_body"); 181 }else{ 182 btn.className = "switcher_switch switcher_state_close"; 183 new Element.toggle("todo_list_filter_body"); 184 } 185 }, 186 turnFilterMode : function(index){ 187 $('todo_filter1_h').style.display = "none"; 188 $('todo_filter3_h').style.display = "none"; 189 $('todo_filter4_h').style.display = "none"; 190 $('todo_filter1').style.display = "none"; 191 $('todo_filter3').style.display = "none"; 192 $('todo_filter4').style.display = "none"; 193 $('todo_filter4_text1').value = ""; 194 $('todo_filter4_text2').value = ""; 195 rubricks.common.Validator.refresh_by_id('todo_filter4_text1'); 196 rubricks.common.Validator.refresh_by_id('todo_filter4_text2'); 197 198 if(index == 0){ 199 $('todo_filter1_h').style.display = "block"; 200 $('todo_filter1').style.display = "block"; 201 }else if(index == 1){ 202 $('todo_filter1_h').style.display = "block"; 203 $('todo_filter1').style.display = "block"; 204 }else if(index == 2){ 205 $('todo_filter3_h').style.display = "block"; 206 $('todo_filter3').style.display = "block"; 207 }else if(index == 3){ 208 $('todo_filter4_h').style.display = "block"; 209 $('todo_filter4').style.display = "block"; 210 }else if(index == 4){ 211 $('todo_filter4_h').style.display = "block"; 212 $('todo_filter4').style.display = "block"; 213 } 214 215 }, 216 search_clear : function(){ 217 $('todo_filter_target').selectedIndex = 0; 218 $('todo_filter1_kind').selectedIndex = 0; 219 $('todo_filter1_text').value = ""; 220 $('todo_filter3_order').selectedIndex = 0; 221 $('todo_filter4_text1').value = ""; 222 $('todo_filter4_text2').value = ""; 223 rubricks.common.Validator.refresh_by_id('todo_filter4_text1'); 224 rubricks.common.Validator.refresh_by_id('todo_filter4_text2'); 225 226 $('todo_filter1_h').style.display = "block"; 227 $('todo_filter1').style.display = "block"; 228 $('todo_filter3_h').style.display = "none"; 229 $('todo_filter3').style.display = "none"; 230 $('todo_filter4_h').style.display = "none"; 231 $('todo_filter4').style.display = "none"; 232 rubricks.todo_list.todo_list_reload(); 233 }, 234 search_submit : function(){ 235 rubricks.todo_list.todo_list_reload(); 236 }, 237 toggle_calendar_flag : function(){ 238 sync_calendar_time_open_flag = !sync_calendar_time_open_flag 239 if(sync_calendar_time_open_flag){ 240 $('close_on_hour').disabled = true 241 $('close_on_min').disabled = true 242 }else { 243 $('close_on_hour').disabled = false 244 $('close_on_min').disabled = false 245 } 246 }, 247 toggle_remind_flag : function(){ 248 rubricks.todo_list.sync_remind_open_flag = !rubricks.todo_list.sync_remind_open_flag; 249 if(rubricks.todo_list.sync_remind_open_flag){ 250 $('todo_reminder_delay').disabled = true; 251 $('todo_reminder_every').disabled = true; 252 $('reminder_detail_div').style.display = 'none'; 253 }else { 254 $('todo_reminder_delay').disabled = false; 255 $('todo_reminder_every').disabled = false; 256 $('reminder_detail_div').style.display = ''; 257 } 258 }, 259 validateDateFiled1 : function(element){ 260 if(!rubricks.todo_list.validDate(element.value)){ 261 return this.msg_date_invalid; 262 } 263 264 var start_on = String($("todo_start_on").value).stripMB(); 265 var close_on = String($("todo_close_on").value).stripMB(); 266 267 if(!rubricks.todo_list.validTerm(start_on, close_on)){ 268 return this.msg_date_term_confirm_1; 269 } 270 271 return true; 272 }, 273 validateDateFiled2 : function(element){ 274 if(!rubricks.todo_list.validDate(element.value)){ 275 return this.msg_date_invalid; 276 } 277 278 var start_on = String($("todo_start_on").value).stripMB(); 279 var close_on = String($("todo_close_on").value).stripMB(); 280 281 if(!rubricks.todo_list.validTerm(start_on, close_on)){ 282 return this.msg_date_term_confirm_2; 283 } 284 285 return true; 286 }, 287 validTerm : function(start_on, close_on){ 288 if(start_on == "" || close_on == ""){ 289 return true; 290 } 291 292 if(!rubricks.todo_list.validDate(start_on)){ 293 return true; 294 } 295 if(!rubricks.todo_list.validDate(close_on)){ 296 return true; 297 } 298 299 var arrayValue = start_on.split("/"); 300 if(arrayValue.length != 3 || new Date(arrayValue[0],arrayValue[1],arrayValue[2]) == NaN){ 301 return true; 302 } 303 var start_on_dt = new Date(arrayValue[0],arrayValue[1],arrayValue[2]); 304 305 306 var arrayValue = close_on.split("/"); 307 if(arrayValue.length != 3 || new Date(arrayValue[0],arrayValue[1],arrayValue[2]) == NaN){ 308 return true; 309 } 310 var close_on_dt = new Date(arrayValue[0],arrayValue[1],arrayValue[2]); 311 312 if(start_on_dt.getFullYear() > close_on_dt.getFullYear()){ 313 return false; 314 } 315 if(start_on_dt.getFullYear() == close_on_dt.getFullYear()){ 316 if(start_on_dt.getMonth() > close_on_dt.getMonth()){ 317 return false; 318 }else if(start_on_dt.getMonth() == close_on_dt.getMonth()){ 319 if(start_on_dt.getDate() > close_on_dt.getDate()){ 320 return false; 321 } 322 } 323 } 324 325 return true; 326 }, 327 validDate : function(value){ 328 if(value.match(/(^[0-9]+[/][0-9]+[/][0-9]+$)|(^$)/) == null){ 329 return false; 330 }else if(value.match(/(^$)/)){ 331 return true; 332 } 333 var arrayValue = value.split("/"); 334 if(arrayValue.length != 3 || new Date(arrayValue[0],arrayValue[1],arrayValue[2]) == NaN){ 335 return false; 336 } 337 338 var daylist = new Array(31,28,31,30,31,30,31,31,30,31,30,31); 339 var maxday = 0; 340 if(arrayValue[1] == 2 && (arrayValue[0]%4==0 && (arrayValue[0]%100!=0 || arrayValue[0]%400==0)) ){ 341 maxday = 29; 342 }else{ 343 maxday = daylist[arrayValue[1] -1]; 344 } 345 if(arrayValue[0] < 1000 || 9999 < arrayValue[0]){ 346 return false; 347 } 348 if(arrayValue[1] < 1 || 12 < arrayValue[1]){ 349 return false; 350 } 351 if(arrayValue[2] < 1 || maxday < arrayValue[2]){ 352 return false; 353 } 354 355 return true; 356 }, 357 358 main_filter_validateDateFiled1 : function(element){ 359 if(!rubricks.todo_list.block.validDate(element.value)){ 360 return this.msg_date_confirm; 361 } 362 var start_on = String($("todo_filter4_text1").value).stripMB(); 363 var close_on = String($("todo_filter4_text2").value).stripMB(); 364 365 if(!rubricks.todo_list.block.validTerm(start_on, close_on)){ 366 return this.msg_date_term_confirm_1; 367 } 368 return true; 369 }, 370 main_filter_validateDateFiled2 : function(element){ 371 if(!rubricks.todo_list.block.validDate(element.value)){ 372 return this.msg_date_confirm; 373 } 374 375 var start_on = String($("todo_filter4_text1").value).stripMB(); 376 var close_on = String($("todo_filter4_text2").value).stripMB(); 377 378 if(!rubricks.todo_list.block.validTerm(start_on, close_on)){ 379 return this.msg_date_term_confirm_2; 380 } 381 382 return true; 383 }, 384 385 386 refresh_edit_date_picker : function(){ 387 this.edit_start_date_picker.changeTarget('todo_start_on'); 388 this.edit_start_date_picker.addTrigger('todo_start_on_call_btnid'); 389 this.edit_close_date_picker.changeTarget('todo_close_on'); 390 this.edit_close_date_picker.addTrigger('todo_close_on_call_btnid'); 391 }, 392 build_in_place_editor : function(num){ 393 var result_editor = new Ajax.InPlaceEditor( 394 'category_box_' + num, 395 this.url_update_category_box, 396 { 397 okButton : false, 398 cancelLink : false, 399 submitOnBlur : true, 400 onComplete : function(transport, element){ 401 $('edit_' + num).style.display=''; 402 }, 403 callback : function(form) { 404 return Form.serialize(form) + '&category_box_no=' + num; 405 }, 406 onFailure : function(transport){ 407 if(transport.status == 500){ 408 rubricks.common.rubricks_message_window_open(rubricks.todo_list.msg_validate_char_range); 409 } else if(transport.status == 401){ 410 rubricks.common.rubricks_confirm_window_open(rubricks.todo_list.msg_session_timeout, function() {document.location = rubricks.todo_list.url_login;}, null); 411 } else { 412 rubricks.common.rubricks_message_window_open(rubricks.todo_list.msg_network_error, 'error'); 413 } 414 } 415 } 416 ); 417 Object.extend(result_editor, { 418 getText: function() { 419 return new String(this.element.innerHTML).unescapeHTML(); 420 } 421 }); 422 result_editor.dispose(); 423 return result_editor; 424 }, 425 printClass : { 426 print: function() { 427 if(!Element.hasClassName('print_button', 'disabled')) { 428 429 /* #todo 430 * these parameters are not used yet perhaps */ 431 $('param1').value = $('todo_targetdata_hiddenid').value; 432 $('param2').value = $('todo_viewmode').value; 433 $('param3').value = $('todo_filter_target').value; 434 $('param4').value = $('todo_filter1_kind').value; 435 $('param5').value = $('todo_filter1_text').value; 436 $('param6').value = $('todo_filter3_order').value; 437 $('param7').value = $('todo_filter4_text1').value; 438 $('param8').value = $('todo_filter4_text2').value; 439 440 /* this parameter is still used */ 441 $('param9').value = $('todo_current_page').value; 442 443 rubricks.common.fire_submit('operationbar_button_print'); 444 rubricks.common.rubricks_wait_message_close(); 445 } 446 }, 447 print_target_clear: function() { 448 $('samplet_print_id').value = ''; 449 if(!Element.hasClassName('print_button', 'disabled')) { 450 Element.addClassName('print_button', 'disabled'); 451 } 452 }, 453 print_target_set: function(id) { 454 $('samplet_print_id').value = id; 455 Element.removeClassName('print_button', 'disabled'); 456 } 457 }, 458 select_tab_box : function(container, old_container) { 459 if (old_container) { 460 old_container.innerHTML = ''; 461 } 462 463 if(container.id == "tabBox_panel0"){ 464 _viewmode = 2; 465 _target_data = "incomplete"; 466 } 467 if(container.id == "tabBox_panel1"){ 468 _viewmode = 1; 469 _target_data = "complete"; 470 } 471 if(container.id == "tabBox_panel2"){ 472 _viewmode = 1; 473 _target_data = "all"; 474 } 475 document.getElementById("todo_targetdata_hiddenid").value = _target_data; 476 document.getElementById("todo_viewmode").value = _viewmode; 477 _filter_target = $("todo_filter_target").value; 478 _filter1_kind = $("todo_filter1_kind" ).value; 479 _filter1_text = $("todo_filter1_text" ).value; 480 _filter3_order = $("todo_filter3_order").value; 481 _filter4_text1 = $("todo_filter4_text1").value; 482 _filter4_text2 = $("todo_filter4_text2").value; 483 rubricks.todo_list._todo_list_reload(container, _target_data, _viewmode, _filter_target, _filter1_kind, _filter1_text, _filter3_order, _filter4_text1, _filter4_text2); 484 }, 485 reload_tile_tab : function(){ 486 document.getElementById("todo_targetdata_hiddenid").value = 'incomplete'; 487 document.getElementById("todo_viewmode").value = 2; 488 _filter_target = $("todo_filter_target").value; 489 _filter1_kind = $("todo_filter1_kind" ).value; 490 _filter1_text = $("todo_filter1_text" ).value; 491 _filter3_order = $("todo_filter3_order").value; 492 _filter4_text1 = $("todo_filter4_text1").value; 493 _filter4_text2 = $("todo_filter4_text2").value; 494 rubricks.todo_list._todo_list_reload($('tabBox_panel0'), 'incomplete', 2, _filter_target, _filter1_kind, _filter1_text, _filter3_order, _filter4_text1, _filter4_text2); 495 } 496 } 497 498 rubricks.todo_list.block = { 499 todo_edit_window : null, 500 update_area_id : null, 501 todo_edit_window_open : function(todo_id, area_id){ 502 update_area_id = area_id; 503 rubricks.todo_list.block.display_form_by_ajax(todo_id); 504 }, 505 display_form_by_ajax : function(todo_id){ 506 var params = { 507 'todo_p[dmlmode]': 'u', 508 'todo_p[id]' : todo_id 509 }; 510 new Ajax.Updater( 511 'todo_edit_window_frame', 512 rubricks.todo_list.url_todo_editdialog2, 513 { 514 asynchronous:true, 515 evalScripts:true, 516 parameters:params, 517 onComplete:function(request){ 518 rubricks.common.rubricks_wait_message_close(); 519 }, 520 onLoading:function(request){ 521 rubricks.common.rubricks_wait_message_open(); 522 } 523 } 524 ); 525 }, 526 todo_execSubmitOnDialog_executing : function(){ 527 rubricks.todo_list.block.update_form_by_ajax() 528 529 }, 530 todo_execCancelOnDialog : function() { 531 rubricks.todo_list.block.todo_edit_window.close() 532 }, 533 update_form_by_ajax : function(){ 534 var params = 535 Form.serialize('todo_editdialog2_formid') + '&' + 536 $H({ 537 'todo_p[dmlmode]': 'u' 538 }).toQueryString(); 539 540 new Ajax.Request( 541 rubricks.todo_list.url_todo_edit, 542 { 543 asynchronous:false, 544 evalScripts:true, 545 parameters:params, 546 onComplete:function(request){ 547 rubricks.common.rubricks_wait_message_close() 548 rubricks.todo_list.block.todo_edit_window.close() 549 rubricks.todo_list.block.update_block_by_ajax() 550 }, 551 onLoading:function(request){ 552 rubricks.common.rubricks_wait_message_open() 553 } 554 } 555 ); 556 }, 557 todo_execSubmitOnDialog_completed : function(){ 558 if(!($('todo_editdlg_sbumit')) || !($('todo_editdlg_sbumit').disabled)){ 559 rubricks.todo_list.block.complete_by_ajax($('todo_id').value) 560 561 } else { 562 alert(rubricks.todo_list.msg_cannot_complete); 563 } 564 }, 565 complete_by_ajax : function(todo_id){ 566 var params = 567 { 568 'todo_p[dmlmode]': 'c', 569 'todo_p[id]': todo_id 570 }; 571 572 new Ajax.Request( 573 rubricks.todo_list.url_todo_close, 574 { 575 asynchronous:true, 576 evalScripts:true, 577 parameters:params, 578 onComplete:function(request){ 579 rubricks.common.rubricks_wait_message_close() 580 rubricks.todo_list.block.todo_edit_window.close() 581 rubricks.todo_list.block.update_block_by_ajax() 582 }, 583 onLoading:function(request){ 584 rubricks.common.rubricks_wait_message_open() 585 } 586 } 587 ); 588 }, 589 update_block_by_ajax : function(){ 590 if(update_area_id == 'todo_block_reminder'){ 591 new Ajax.Updater( 592 update_area_id, 593 rubricks.todo_list.url_reminder_block_list, 594 { 595 asynchronous:true, 596 evalScripts:true 597 } 598 ); 599 }else if(update_area_id == 'todo_block_inprogress'){ 600 new Ajax.Updater( 601 update_area_id, 602 rubricks.todo_list.inprogress_block_list, 603 { 604 asynchronous:true, 605 evalScripts:true 606 } 607 ); 608 } 609 }, 610 turnFlag : function(index){ 611 if(index == 20){ 612 $('todo_p_editdlg_sbumit_option').checked = true; 613 }else{ 614 $('todo_p_editdlg_sbumit_option').checked = false; 615 } 616 }, 617 618 619 validateDateFiled1 : function(element){ 620 if(!rubricks.todo_list.block.validDate(element.value)){ 621 return rubricks.todo_list.msg_date_confirm; 622 } 623 624 var start_on = String($("todo_start_on").value).stripMB(); 625 var close_on = String($("todo_close_on").value).stripMB(); 626 627 if(!rubricks.todo_list.block.validTerm(start_on, close_on)){ 628 return rubricks.todo_list.msg_date_term_confirm_1; 629 } 630 631 return true; 632 }, 633 validateDateFiled2 : function(element){ 634 if(!rubricks.todo_list.block.validDate(element.value)){ 635 return rubricks.todo_list.msg_date_confirm; 636 } 637 638 var start_on = String($("todo_start_on").value).stripMB(); 639 var close_on = String($("todo_close_on").value).stripMB(); 640 641 if(!rubricks.todo_list.block.validTerm(start_on, close_on)){ 642 return rubricks.todo_list.msg_date_term_confirm_2; 643 } 644 645 return true; 646 }, 647 validTerm : function(start_on, close_on){ 648 if(start_on == "" || close_on == ""){ 649 return true; 650 } 651 652 if(!rubricks.todo_list.block.validDate(start_on)){ 653 return true; 654 } 655 if(!rubricks.todo_list.block.validDate(close_on)){ 656 return true; 657 } 658 659 var arrayValue = start_on.split("/"); 660 if(arrayValue.length != 3 || new Date(arrayValue[0],arrayValue[1],arrayValue[2]) == NaN){ 661 return true; 662 } 663 var start_on_dt = new Date(arrayValue[0],arrayValue[1],arrayValue[2]); 664 665 666 var arrayValue = close_on.split("/"); 667 if(arrayValue.length != 3 || new Date(arrayValue[0],arrayValue[1],arrayValue[2]) == NaN){ 668 return true; 669 } 670 var close_on_dt = new Date(arrayValue[0],arrayValue[1],arrayValue[2]); 671 672 if(start_on_dt.getFullYear() > close_on_dt.getFullYear()){ 673 return false; 674 } 675 if(start_on_dt.getFullYear() == close_on_dt.getFullYear()){ 676 if(start_on_dt.getMonth() > close_on_dt.getMonth()){ 677 return false; 678 }else if(start_on_dt.getMonth() == close_on_dt.getMonth()){ 679 if(start_on_dt.getDate() > close_on_dt.getDate()){ 680 return false; 681 } 682 } 683 } 684 685 return true; 686 }, 687 validDate : function(value){ 688 if(value.match(/(^[0-9]+[/][0-9]+[/][0-9]+$)|(^$)/) == null){ 689 return false; 690 }else if(value.match(/(^$)/)){ 691 return true; 692 } 693 var arrayValue = value.split("/"); 694 if(arrayValue.length != 3 || new Date(arrayValue[0],arrayValue[1],arrayValue[2]) == NaN){ 695 return false; 696 } 697 698 var daylist = new Array(31,28,31,30,31,30,31,31,30,31,30,31); 699 var maxday = 0; 700 if(arrayValue[1] == 2 && (arrayValue[0]%4==0 && (arrayValue[0]%100!=0 || arrayValue[0]%400==0)) ){ 701 maxday = 29; 702 }else{ 703 maxday = daylist[arrayValue[1] -1]; 704 } 705 if(arrayValue[0] < 1000 || 9999 < arrayValue[0]){ 706 return false; 707 } 708 if(arrayValue[1] < 1 || 12 < arrayValue[1]){ 709 return false; 710 } 711 if(arrayValue[2] < 1 || maxday < arrayValue[2]){ 712 return false; 713 } 714 715 return true; 716 }, 717 toggle_calendar_flag : function(){ 718 sync_calendar_time_open_flag = !sync_calendar_time_open_flag 719 if(sync_calendar_time_open_flag){ 720 $('close_on_hour').disabled = true 721 $('close_on_min').disabled = true 722 }else { 723 $('close_on_hour').disabled = false 724 $('close_on_min').disabled = false 725 } 726 }, 727 toggle_remind_flag : function(){ 728 sync_remind_open_flag = !sync_remind_open_flag 729 if(sync_remind_open_flag){ 730 $('todo_reminder_delay').disabled = true 731 $('todo_reminder_every').disabled = true 732 $('reminder_detail_block_div').style.display = 'none'; 733 }else { 734 $('todo_reminder_delay').disabled = false 735 $('todo_reminder_every').disabled = false 736 $('reminder_detail_block_div').style.display = ''; 737 } 738 } 739 } 740 </script> 2 <%= javascript_include_tag '/javascripts/components/todo_list/todo' %> 741 3 <script type="text/javascript"> 742 4 Object.extend(rubricks.todo_list, { 743 msg_cannot_complete: "<%= hl('[_Todo_Main_msg_cannot_complete]') %>", 744 msg_date_confirm: "<%= hl('[_Todo_EditDlg_msg_dateConfirm]') %>", 745 msg_date_invalid: "<%= hl('[_Todo_EditDlg_msg_dateInvalid]') %>", 746 msg_date_term_confirm_1: "<%= hl('[_Todo_EditDlg_msg_dateTermConfirm1]') %>", 747 msg_date_term_confirm_2: "<%= hl('[_Todo_EditDlg_msg_dateTermConfirm2]') %>", 748 msg_done_confirm: "<%= hl('[_Todo_Main_msg_done_confirm]') %>", 749 msg_main_completed: "<%= hl('[_Todo_Main_Completed]') %>", 750 msg_main_deleted: "<%= hl('[_Todo_Main_Deleted]') %>", 751 msg_main_updated: "<%= hl('[_Todo_Main_Updated]') %>", 752 msg_network_error: "<%= hl('[_Common_NetworkError]') %>", 753 msg_session_timeout: "<%= hl('[_Common_SessionTimeout]') %>", 754 msg_validate_char_range: "<%= hl('[_Common_Validate_CharRange]', 1, 15) %>", 755 str_title_new: "<%= hl('[_Todo_EditDlg_label_title_new]') %>", 756 str_title_update: "<%= hl('[_Todo_EditDlg_label_title_update]') %>", 757 url_inprogress_block_list: "<%= url_for(:controller => "/todo_list/todo", :action => 'inprogress_block_list', :only_path => true) %>", 758 url_login: "<%= RubricksConfig.get('user_guest_available') ? url_for(:controller => '/system/login', :action => 'index', :main => '_login_inline') : url_for(:controller => '/system/login', :action => 'login_page') %>", 759 url_reminder_block_list: "<%= url_for(:controller => "/todo_list/todo", :action => 'reminder_block_list', :only_path => true) %>", 760 url_reopen: "<%= url_for(:controller => '/todo_list/todo', :action => 'reopen', :only_path => true) %>", 761 url_todo_close: "<%= url_for(:controller => "/todo_list/todo", :action => 'todo_close', :only_path => true) %>", 762 url_todo_edit: "<%= url_for(:controller => "/todo_list/todo", :action => 'todo_edit', :only_path => true) %>", 763 url_todo_editdialog2: "<%= url_for(:controller => "/todo_list/todo", :action => 'todo_editdialog2', :only_path => true) %>", 764 url_todo_view_maindata: "<%= url_for(:controller => "/todo_list/todo", :action => "todo_view_maindata" ) %>", 765 url_update_category_box: "<%= url_for(:controller => '/todo_list/todo', :action => 'update_category_box', :only_path => true) %>", 766 main_filter_validate_form_begin : function() { 767 <%= validate_form_begin 'todo_list_filter_submit', false %> 768 }, 769 main_filter_validate_todo_filter4_text1 : function() { 770 <% regexp_str = "[0-9]+[/][0-9]+[/][0-9]+" %> 771 <%= validate "todo_filter4_text1", [{:length => '0..10'}, {:regexp => {:value => "/(#{regexp_str})|(^$)/", :msg => hl("[_Todo_EditDlg_msg_dateConfirm]") }}, {:custom => {:function => "rubricks.todo_list.main_filter_validateDateFiled1", :msg => "aaa"}}], 'todo_list_filter_btn', false %> 772 }, 773 main_filter_validate_todo_filter4_text2 : function() { 774 <% regexp_str = "[0-9]+[/][0-9]+[/][0-9]+" %> 775 <%= validate "todo_filter4_text2", [{:length => '0..10'}, {:regexp => {:value => "/(^#{regexp_str}$)|(^$)/", :msg => hl("[_Todo_EditDlg_msg_dateConfirm]") }}, {:custom => {:function => "rubricks.todo_list.main_filter_validateDateFiled2", :msg => "aaa"}}], 'todo_list_filter_btn', false %> 776 }, 777 validate_editdlg_form_begin : function() { 778 <%= validate_form_begin 'todo_editdlg_sbumit', false %> 779 }, 780 validate_todo_title : function() { 781 <%= validate 'todo_title', [{:required => true}, {:length => '1..30'}], 'todo_editdlg_sbumit', false %> 782 }, 783 validate_todo_content : function() { 784 <%= validate 'todo_content', [{:length => '0..1500'}], 'todo_editdlg_sbumit', false %> 785 }, 786 validate_todo_start_on : function() { 787 <% regexp_str = "[0-9]+[/][0-9]+[/][0-9]+" %> 788 <%= validate "todo_start_on", [{:length => '0..10'}, {:regexp => {:value => "/(#{regexp_str})|(^$)/", :msg => hl("[_Todo_EditDlg_msg_dateConfirm]") }}, {:custom => {:function => "rubricks.todo_list.validateDateFiled1", :msg => "aaa"}}], 'todo_editdlg_sbumit', false %> 789 }, 790 validate_todo_close_on : function() { 791 <% regexp_str = "[0-9]+[/][0-9]+[/][0-9]+" %> 792 <%= validate "todo_close_on", [{:length => '0..10'}, {:regexp => {:value => "/(^#{regexp_str}$)|(^$)/", :msg => hl("[_Todo_EditDlg_msg_dateConfirm]") }}, {:custom => {:function => "rubricks.todo_list.validateDateFiled2", :msg => "aaa"}}], 'todo_editdlg_sbumit', false %> 793 } 5 int_progress_index_max: <%= TodoList::TodoListTodo::PROGRESS_RANGE.length.to_i - 1 %>, 6 msg_delete_confirm: '<%= jl('[_Common_Delete_Confirm]') %>', 7 msg_finish_confirm: '<%= jl('[_TodoList_Common_MessageFinishConfirm]') %>', 8 msg_todo_not_selected: '<%= jl('[_TodoList_Common_ErrorTodoNotSelected]') %>', 9 url_common_input: '<%= url_for(:controller => '/todo_list/common', :action => 'input') %>', 10 url_index_delete: '<%= url_for(:controller => '/todo_list/index', :action => 'delete') %>', 11 url_index_finish: '<%= url_for(:controller => '/todo_list/index', :action => 'finish') %>', 12 url_list_delete: '<%= url_for(:controller => '/todo_list/list', :action => 'delete') %>', 13 url_list_show: '<%= url_for(:controller => '/todo_list/list', :action => 'show') %>' 794 14 }); 795 15 </script> 16 <% render_window('todo_input_window', 'rubricks.todo_list.todo_input_window', '[_TodoList_Common_InputWindowTitle]', {:width => 640, :height => 510, :onCloseButton => 'function() {rubricks.todo_list.common_input_window_close();}', :appendToBody => true}) do %> 17 <div id="todo_input_window_contents"></div> 18 <% end %> components/todo_list/trunk/todo_list/remind_mail_cron.rb
r4140 r5721 3 3 def execute(arg) 4 4 if TodoList::TodoListConfig.instance.site_reminder_flag 5 remind_tasks = TodoList::TodoListTodo.find_remind_tasks 6 remind_tasks.each do |remind_task| 5 TodoList::TodoListTodo.find_remind_tasks.each do |remind_task| 7 6 begin 8 7 RubricksLib.load_lang … … 11 10 rescue => ex 12 11 RAILS_DEFAULT_LOGGER.error ex.message 13 RAILS_DEFAULT_LOGGER.error ex.backtrace 12 RAILS_DEFAULT_LOGGER.error ex.backtrace.join("\n ") 14 13 end 15 14 end components/todo_list/trunk/todo_list/todo_list_category_box.rb
r4687 r5721 1 1 class TodoList::TodoListCategoryBox < ActiveRecord::Base 2 acts_as_record_trails :trails_fields => {:title => '[_Common_Title]'}, :default_methods => [:title], :auto_logger => {:update => true} 2 acts_as_record_trails :trails_fields => {:title => '[_Common_Title]'}, :default_methods => [:title] 3 has_many :todo_list_todos 4 belongs_to :rubricks_user 5 validates_length_of :title, :in => 1..15 6 validates_numericality_of :box_no, :only_integer => true 7 validates_inclusion_of :box_no, :in=>1..3 3 8 4 has_many :todo_list_todos 5 belongs_to :rubricks_user 9 unless defined? BOX_NUMBERS 10 BOX_NUMBERS = [3, 2, 1] 11 end 6 12 7 validates_length_of :title, :in => 1..15 8 validates_numericality_of :box_no, :only_integer => true 9 validates_inclusion_of :box_no, :in=>1..3 13 class << self 14 def find_or_create_boxes(ru_id) 15 tlcb_list = self.find(:all, :conditions => ['rubricks_user_id = ?', ru_id], :order => 'box_no desc') 16 if tlcb_list.blank? 17 tlcb_list = [] 18 BOX_NUMBERS.each do |no| 19 tlcb_list << self.create(:title => RubricksLib.hl("[_TodoList_Index_LabelPriority#{no}]"), :box_no => no, :rubricks_user_id => ru_id) 20 end 21 end 22 return tlcb_list 23 end 24 end 25 26 def current_todos 27 TodoList::TodoListTodo.find(:all, :conditions => ['todo_list_category_box_id = ? and closed_on is null', self.id], :order => 'order_in_box asc') 28 end 10 29 end components/todo_list/trunk/todo_list/todo_list_config.rb
r4687 r5721 1 1 class TodoList::TodoListConfig < ActiveRecord::Base 2 acts_as_record_trails :trails_fields => {:site_reminder_flag => '[_Todo_TrailAdminUpdate_col1]', :site_remind_hour => '[_Todo_TrailAdminUpdate_col2]', :site_remind_min => '[_Todo_TrailAdminUpdate_col3]'}, :default_methods => [:site_reminder_flag, :site_remind_hour, :site_remind_min], :auto_logger => {:read => false, :update => false} 3 4 validates_numericality_of :site_reminder_flag, :only_integer => true 5 validates_inclusion_of :site_reminder_flag, :in=>0..1 2 acts_as_record_trails :trails_fields => {:trail_site_reminder_flag => '[_TodoList_Common_Reminder]', :trail_site_remind_time => '[_TodoList_Admin_RemindTime]'}, :default_methods => [:trail_site_reminder_flag, :trail_site_remind_time] 3 validates_bool_of :site_reminder_flag 6 4 validates_numericality_of :site_remind_hour, :only_integer => true 7 5 validates_inclusion_of :site_remind_hour, :in=>0..23 … … 11 9 class << self 12 10 def instance 13 unless TodoList::TodoListConfig.exists?(1) 14 new_instance = TodoList::TodoListConfig.new 15 new_instance.site_reminder_flag = 0 16 new_instance.site_remind_hour = 0 17 new_instance.site_remind_min = 0 18 new_instance.save 19 end 20 self.find(1) 11 self.find(1) rescue self.create!({:site_reminder_flag => false, :site_remind_hour => 0, :site_remind_min => 0}) 12 end 13 end 14 15 def trail_site_remind_time 16 if self.site_reminder_flag 17 return %Q|#{sprintf('%02d', self.site_remind_hour)}:#{sprintf('%02d', self.site_remind_min)}| 18 else 19 return '' 20 end 21 end 22 23 def trail_site_reminder_flag 24 if self.site_reminder_flag 25 return RubricksLib.hl('[_Common_Use]') 26 else 27 return RubricksLib.hl('[_Common_NotUse]') 21 28 end 22 29 end components/todo_list/trunk/todo_list/todo_list_mailer.rb
r4875 r5721 3 3 RubricksLib.load_lang 4 4 self.template_root = "#{RAILS_ROOT}/components" 5 sub_str_header = RubricksLib.hl('[_Todo _Common_Reminder]')5 sub_str_header = RubricksLib.hl('[_TodoList_Common_Reminder]') 6 6 from_str = "#{RubricksConfig.get('mail_from_name')} <#{RubricksConfig.get('mail_from_address')}>" 7 7 file_name = "remind_mail_#{RubricksLib.current_lang}" 8 distance = build_distance(remind_mail_task) 9 10 #@headers['MIME-Version'] = "1.0" 11 #@headers['Content-Transfer-Encoding'] = "7bit" 8 distance = TodoList::TodoListLib.deadline_message(remind_mail_task.distance_for_close_on) 12 9 13 10 recipient = remind_mail_task.todo_list_category_box.rubricks_user.email_by_admin … … 20 17 body(:todo => remind_mail_task) 21 18 end 22 23 private24 def build_distance(todo_task)25 if todo_task.distance_for_close_on > 026 sprintf(RubricksLib.hl('[_Todo_Reminder_BeforeDay]'), todo_task.distance_for_close_on)27 elsif todo_task.distance_for_close_on == 028 RubricksLib.hl('[_Todo_Reminder_JustToday]')29 else30 sprintf(RubricksLib.hl('[_Todo_Reminder_AfterDay]'), todo_task.distance_for_close_on.abs)31 end32 end33 19 end components/todo_list/trunk/todo_list/todo_list_todo.rb
r4687 r5721 1 1 class TodoList::TodoListTodo < ActiveRecord::Base 2 acts_as_record_trails :trails_fields => {:title => '[_Common_Title]'}, :default_methods => [:title], :auto_logger => {:update => true} 2 unless defined? DEADLINE_CAUTION 3 DEADLINE_CAUTION = 5 4 ORDER_MAX = 65535 5 PROGRESS_RANGE = [0,10,20,30,40,50,60,70,80,90,100] 6 end 3 7 4 belongs_to :todo_list_category_box 5 6 # you can't do bulk updating. 7 attr_protected :id, :category, :created_on, :updated_on, :closed_on, :closed_flag, :delete_flag, :rubricks_user_id_owner, :rubricks_user_id_from, :rubricks_user_id_to, :todo_id 8 9 validates_numericality_of :id, :only_integer => true, :allow_nil => true 8 acts_as_record_trails :trails_fields => {:title => '[_Common_Title]'}, :default_methods => [:title] 9 belongs_to :todo_list_category_box 10 validates_bool_of :reminder_flag 11 validates_bool_of :sync_calendar_flag 12 validates_numericality_of :order_in_box, :only_integer => true 13 validates_inclusion_of :order_in_box, :in=>0..ORDER_MAX 14 validates_numericality_of :progress, :only_integer => true 15 validates_inclusion_of :progress, :in => PROGRESS_RANGE 16 validates_numericality_of :reminder_delay, :only_integer => true 17 validates_inclusion_of :reminder_delay, :in => 0..5 18 validates_numericality_of :reminder_every, :only_integer => true 19 validates_inclusion_of :reminder_every, :in => 0..1 20 validates_numericality_of :this_order, :only_integer => true 21 validates_inclusion_of :this_order, :in => 1..3 22 validates_numericality_of :todo_list_category_box_id, :only_integer => true 10 23 validates_length_of :title, :in => 1..30 11 24 validates_length_of :content, :in => 0..1500, :allow_nil => true 12 validates_length_of :category, :in => 1..30, :allow_nil => true 25 validates_date_of :created_on, :allow_nil => true 26 validates_date_of :updated_on, :allow_nil => true 13 27 validates_date_of :start_on, :allow_nil => true 14 28 validates_date_of :close_on, :allow_nil => true 15 29 validates_date_of :closed_on, :allow_nil => true 16 validates_numericality_of :this_order, :only_integer => true17 validates_inclusion_of :this_order, :in=>1..318 validates_numericality_of :progress, :only_integer => true19 validates_inclusion_of :progress, :in=>[0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100]20 validates_numericality_of :closed_flag, :only_integer => true21 validates_inclusion_of :closed_flag, :in=>0..122 validates_numericality_of :delete_flag, :only_integer => true23 validates_inclusion_of :delete_flag, :in=>0..124 validates_numericality_of :rubricks_user_id_owner, :only_integer => true25 validates_numericality_of :rubricks_user_id_from, :only_integer => true26 validates_numericality_of :rubricks_user_id_to, :only_integer => true, :allow_nil => true27 validates_numericality_of :todo_id, :only_integer => true, :allow_nil => true28 validates_numericality_of :reminder_flag, :only_integer => true29 validates_inclusion_of :reminder_flag, :in=>0..130 validates_numericality_of :reminder_every, :only_integer => true31 validates_inclusion_of :reminder_every, :in=>0..132 validates_numericality_of :reminder_delay, :only_integer => true33 validates_inclusion_of :reminder_delay, :in=>0..534 validates_numericality_of :sync_calendar_flag, :only_integer => true35 validates_inclusion_of :sync_calendar_flag, :in=>0..136 37 def validate38 errors.add("created_on", "has invalid date") unless created_on?()39 errors.add("updated_on", "has invalid date") unless updated_on?()40 errors.add("start_on", "has invalid date") unless start_on?()41 errors.add("close_on", "has invalid date") unless close_on?()42 errors.add("closed_on", "has invalid date") unless closed_on?()43 return errors.empty?44 end45 30 46 31 class << self 47 def find_remind_tasks(always_every = false) 48 return [] unless TodoList::TodoListConfig.instance.site_reminder_flag? 49 reminder_flag_tasks = TodoList::TodoListTodo.find( 50 :all, 51 :conditions => [ 52 'closed_flag = false and delete_flag = false and ' + 53 'reminder_flag = true and close_on is not null' 54 ], 55 :include => [{:todo_list_category_box => :rubricks_user}], 56 :order => 'close_on' 57 ) 58 reminder_tasks = reminder_flag_tasks.delete_if do |t| 59 !(t.in_remind_stage? && (always_every || t.reminder_every? || t.remind_start_day?)) 32 def create_or_update_todo(input_data) 33 if input_data[:id].blank? 34 tlt = self.new({:order_in_box => ORDER_MAX}) 35 else 36 tlt = self.find(input_data[:id]) 60 37 end 61 return reminder_tasks 38 tlt.update_todo(input_data) 39 return tlt 62 40 end 63 41 64 def find_remind_tasks_by_user(always_every, user_id) 65 return [] unless TodoList::TodoListConfig.instance.site_reminder_flag? 42 def filter_merge_conditions(filter_conditions_hash) 43 filter_conditions, query, conditions = {}, [], [] 44 query << 'todo_list_category_box_id in (?)' 45 conditions << TodoList::TodoListCategoryBox.find_or_create_boxes(RubricksLib.current_user.id).map{|tlcb| tlcb.id} 46 case filter_conditions_hash[:target] 47 when 'all' 48 when 'completed' 49 query << 'closed_on is not null' 50 else 51 query << 'closed_on is null' 52 end 53 unless filter_conditions_hash[:word].blank? 54 fixed_word = '%' + filter_conditions_hash[:word] + '%' 55 query << '(title like ? or content like ?)' 56 conditions << fixed_word 57 conditions << fixed_word 58 end 59 date_range = RubricksLib.dates_to_range(filter_conditions_hash[:start_on], filter_conditions_hash[:close_on]) 60 if date_range.first == date_range.last 61 unless date_range.first == RubricksLib::DATE_DUMMY 62 query << '((start_on <= ? and close_on >= ?) or (start_on <= ? and close_on is null) or (start_on is null and close_on >= ?))' 63 conditions << date_range.first 64 conditions << date_range.first 65 conditions << date_range.first 66 conditions << date_range.first 67 end 68 else 69 if date_range.first == RubricksLib::DATE_DUMMY 70 query << '(start_on <= ? or close_on <= ?)' 71 conditions << date_range.first 72 conditions << date_range.last 73 elsif date_range.last == RubricksLib::DATE_DUMMY 74 query << '(start_on >= ? or close_on >= ?)' 75 conditions << date_range.first 76 conditions << date_range.last 77 else 78 query << '((start_on <= ? and close_on >= ?) or (start_on <= ? and close_on >= ?) or (start_on <= ? and close_on is null) or (start_on is null and close_on >= ?) or (start_on >= ? and start_on <= ?) or (close_on >= ? and close_on <= ?))' 79 conditions << date_range.first 80 conditions << date_range.first 81 conditions << date_range.last 82 conditions << date_range.last 83 conditions << date_range.last 84 conditions << date_range.first 85 conditions << date_range.first 86 conditions << date_range.last 87 conditions << date_range.first 88 conditions << date_range.last 89 end 90 end 91 conditions.unshift(query.join(' and ')) 92 filter_conditions[:conditions] = conditions 93 filter_conditions[:page] = filter_conditions_hash[:page] 94 filter_conditions[:search] = !filter_conditions_hash[:word].blank? 95 return filter_conditions 96 end 66 97 67 conditions = "" 68 reminder_flag_tasks = TodoList::TodoListTodo.find( 69 :all, 70 :conditions => [ 71 'rubricks_user_id_owner=? and closed_flag = false and delete_flag = false and ' + 72 'reminder_flag = true and close_on is not null', user_id 73 ], 74 :include => [{:todo_list_category_box => :rubricks_user}], 75 :order => 'close_on' 76 ) 77 reminder_tasks = reminder_flag_tasks.delete_if do |t| 78 !(t.in_remind_stage? && (always_every || t.reminder_every? || t.remind_start_day?)) 98 def filter_merge_hash(filter_conditions_hash, input_data, page) 99 if input_data.is_a?(Hash) 100 input_data = input_data.symbolize_keys 101 filter_conditions_hash[:word] = input_data[:word] unless input_data[:word].nil? 102 filter_conditions_hash[:target] = input_data[:target] unless input_data[:target].nil? 103 filter_conditions_hash[:start_on] = input_data[:start_on] unless input_data[:start_on].nil? 104 filter_conditions_hash[:close_on] = input_data[:close_on] unless input_data[:close_on].nil? 79 105 end 80 return reminder_tasks 106 filter_conditions_hash[:page] = page if page != 0 107 return filter_conditions_hash 81 108 end 82 end83 109 84 def created_on? 85 todo_date?(created_on) 86 end 110 def finish_todo(id) 111 tlt = self.find(id) 112 tlt.update_todo({:progress => PROGRESS_RANGE.last}) 113 end 87 114 88 def updated_on? 89 todo_date?(updated_on) 90 end 115 def find_remind_tasks 116 if TodoList::TodoListConfig.instance.site_reminder_flag.blank? 117 return [] 118 else 119 reminder_flag_tasks = self.find(:all, :conditions => ['reminder_flag = true and closed_on is not null'], :include => {:todo_list_category_box => :rubricks_user}, :order => 'close_on') 120 reminder_tasks = reminder_flag_tasks.delete_if{|task| task.remind_unwanted?} 121 return reminder_tasks 122 end 123 end 91 124 92 def start_on? 93 todo_date?(start_on) 94 end 95 96 def close_on? 97 todo_date?(close_on) 98 end 99 100 def closed_on? 101 todo_date?(closed_on) 102 end 103 104 def in_remind_stage? 105 return (Time.now >= Time.at(self.close_on - self.reminder_delay.day)) 106 end 107 108 def remind_start_day? 109 today = Time.now 110 start_day = Time.at(self.close_on - self.reminder_delay.day) 111 return( 112 today.year == start_day.year && 113 today.month == start_day.month && 114 today.day == start_day.day 115 ) 125 def refresh_order(*args) 126 options = args.flex :box_no, :tlt_id_list 127 unless options[:tlt_id_list].nil? 128 tlcb = TodoList::TodoListCategoryBox.find(options[:box_no]) 129 self.find(:all, :conditions => ['todo_list_todos.id in (?)', options[:tlt_id_list]], :include => :todo_list_category_box).each do |tlt| 130 tlt.ignore_auto_logger = true 131 tlt.update_attributes!(:todo_list_category_box_id => options[:box_no], :order_in_box => options[:tlt_id_list].index(tlt.id.to_s)) 132 end 133 end 134 end 116 135 end 117 136 118 137 def distance_for_close_on 119 138 if self.close_on.nil? 120 nil139 return nil 121 140 else 122 close_on_date_time = DateTime.new( 123 self.close_on.year, self.close_on.month, self.close_on.day 124 ) 125 current_date_time = DateTime.new( 126 DateTime.now.year, DateTime.now.month, DateTime.now.day 127 ) 128 (close_on_date_time - current_date_time).to_i 141 close_on_date_time = DateTime.new(self.close_on.year, self.close_on.month, self.close_on.day) 142 current_date_time = DateTime.new(DateTime.now.year, DateTime.now.month, DateTime.now.day) 143 return (close_on_date_time - current_date_time).to_i 129 144 end 130 145 end 131 146 132 :protected 133 def todo_date?(obj) 134 if obj.nil? 135 return true 136 elsif obj.instance_of?(Date) or obj.instance_of?(Time) or obj.instance_of?(DateTime) 137 if obj.year < 0 or 9999 < obj.year 147 def remind_unwanted? 148 if(Time.now >= Time.at(self.close_on - self.reminder_delay.day)) 149 if(self.reminder_every > 0 || Time.at(self.close_on - self.reminder_delay.day).to_date === Date.today) 138 150 return false 139 151 end 140 return true 141 else 142 return false; 152 end 153 return true 154 end 155 156 def update_todo(input_data) 157 self.title = input_data[:title] unless input_data[:title].blank? 158 self.content = input_data[:content] unless input_data[:content].nil? 159 self.start_on = input_data[:start_on] unless input_data[:start_on].nil? 160 self.close_on = input_data[:close_on] unless input_data[:close_on].nil? 161 self.closed_on = Date.today if self.progress != PROGRESS_RANGE.last && input_data[:progress].to_i == PROGRESS_RANGE.last 162 self.closed_on = nil if input_data[:progress] && input_data[:progress].to_i != PROGRESS_RANGE.last 163 self.this_order = input_data[:this_order] unless input_data[:close_on].blank? 164 self.progress = input_data[:progress] unless input_data[:progress].blank? 165 set_category 166 set_reminder(input_data) 167 self.save! 168 return self 169 end 170 171 def validate 172 raise_if_invalid_user 173 end 174 175 private 176 def raise_if_invalid_user 177 raise RubricksError::Common::ValidateException unless self.todo_list_category_box.rubricks_user_id == RubricksLib.current_user.id 178 end 179 180 def set_category 181 self.todo_list_category_box_id ||= TodoList::TodoListCategoryBox.find_or_create_boxes(RubricksLib.current_user.id)[1].id 182 end 183 184 def set_reminder(input_data) 185 self.reminder_flag = (input_data[:reminder_flag] == 'on') ? true : false 186 self.reminder_flag = false unless self.closed_on.blank? 187 if self.reminder_flag 188 self.reminder_delay = input_data[:reminder_delay] 189 self.reminder_every = input_data[:reminder_every] 143 190 end 144 191 end 145 146 def strcount(str)147 return nil if str == nil148 n = 0149 str.scan(/./) do |c|150 n = n + 1151 end152 return n153 end154 192 end
