Changeset 5767
- Timestamp:
- 05/28/08 13:29:49 (6 months ago)
- Files:
-
- rubricks_core/trunk/app/controllers/application.rb (modified) (1 diff)
- rubricks_core/trunk/app/models/rubricks_block_view.rb (modified) (1 diff)
- rubricks_core/trunk/app/models/rubricks_component_function.rb (modified) (1 diff)
- rubricks_core/trunk/app/models/rubricks_component_permission.rb (modified) (1 diff)
- rubricks_core/trunk/app/models/rubricks_group.rb (modified) (7 diffs)
- rubricks_core/trunk/app/models/rubricks_group_manager.rb (modified) (1 diff)
- rubricks_core/trunk/app/models/rubricks_lib.rb (modified) (1 diff)
- rubricks_core/trunk/app/models/rubricks_lib/rubricks_string_utils_lib.rb (modified) (2 diffs)
- rubricks_core/trunk/app/models/rubricks_user.rb (modified) (1 diff)
- rubricks_core/trunk/components/system/account_controller.rb (modified) (1 diff)
- rubricks_core/trunk/components/system/login_controller.rb (modified) (1 diff)
- rubricks_core/trunk/components/system/user_management/_group_show_tab_group_info.rhtml (modified) (3 diffs)
- rubricks_core/trunk/components/system/user_management/_group_show_tab_permission_info.rhtml (modified) (3 diffs)
- rubricks_core/trunk/components/system/user_management/_group_show_tab_user_belongs_to.rhtml (modified) (1 diff)
- rubricks_core/trunk/db/migrate/012_rubricks_core_schema_012.rb (modified) (3 diffs)
- rubricks_core/trunk/db/migrate/013_rubricks_core_schema_013.rb (added)
- rubricks_core/trunk/preload/_lib_extension.rhtml (modified) (1 diff)
- rubricks_core/trunk/public/javascripts/components/system/src_system_admin_menu.js (modified) (4 diffs)
- rubricks_core/trunk/public/javascripts/components/system/system.js (modified) (4 diffs)
- rubricks_core/trunk/public/javascripts/spinelz/calendar.js (modified) (32 diffs)
- rubricks_core/trunk/public/javascripts/spinelz/spinelz_for_rubricks.js (modified) (33 diffs)
- rubricks_core/trunk/public/javascripts/spinelz/timepicker.js (modified) (1 diff)
- rubricks_core/trunk/public/javascripts/src_spinelz/calendar.js (modified) (20 diffs)
- rubricks_core/trunk/public/javascripts/src_spinelz/timepicker.js (modified) (1 diff)
- rubricks_core/trunk/public/stylesheets/spinelz/calendar.css (modified) (1 diff)
- rubricks_core/trunk/public/stylesheets/spinelz/spinelz_for_rubricks.css (modified) (1 diff)
- rubricks_core/trunk/test/fixtures/common/rubricks_groups.csv (modified) (1 diff)
- rubricks_core/trunk/test/fixtures/system_admin_user_1/rubricks_groups.csv (modified) (1 diff)
- rubricks_core/trunk/test/fixtures/system_admin_user_2/rubricks_groups.csv (modified) (1 diff)
- rubricks_core/trunk/test/fixtures/system_common/rubricks_groups.csv (modified) (1 diff)
- rubricks_core/trunk/test/functional/account_create_test.rb (modified) (16 diffs)
- rubricks_core/trunk/test/functional/admin_user_group_edit_test.rb (modified) (3 diffs)
- rubricks_core/trunk/themes/asteriksorange/images/icons/darkicon_arrow_move.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/darkicon_feed.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_date_minus.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_date_plus.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_gourmet_select.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_schedule_clock_red.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_schedule_clock_yellow.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_simple_arrow.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_simple_check.gif (added)
- rubricks_core/trunk/themes/asteriksorange/images/icons/icon_user_vote.gif (added)
- rubricks_core/trunk/themes/asteriksorange/stylesheets/asteriksorange.css (modified) (7 diffs)
- rubricks_core/trunk/themes/asteriksorange/stylesheets/icons.css (modified) (2 diffs)
- rubricks_core/trunk/themes/asteriksorange/stylesheets/layouts.css (modified) (1 diff)
- rubricks_core/trunk/themes/asteriksorange/stylesheets/print.css (modified) (6 diffs)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/darkicon_arrow_move.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/darkicon_feed.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_date_minus.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_date_plus.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_gourmet_select.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_schedule_clock_red.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_schedule_clock_yellow.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_simple_arrow.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_simple_check.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/images/icons/icon_user_vote.gif (added)
- rubricks_core/trunk/themes/rubrickswhite/stylesheets/icons.css (modified) (2 diffs)
- rubricks_core/trunk/themes/rubrickswhite/stylesheets/layouts.css (modified) (2 diffs)
- rubricks_core/trunk/themes/rubrickswhite/stylesheets/print.css (modified) (6 diffs)
- rubricks_core/trunk/themes/rubrickswhite/stylesheets/rubrickswhite.css (modified) (7 diffs)
- rubricks_core/trunk/vendor/plugins/rubricks/lib/action_controller_user_management.rb (modified) (1 diff)
- rubricks_core/trunk/vendor/plugins/rubricks/lib/action_view_spinelz_selectable_table_helper.rb (modified) (1 diff)
- rubricks_core/trunk/vendor/plugins/rubricks/lib/active_support_core_ext_string_rubricks.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
rubricks_core/trunk/app/controllers/application.rb
r5759 r5767 231 231 url = url_for(:controller => '/system/login', :action => 'auth', :params => caller_params) 232 232 end 233 status = 401 if ajax? 233 234 end 234 235 else rubricks_core/trunk/app/models/rubricks_block_view.rb
r4567 r5767 1 # Model to manage block display position.2 # Keeps relation information with RUBRICKS_MENU_ITEM table3 # for displaying block on which page.4 # (Rubricks manages Menu = Page)5 1 class RubricksBlockView < ActiveRecord::Base 6 2 belongs_to :rubricks_block rubricks_core/trunk/app/models/rubricks_component_function.rb
r4991 r5767 1 # This model keeps pemission information.2 # More than one permission can be defined for each component.3 # This permission can be applied to unit of the group.4 1 class RubricksComponentFunction < ActiveRecord::Base 5 2 has_many :rubricks_blocks, :dependent => :destroy rubricks_core/trunk/app/models/rubricks_component_permission.rb
r4576 r5767 1 # This model keeps each group's permission information.2 # Three types of permission can be set: Allow, Deny and Inherit.3 1 class RubricksComponentPermission < ActiveRecord::Base 4 2 acts_as_record_trails :trails_fields => {:detail_trail => '[_Common_Details]', :permission_trail => '[_Common_Permission]'}, :default_methods => [:detail_trail, :permission_trail] rubricks_core/trunk/app/models/rubricks_group.rb
r5695 r5767 3 3 acts_as_spinelz_treeview :id_prefix => 'group_', :type => :directory, :children => :effective_children, :class_name => 'treeview_icon_group' 4 4 acts_as_tree 5 has_many :rubricks_groups_rubricks_users, :dependent => :destroy6 has_many :rubricks_users, :through => :rubricks_groups_rubricks_users5 has_many :rubricks_groups_rubricks_users, :dependent => :destroy 6 has_many :rubricks_users, :through => :rubricks_groups_rubricks_users 7 7 has_many :rubricks_component_permissions 8 has_many :rubricks_component_functions, :through => :rubricks_component_permissions8 has_many :rubricks_component_functions, :through => :rubricks_component_permissions 9 9 validates_bool_of :built_in 10 10 validates_bool_of :effective 11 validates_numericality_of :private_component_id, :only_integer => true 12 validates_length_of :kana, :in => 1..64, :allow_nil => true 13 validates_length_of :name, :in => 1..64 11 validates_numericality_of :parent_id, :only_integer => true, :allow_nil => true 12 validates_numericality_of :private_component_id, :only_integer => true 13 validates_numericality_of :root_id, :only_integer => true 14 validates_length_of :group_identifier, :in => 0..16 15 validates_length_of :kana, :in => 1..64, :allow_nil => true 16 validates_length_of :name, :in => 1..64 14 17 validates_not_nil_of :description 15 validates_length_of :description, :in => 0..8018 validates_length_of :description, :in => 0..80 16 19 17 20 unless defined? ADMIN_GROUP_ID … … 39 42 40 43 def create_group(rg_data) 41 rg = self.new(rg_data) 42 rg.kana = nil if rg.kana.blank? 44 rg = self.create!( 45 { 46 :parent_id => ((rg_data[:parent_id].blank?) ? nil : rg_data[:parent_id].to_i), 47 :private_component_id => rg_data[:private_component_id].to_i, 48 :group_identifier => '', 49 :kana => ((rg_data[:kana].blank?) ? nil : rg_data[:kana]), 50 :name => rg_data[:name], 51 :description => rg_data[:description], 52 } 53 ) 43 54 raise RubricksError::Common::ValidateException if rg.grade > TREE_GRADE_LIMIT 44 rg. save!55 rg.update_attributes!({:root_id => rg.root.id}) 45 56 return rg 46 57 end … … 81 92 options[:conditions].unshift(query) 82 93 end 83 find(args.first, options) 94 result = find(args.first, options) 95 raise ActiveRecord::RecordNotFound if result.blank? && !args.first.is_a?(Symbol) 96 return result 84 97 end 85 98 86 99 def update_group(rg_data) 87 100 rg = self.find(rg_data[:id].to_i) 88 return rg.update_ user(rg_data)101 return rg.update_group(rg_data) 89 102 end 90 103 … … 112 125 end 113 126 127 def clear_group_managers 128 end 129 114 130 def delete_group 131 self.clear_group_managers 115 132 self.rubricks_groups_rubricks_users.each do |rgru| 116 133 rgru.destroy … … 175 192 end 176 193 194 def group_info_editable? 195 return true 196 end 197 198 def group_permission_editable? 199 if self.id == ADMIN_GROUP_ID 200 return false 201 else 202 return true 203 end 204 end 205 206 def group_user_editable? 207 if self.id == GUEST_GROUP_ID || self.id == REGISTERED_GROUP_ID 208 return false 209 else 210 return true 211 end 212 end 213 177 214 def has_authorization_function?(rcf_id) 178 215 permission = self_authorized?(rcf_id) … … 195 232 end 196 233 197 def update_group_managers(group_managers, multiple)198 return true if self.id == GUEST_GROUP_ID || self.id == REGISTERED_GROUP_ID199 group_managers ||= []200 group_managers.map!{|ru_id| ru_id.to_i}201 group_managers.delete_if{|gm| gm == ''}202 conditions = "rubricks_group_id = #{self.id}"203 unless group_managers.empty?204 group_managers = [group_managers.first] unless multiple205 group_managers.each do |ru_id|206 rgm = RubricksGroupManager.find(:first, :conditions => ['rubricks_user_id = ? and rubricks_group_id = ?', ru_id, self.id])207 unless rgm208 new_rgm = RubricksGroupManager.create!({:rubricks_user_id => ru_id, :rubricks_group_id => self.id})209 end210 end211 conditions += " and rubricks_user_id not in (#{group_managers.join(',')})"212 end213 RubricksGroupManager.delete_all(conditions)214 end215 216 234 def update_user_association(users_belongs_to) 217 r eturn true if self.id == GUEST_GROUP_ID || self.id == REGISTERED_GROUP_ID235 raise RubricksError::Common::ValidateException unless self.group_user_editable? 218 236 users_belongs_to ||= [] 219 237 users_belongs_to.map!{|ru_id| ru_id.to_i} … … 245 263 246 264 def valid_kana? 265 return true unless RubricksLib.current_lang == 'japanese' 247 266 kana_format = %r(#{RubricksLib.l('[_Common_Kana_Format]')}) 248 267 return kana.nil? || kana.match(kana_format) rubricks_core/trunk/app/models/rubricks_group_manager.rb
r4599 r5767 1 # Model to manage group manager.2 1 class RubricksGroupManager < ActiveRecord::Base 3 2 acts_as_record_trails :trails_fields => {:user_name => '[_Common_Name]'}, :default_methods => [:user_name] rubricks_core/trunk/app/models/rubricks_lib.rb
r5759 r5767 28 28 } 29 29 INSTALL_DIR = File.join(RAILS_ROOT, 'install') 30 LIST_PER_PAGE = 2030 LIST_PER_PAGE = 10 31 31 LIST_PER_PAGE_IN_WINDOW = 10 32 32 PASSWORD_REISSUE_REDIRECT = {:controller => '/system/login', :action => 'login_page', :params => {:type => 'change_password'}} rubricks_core/trunk/app/models/rubricks_lib/rubricks_string_utils_lib.rb
r5084 r5767 1 1 module RubricksStringUtilsLib 2 HtmlEntity = Hash[ *%w(nbsp 160 iexcl 161 cent 162 pound 163 curren 164 3 yen 165 brvbar 166 sect 167 uml 168 copy 169 ordf 170 laquo 171 not 172 4 shy 173 reg 174 macr 175 deg 176 plusmn 177 sup2 178 sup3 179 acute 180 5 shy 173 reg 174 macr 175 deg 176 plusmn 177 sup2 178 sup3 179 acute 180 6 micro 181 para 182 middot 183 cedil 184 sup1 185 ordm 186 raquo 187 7 frac14 188 frac12 189 frac34 190 iquest 191 Agrave 192 Aacute 193 Acirc 194 8 Atilde 195 Auml 196 Aring 197 AElig 198 Ccedil 199 Egrave 200 9 Eacute 201 Ecirc 202 Euml 203 Igrave 204 Iacute 205 Icirc 206 10 Iuml 207 ETH 208 Ntilde 209 Ograve 210 Oacute 211 Ocirc 212 Otilde 213 11 Ouml 214 times 215 Oslash 216 Ugrave 217 Uacute 218 Ucirc 219 Uuml 220 12 Yacute 221 THORN 222 szlig 223 agrave 224 aacute 225 acirc 226 13 atilde 227 auml 228 aring 229 aelig 230 ccedil 231 egrave 232 14 eacute 233 ecirc 234 euml 235 igrave 236 iacute 237 icirc 238 iuml 239 15 eth 240 ntilde 241 ograve 242 oacute 243 ocirc 244 otilde 245 ouml 246 16 divide 247 oslash 248 ugrave 249 uacute 250 ucirc 251 uuml 252 17 yacute 253 thorn 254 yuml 255 fnof 402 Alpha 913 Beta 914 Gamma 915 18 Delta 916 Epsilon 917 Zeta 918 Eta 919 Theta 920 Iota 921 Kappa 922 19 Lambda 923 Mu 924 Nu 925 Xi 926 Omicron 927 Pi 928 Rho 929 Sigma 931 20 Tau 932 Upsilon 933 Phi 934 Chi 935 Psi 936 Omega 937 alpha 945 21 beta 946 gamma 947 delta 948 epsilon 949 zeta 950 eta 951 theta 952 22 iota 953 kappa 954 lambda 955 mu 956 nu 957 xi 958 omicron 959 pi 960 23 rho 961 sigmaf 962 sigma 963 tau 964 upsilon 965 phi 966 chi 967 psi 968 24 omega 969 thetasym 977 upsih 978 piv 982 bull 8226 hellip 8230 prime 8242 25 Prime 8243 oline 8254 frasl 8260 weierp 8472 image 8465 real 8476 26 trade 8482 alefsym 8501 larr 8592 uarr 8593 rarr 8594 darr 8595 27 harr 8596 crarr 8629 lArr 8656 uArr 8657 rArr 8658 dArr 8659 hArr 8660 28 forall 8704 part 8706 exist 8707 empty 8709 nabla 8711 isin 8712 29 notin 8713 ni 8715 prod 8719 sum 8721 minus 8722 lowast 8727 radic 8730 30 prop 8733 infin 8734 ang 8736 and 8743 or 8744 cap 8745 cup 8746 31 int 8747 there4 8756 sim 8764 cong 8773 asymp 8776 ne 8800 equiv 8801 32 le 8804 ge 8805 sub 8834 sup 8835 nsub 8836 sube 8838 supe 8839 33 oplus 8853 otimes 8855 perp 8869 sdot 8901 lceil 8968 rceil 8969 34 lfloor 8970 rfloor 8971 lang 9001 rang 9002 loz 9674 spades 9824 35 clubs 9827 hearts 9829 diams 9830 quot 34 amp 38 lt 60 gt 62 OElig 338 36 oelig 339 Scaron 352 scaron 353 Yuml 376 circ 710 tilde 732 ensp 8194 37 emsp 8195 thinsp 8201 zwnj 8204 zwj 8205 lrm 8206 rlm 8207 ndash 8211 38 mdash 8212 lsquo 8216 rsquo 8217 sbquo 8218 ldquo 8220 rdquo 8221 39 bdquo 8222 dagger 8224 Dagger 8225 permil 8240 lsaquo 8249 40 rsaquo 8250 euro 8364) ].inject({}){|r,v| 41 r[v[0]] = [v[1].to_i].pack("U") 42 r 43 } 44 2 45 def clip_string(str, limit) 3 46 if str.split(//).length > limit … … 29 72 Digest::SHA512.hexdigest(str) 30 73 end 74 75 def unescapeHTML(str) 76 str.gsub(/&([^&;]{2,8});/n) do |ma| 77 HtmlEntity[$1] or 78 case $1.dup 79 when /\A#0*(\d+)\z/n 80 (i = Integer($1)) < 65536 ? [i].pack('U') : ma 81 when /\A#x([0-9a-f]+)\z/ni 82 (i = $1.hex ) < 65536 ? [i].pack('U') : ma 83 else 84 ma 85 end 86 end 87 end 31 88 end 32 89 rubricks_core/trunk/app/models/rubricks_user.rb
r5759 r5767 254 254 options[:conditions].unshift(query) 255 255 end 256 find(args.first, options) 256 result = find(args.first, options) 257 raise ActiveRecord::RecordNotFound if result.blank? && !args.first.is_a?(Symbol) 258 return result 257 259 end 258 260 rubricks_core/trunk/components/system/account_controller.rb
r5758 r5767 281 281 judge_show_user(@options) 282 282 if RubricksUser.exists?(params[:id]) 283 @ru = RubricksUser.find (params[:id])283 @ru = RubricksUser.find_effective_user(params[:id]) 284 284 judge_search_user(@options, @ru) 285 judge_edit_user(@options) unless @ru.effective286 285 @editable_ru_columns = RubricksConfig.get_editable_ru_columns 287 286 if my_user?(@ru) rubricks_core/trunk/components/system/login_controller.rb
r5719 r5767 196 196 private 197 197 def caller_params_for_auth 198 delete_params([:controller, :action, :main, :top_page ])198 delete_params([:controller, :action, :main, :top_page, :rails_protection_session_id]) 199 199 end 200 200 rubricks_core/trunk/components/system/user_management/_group_show_tab_group_info.rhtml
r5745 r5767 3 3 <div id="group_info_management_area"> 4 4 <div class="background_white"> 5 <% if @options[:flg_edit_group] %>5 <% if @options[:flg_edit_group] && @rg.group_info_editable? %> 6 6 <% render_float_button('admin_user_fba3') do %> 7 7 <% unless @rg.built_in %> … … 14 14 </div> 15 15 <% end %> 16 <% else %> 17 <br class="cl" /> 16 18 <% end %> 17 19 <%= render :partial => '/system/user_management/group_show_tab_group_info_print_content' %> … … 19 21 </div> 20 22 <div class="background_white" style="display:none;"> 21 <% if @options[:flg_edit_group] %>23 <% if @options[:flg_edit_group] && @rg.group_info_editable? %> 22 24 <% validate_form('group_edit_button') do %> 23 25 <% form_remote_tag(:url => {:controller => params[:controller].sub(%r(^/?), '/'), :action => 'group_edit'}, :html => {:id => 'group_edit_form', :onsubmit => %q|rubricks.common.FormEditor.readMode('group_info_management_area');|}) do %> rubricks_core/trunk/components/system/user_management/_group_show_tab_permission_info.rhtml
r5695 r5767 4 4 <div id="group_permission_management_area"> 5 5 <div class="background_white"> 6 <% unless @rg.id == RubricksGroup::ADMIN_GROUP_ID%>6 <% if @rg.group_permission_editable? %> 7 7 <% render_float_button('group_permission_fba1') do %> 8 8 <div id="group_permission_edit_mode_form" class="float_button_right_inactive swap"> … … 10 10 </div> 11 11 <% end %> 12 <% else %> 13 <br class="cl" /> 12 14 <% end %> 13 15 <%= render :partial => '/system/user_management/group_show_tab_permission_info_print_content' %> … … 15 17 </div> 16 18 <div class="background_white" style="display:none;"> 17 <% unless @rg.id == RubricksGroup::ADMIN_GROUP_ID%>19 <% if @rg.group_permission_editable? %> 18 20 <% render_float_button('group_permission_fba2') do %> 19 21 <div class="float_button_right_inactive swap"> rubricks_core/trunk/components/system/user_management/_group_show_tab_user_belongs_to.rhtml
r5758 r5767 10 10 </select> 11 11 <% end %> 12 <% if @options[:flg_edit_group] %> 13 <% unless (@rg.id == RubricksGroup::GUEST_GROUP_ID || @rg.id == RubricksGroup::REGISTERED_GROUP_ID) %> 14 <% render_float_button('admin_user_fba5') do %> 15 <div id="group_user_edit_window_form" class="float_button_right_inactive swap"> 16 <span id="group_user_edit_window_button" class="buttons icon_edit" onclick="rubricks.system.admin_user.functions.group_user_edit_window_open();"><%= hl('[_Common_Edit]') %></span> 17 </div> 18 <% end %> 12 <% if @options[:flg_edit_group] && @rg.group_user_editable? %> 13 <% render_float_button('admin_user_fba5') do %> 14 <div id="group_user_edit_window_form" class="float_button_right_inactive swap"> 15 <span id="group_user_edit_window_button" class="buttons icon_edit" onclick="rubricks.system.admin_user.functions.group_user_edit_window_open();"><%= hl('[_Common_Edit]') %></span> 16 </div> 19 17 <% end %> 18 <% else %> 19 <br class="cl" /> 20 20 <% end %> 21 21 <%= render :partial => '/system/user_management/group_show_tab_user_belongs_to_print_content' %> rubricks_core/trunk/db/migrate/012_rubricks_core_schema_012.rb
r5755 r5767 1 1 class RubricksCoreSchema012 < ActiveRecord::Migration 2 ###################################################################################################################### 3 # Temp Class 4 ###################################################################################################################### 5 class RubricksComponent < ActiveRecord::Base 6 end 7 2 8 def self.up 3 9 #################################################################################################################### … … 14 20 # Data 15 21 #################################################################################################################### 22 RubricksComponent.update(1, {:version => '0.6.10'}) 16 23 end 17 24 … … 19 26 remove_index(:rubricks_trails, {:name => 'rubricks_trails_1'}) 20 27 add_index(:rubricks_trails, [:created_at, :component_name, :user_name, :action_type], {:name => 'rubricks_trails_1'}) 28 RubricksComponent.update(1, {:version => '0.6.9'}) 21 29 end 22 30 end rubricks_core/trunk/preload/_lib_extension.rhtml
r5744 r5767 16 16 break; 17 17 default: 18 rubricks.common.rubricks_message_window_open(req.responseText.stripTags(), 'error'); 18 var message = req.responseText.stripTags(); 19 if(message == '') { 20 message = '<%= jl('[_Common_NetworkError]') %>'; 21 } 22 rubricks.common.rubricks_message_window_open(message, 'error'); 19 23 break; 20 24 } rubricks_core/trunk/public/javascripts/components/system/src_system_admin_menu.js
r5744 r5767 25 25 rubricks.common.Validator.refresh(); 26 26 rubricks.common.FormEditor.editMode('menu_item_management_area'); 27 this.sortable_menus.sortable();28 27 }, 29 28 become_menu_item_read_mode: function() { … … 47 46 ); 48 47 Element.show($('sortable_item_list_' + menu_icon_id)); 48 this.sortable_menus.destroy(); 49 this.sortable_menus.sortable(); 49 50 }, 50 51 detail_area_hide: function() { … … 174 175 this.target_id_list = target_id_list; 175 176 this.record_initial_data(); 177 this.current_sortable_ids = null; 176 178 }, 177 179 record_initial_data: function() { … … 215 217 }, 216 218 sortable: function() { 217 var self = this; 218 $A(this.target_id_list).each(function(target_id) {self._sortable(target_id);}); 219 this.current_sortable_ids = [this.target_id_list[1], "sortable_item_list_" + $("other_icons_select_box").value]; 220 this.current_sortable_ids.each(function(target_id) { this._sortable(target_id); }.bind(this)); 221 }, 222 destroy: function() { 223 if (this.current_sortable_ids) { 224 this.current_sortable_ids.each(function(id) { Sortable.destroy(id); }); 225 } 226 this.current_sortable_ids = null; 219 227 }, 220 228 unsortable: function() { rubricks_core/trunk/public/javascripts/components/system/system.js
r5757 r5767 401 401 rubricks.common.Validator.refresh(); 402 402 rubricks.common.FormEditor.editMode("menu_item_management_area"); 403 this.sortable_menus.sortable();404 403 },become_menu_item_read_mode:function(){ 405 404 this.sortable_menus.unsortable(); … … 417 416 }); 418 417 Element.show($("sortable_item_list_"+_4)); 418 this.sortable_menus.destroy(); 419 this.sortable_menus.sortable(); 419 420 },detail_area_hide:function(){ 420 421 Element.hide("rubricks_menu_icon_info"); … … 527 528 this.target_id_list=_17; 528 529 this.record_initial_data(); 530 this.current_sortable_ids=null; 529 531 },record_initial_data:function(){ 530 532 this.initial_data=new Array(); … … 559 561 return _21; 560 562 },sortable:function(){ 561 var _23=this; 562 $A(this.target_id_list).each(function(_24){ 563 _23._sortable(_24); 564 }); 563 this.current_sortable_ids=[this.target_id_list[1],"sortable_item_list_"+$("other_icons_select_box").value]; 564 this.current_sortable_ids.each(function(_23){ 565 this._sortable(_23); 566 }.bind(this)); 567 },destroy:function(){ 568 if(this.current_sortable_ids){ 569 this.current_sortable_ids.each(function(id){ 570 Sortable.destroy(id); 571 }); 572 } 573 this.current_sortable_ids=null; 565 574 },unsortable:function(){ 566 575 var _25=$A(this.target_id_list); rubricks_core/trunk/public/javascripts/spinelz/calendar.js
r5707 r5767 647 647 var _ab=_a9.getDay(); 648 648 var _ac=_aa.indexOf(_ab); 649 return this.calendar.options.displayIndexes.map(function(_ad){ 650 var _ae=_ad-_ab; 651 var _af=_aa.indexOf(_ad); 652 if((_af<_ac)&&(_ae>0)){ 653 _ae-=7; 654 }else{ 655 if((_af>_ac)&&(_ae<0)){ 656 _ae+=7; 657 } 658 } 659 return DateUtil.afterDays(_a9,_ae); 660 }); 661 },isSameStartDate:function(_b0,_b1){ 662 return ((_b1.getFullYear()==_b0.start.year)&&(_b1.getMonth()==_b0.start.month)&&(_b1.getDate()==_b0.start.day)); 663 },isSameFinishDate:function(_b2,_b3){ 664 return ((_b3.getFullYear()==_b2.finish.year)&&(_b3.getMonth()==_b2.finish.month)&&(_b3.getDate()==_b2.finish.day)); 649 var _ad=[]; 650 var _ae=[]; 651 var _af=this.calendar.options.displayIndexes; 652 _aa.each(function(_b0){ 653 var _b1=_b0-_ab; 654 var _b2=_aa.indexOf(_b0); 655 if((_b2<_ac)&&(_b1>0)){ 656 _b1-=7; 657 }else{ 658 if((_b2>_ac)&&(_b1<0)){ 659 _b1+=7; 660 } 661 } 662 var _b3=DateUtil.afterDays(_a9,_b1); 663 if(_af.indexOf(_b0)>=0){ 664 _ad.push(_b3); 665 }else{ 666 _ae.push(_b3); 667 } 668 }.bind(this)); 669 return [_ad,_ae]; 670 },isSameStartDate:function(_b4,_b5){ 671 return ((_b5.getFullYear()==_b4.start.year)&&(_b5.getMonth()==_b4.start.month)&&(_b5.getDate()==_b4.start.day)); 672 },isSameFinishDate:function(_b6,_b7){ 673 return ((_b7.getFullYear()==_b6.finish.year)&&(_b7.getMonth()==_b6.finish.month)&&(_b7.getDate()==_b6.finish.day)); 665 674 },getSelectorId:function(){ 666 675 return this.calendar.element.id.appendSuffix(AbstractCalendar.id.selector); 667 },clickDateText:function(_b 4,_b5){668 Event.stop(_b 4);669 this.calendar.date=_b 5;676 },clickDateText:function(_b8,_b9){ 677 Event.stop(_b8); 678 this.calendar.date=_b9; 670 679 this.calendar.options.displayType="day"; 671 680 this.calendar.refresh(); … … 676 685 this.containerDimensions=Element.getDimensions(this.container); 677 686 this.containerOffset=Position.cumulativeOffset(this.container); 678 },mouseOverSubSchedule:function(_b6){ 679 _b6.each(function(_b7){ 680 var _b8=Element.getStyle(_b7,"borderTopColor"); 681 var _b9=Element.getStyle(_b7,"border"); 682 if(_b8&&(_b8!="")&&_b9&&(_b9!="")){ 683 if(!_b7.originalBorderColor){ 684 _b7.originalBorderColor=_b8; 685 } 686 Element.setStyle(_b7,{borderColor:new Color(_b8).invert()}); 687 }else{ 688 Element.addClassName(_b7,Calendar.className.scheduleItemSelect); 689 } 690 }); 691 },mouseOutSubSchedule:function(_ba){ 687 },mouseOverSubSchedule:function(_ba){ 692 688 _ba.each(function(_bb){ 693 if(_bb.originalBorderColor){ 694 Element.setStyle(_bb,{borderColor:_bb.originalBorderColor}); 695 }else{ 696 Element.removeClassName(_bb,Calendar.className.scheduleItemSelect); 697 } 698 }); 699 },toDate:function(_bc){ 700 return DateUtil.toDate(_bc); 689 var _bc=Element.getStyle(_bb,"borderTopColor"); 690 var _bd=Element.getStyle(_bb,"border"); 691 if(_bc&&(_bc!="")&&_bd&&(_bd!="")){ 692 if(!_bb.originalBorderColor){ 693 _bb.originalBorderColor=_bc; 694 } 695 Element.setStyle(_bb,{borderColor:new Color(_bc).invert()}); 696 }else{ 697 Element.addClassName(_bb,Calendar.className.scheduleItemSelect); 698 } 699 }); 700 },mouseOutSubSchedule:function(_be){ 701 _be.each(function(_bf){ 702 if(_bf.originalBorderColor){ 703 Element.setStyle(_bf,{borderColor:_bf.originalBorderColor}); 704 }else{ 705 Element.removeClassName(_bf,Calendar.className.scheduleItemSelect); 706 } 707 }); 708 },toDate:function(_c0){ 709 return DateUtil.toDate(_c0); 701 710 },getCalendarTableId:function(){ 702 711 return this.ids.calTable; … … 705 714 CalendarMonth.id=["year","month","column","nextYear","nextMonth","preYear","preMonth","calTable","scheduleContainer","container","emptyRow"]; 706 715 Object.extend(CalendarMonth.prototype,AbstractCalendar.prototype); 707 Object.extend(CalendarMonth.prototype,{initialize:function(_ bd){708 this.calendar=_ bd;709 this.week=this.getWeek() ;716 Object.extend(CalendarMonth.prototype,{initialize:function(_c1){ 717 this.calendar=_c1; 718 this.week=this.getWeek()[0]; 710 719 this.ids=SpinelzUtil.concat(this.calendar.element.id,CalendarMonth.id); 711 720 this.columnIds=[]; … … 713 722 return "<td class='"+this.calendar.classNames.preYears+"'>"+"<div id='"+this.ids.preYear+"' class='"+this.calendar.classNames.preYearMark+"'></div>"+"<div id='"+this.ids.preMonth+"' class='"+this.calendar.classNames.preMonthMark+"'></div>"+"</td>"; 714 723 },buildHeaderCenter:function(){ 715 var _ be=[];724 var _c2=[]; 716 725 if(this.calendar.options.monthHeaderFormat){ 717 var _ bf=this.calendar.date;718 var _c 0=new Template(this.calendar.options.monthHeaderFormat).evaluate({year:_bf.getFullYear(),month:_bf.getMonth()+1});719 _ be=[_c0," "];720 } 721 return "<td class='"+this.calendar.classNames.years+"'>"+"<span id='"+this.ids.month+"' class='"+this.calendar.classNames.ym+"'>"+(_ be[0]||DateUtil.months[this.calendar.date.getMonth()])+"</span>"+"<span id='"+this.ids.year+"' class='"+this.calendar.classNames.ym+"'>"+(_be[1]||this.calendar.date.getFullYear())+"</span>"+"</td>";726 var _c3=this.calendar.date; 727 var _c4=new Template(this.calendar.options.monthHeaderFormat).evaluate({year:_c3.getFullYear(),month:_c3.getMonth()+1}); 728 _c2=[_c4," "]; 729 } 730 return "<td class='"+this.calendar.classNames.years+"'>"+"<span id='"+this.ids.month+"' class='"+this.calendar.classNames.ym+"'>"+(_c2[0]||DateUtil.months[this.calendar.date.getMonth()])+"</span>"+"<span id='"+this.ids.year+"' class='"+this.calendar.classNames.ym+"'>"+(_c2[1]||this.calendar.date.getFullYear())+"</span>"+"</td>"; 722 731 },buildHeaderRight:function(){ 723 732 return "<td class='"+this.calendar.classNames.nextYears+"'>"+"<div id='"+this.ids.nextMonth+"' class='"+this.calendar.classNames.nextMonthMark+"'></div>"+"<div id='"+this.ids.nextYear+"' class='"+this.calendar.classNames.nextYearMark+"'></div>"+"</td>"; … … 725 734 return "<div>"+this.buildTableHeader()+this.buildScheduleContainer()+"</div>"; 726 735 },buildTableHeader:function(){ 727 var _c 1=100/this.calendar.options.displayIndexes.length+"%";728 var _c 2=this.calendar.options.displayIndexes.last();729 var _c 3=this.ids.column;730 var _c 4=this.calendar.options.displayIndexes.inject("",function(_c5,i){731 var id=_c 3.appendSuffix(i);736 var _c5=100/this.calendar.options.displayIndexes.length+"%"; 737 var _c6=this.calendar.options.displayIndexes.last(); 738 var _c7=this.ids.column; 739 var _c8=this.calendar.options.displayIndexes.inject("",function(_c9,i){ 740 var id=_c7.appendSuffix(i); 732 741 this.columnIds.push(id); 733 var _c 8=(_c2==i)?this.calendar.classNames.thRight:"";734 _c 5+="<th id='"+id+"' class='"+_c8+"' width='"+_c1+"'>"+this.calendar.options.dayOfWeek[i]+"</th>";735 return _c 5;742 var _cc=(_c6==i)?this.calendar.classNames.thRight:""; 743 _c9+="<th id='"+id+"' class='"+_cc+"' width='"+_c5+"'>"+this.calendar.options.dayOfWeek[i]+"</th>"; 744 return _c9; 736 745 }.bind(this)); 737 return "<table class='"+this.calendar.classNames.table+"'>"+"<tr>"+_c 4+"</tr>"+"</table>";746 return "<table class='"+this.calendar.classNames.table+"'>"+"<tr>"+_c8+"</tr>"+"</table>"; 738 747 },buildScheduleContainer:function(){ 739 var _c 9=(this.calendar.options.size=="large")?"position: relative":"";740 return "<div id='"+this.getScheduleContainerId()+"' style='"+_c 9+";'>"+this.buildTableData()+this.buildSelector()+"</div>";748 var _cd=(this.calendar.options.size=="large")?"position: relative":""; 749 return "<div id='"+this.getScheduleContainerId()+"' style='"+_cd+";'>"+this.buildTableData()+this.buildSelector()+"</div>"; 741 750 },buildTableData:function(){ 742 var _c a=this.calendar.options.displayIndexes;743 var _c b=new Date();744 var _ cc=this.calendar.date.getFullYear();745 var _ cd=this.calendar.date.getMonth();746 var _ ce=DateUtil.getFirstDate(_cc,_cd).getDay();747 var _ cf=DateUtil.getLastDate(_cc,_cd).getDate();751 var _ce=this.calendar.options.displayIndexes; 752 var _cf=new Date(); 753 var _d0=this.calendar.date.getFullYear(); 754 var _d1=this.calendar.date.getMonth(); 755 var _d2=DateUtil.getFirstDate(_d0,_d1).getDay(); 756 var _d3=DateUtil.getLastDate(_d0,_d1).getDate(); 748 757 var trs=[]; 749 758 var tds=[]; 750 var _d 2=100/_ca.length+"%";751 var _d 3=_ca.last();752 var _d 4,_d5,_d6,_d7,_d8,i=null;759 var _d6=100/_ce.length+"%"; 760 var _d7=_ce.last(); 761 var _d8,_d9,_da,_db,_dc,i=null; 753 762 this.dateMap={}; 754 var _d a=this.calendar.options.weekIndex;755 var _d b=DateUtil.dayOfWeek.length*6;763 var _de=this.calendar.options.weekIndex; 764 var _df=DateUtil.dayOfWeek.length*6; 756 765 var i=null; 757 766 var day=1; 758 if(_d a<=_ce){759 i=_d a;760 _d b+=i;761 }else{ 762 i=_d a-7;763 _d b-=i;764 } 765 var _ dd=_ce-_da;766 if(_ dd<0){767 _ dd+DateUtil.dayOfWeek.length;768 } 769 if((_ cf+_dd)>_db){770 _d b+=DateUtil.dayOfWeek.length;771 } 772 var _ de=_da;773 var _ df=0;774 for(;i<_d b;i++){775 if(_c a.include(_de)){776 var _e 0=(_de==_d3)?this.calendar.classNames.tdRight:"";777 if(i<_ ce){778 var _e 1=i-_ce+1;779 _d 7=new Date(this.calendar.date.getFullYear(),this.calendar.date.getMonth(),_e1);780 tds.push(this.buildEmptyRow(_d 7,_d2,_e0,_e1));781 }else{ 782 if(day>_ cf){783 _d 7=new Date(this.calendar.date.getFullYear(),this.calendar.date.getMonth(),day);784 tds.push(this.buildEmptyRow(_d 7,_d2,_e0,day));785 }else{ 786 if(i==_ ce){787 _d b+=_df;788 } 789 _d 7=new Date(this.calendar.date.getFullYear(),this.calendar.date.getMonth(),day);790 _d 5=this.calendar.options.holidays[_d7.toDateString()];767 if(_de<=_d2){ 768 i=_de; 769 _df+=i; 770 }else{ 771 i=_de-7; 772 _df-=i; 773 } 774 var _e1=_d2-_de; 775 if(_e1<0){ 776 _e1+DateUtil.dayOfWeek.length; 777 } 778 if((_d3+_e1)>_df){ 779 _df+=DateUtil.dayOfWeek.length; 780 } 781 var _e2=_de; 782 var _e3=0; 783 for(;i<_df;i++){ 784 if(_ce.include(_e2)){ 785 var _e4=(_e2==_d7)?this.calendar.classNames.tdRight:""; 786 if(i<_d2){ 787 var _e5=i-_d2+1; 788 _db=new Date(this.calendar.date.getFullYear(),this.calendar.date.getMonth(),_e5); 789 tds.push(this.buildEmptyRow(_db,_d6,_e4,_e5)); 790 }else{ 791 if(day>_d3){ 792 _db=new Date(this.calendar.date.getFullYear(),this.calendar.date.getMonth(),day); 793 tds.push(this.buildEmptyRow(_db,_d6,_e4,day)); 794 }else{ 795 if(i==_d2){ 796 _df+=_e3; 797 } 798 _db=new Date(this.calendar.date.getFullYear(),this.calendar.date.getMonth(),day); 799 _d9=this.calendar.options.holidays[_db.toDateString()]; 791 800 if(this.calendar.options.size==Calendar.size.large){ 792 tds.push(this.buildLargeRow(_d 7,_d5,_cb,_d2,_e0));793 }else{ 794 _d 6=this.calendar.options.schedules.detect(function(_e2){795 var _e 3=DateUtil.toDate(_e2.start);796 return _d 7.sameDate(_e3);797 }); 798 tds.push(this.buildSmallRow(_d 7,_d5,_d6,_cb,_d2,_e0));799 } 800 } 801 } 802 _ df++;803 } 804 if(i>=_ ce){801 tds.push(this.buildLargeRow(_db,_d9,_cf,_d6,_e4)); 802 }else{ 803 _da=this.calendar.options.schedules.detect(function(_e6){ 804 var _e7=DateUtil.toDate(_e6.start); 805 return _db.sameDate(_e7); 806 }); 807 tds.push(this.buildSmallRow(_db,_d9,_da,_cf,_d6,_e4)); 808 } 809 } 810 } 811 _e3++; 812 } 813 if(i>=_d2){ 805 814 day++; 806 815 } 807 if(_ de==_d3){816 if(_e2==_d7){ 808 817 if(!(tds.first().match(/empty/)&&tds.last().match(/empty/))){ 809 818 trs.push("<tr>"+tds.join("")+"</tr>"); … … 811 820 tds=[]; 812 821 } 813 if(_ de>=6){814 _ de=0;815 }else{ 816 _ de++;822 if(_e2>=6){ 823 _e2=0; 824 }else{ 825 _e2++; 817 826
