Module: CmsCommonHelper
- Included in:
- DcBigMenuRenderer, DcGalleryRenderer, DcMenuRenderer, DcPageRenderer, DcPartRenderer, DcPieceRenderer, DcPollRenderer, DcSimpleMenuRenderer
- Defined in:
- app/helpers/cms_common_helper.rb
Overview
Common methods which may also come handy in controllers or models or any other module of program.
Usage: include CmsCommonHelper
Class Method Summary collapse
-
.dc_choices_for_field(model, field) ⇒ Object
Return choices for field in model if choices are defined in localization text.
-
.dc_format_date_time(value, format = nil) ⇒ Object
Returns html code for displaying date/time formatted by strftime.
-
.dc_format_number(value = 0, decimals = nil, separator = nil, delimiter = nil, currency = nil) ⇒ Object
Returns html code for displaying formatted number.
-
.dc_name_for_value(model, field, value) ⇒ Object
When select field is used on form options for select can be provided by helpers.label.table_name.choices4_name locale.
-
.t(key, default = nil) ⇒ Object
Wrapper for i18 t method, with some spice added.
Instance Method Summary collapse
- #dc_choices4_field(model, field) ⇒ Object
- #dc_choices_for_field(model, field) ⇒ Object
- #dc_date_time(value, format) ⇒ Object
-
#dc_format_date_time(value, format = nil) ⇒ Object
Returns html code for displaying date/time formatted by strftime.
-
#dc_format_number(value = 0, decimals = nil, separator = nil, delimiter = nil, currency = nil) ⇒ Object
Returns html code for displaying formatted number.
-
#dc_help_body ⇒ Object
Will return text from help files.
-
#dc_help_fields ⇒ Object
Will scoop fields and help text associated with them to create basic help text.
-
#dc_help_for_tab(tab) ⇒ Object
Create help text for fields on single tab.
- #dc_icon4_boolean(value = false) ⇒ Object
-
#dc_icon_for_boolean(value = false) ⇒ Object
Return html code for icon presenting boolean value.
- #dc_name4_id(model, field, field_name, id = nil) ⇒ Object
- #dc_name4_value(model, field, value) ⇒ Object
-
#dc_name_for_id(model, field, field_name, id = nil) ⇒ Object
Will return descriptive text for id key when field in one table (collection) has belongs_to relation to other table.
- #dc_name_for_value(model, field, value) ⇒ Object
-
#t(key, default = nil) ⇒ Object
:nodoc.
-
#t_name(field_name, default = '') ⇒ Object
Returns label for field translated to current locale for usage on data entry form.
-
#t_tablename(tablename, default = nil) ⇒ Object
Returns table (collection) name translation for usage in dialog title.
Class Method Details
.dc_choices_for_field(model, field) ⇒ Object
Return choices for field in model if choices are defined in localization text.
Parameters:
- model
-
String. Table (collection) model name (lowercase).
- field
-
String. Field name used.
Example:
dc_choices4_field('dc_user', 'state' )
Returns: Array. Choices for select input field
148 149 150 151 152 |
# File 'app/helpers/cms_common_helper.rb', line 148 def self.dc_choices_for_field(model, field) c = CmsCommonHelper.t('helpers.label.' + model + '.choices4_' + field ) return ['error'] if c.match( 'translation missing' ) c.chomp.split(',').inject([]) {|r,v| r << v.split(':') } end |
.dc_format_date_time(value, format = nil) ⇒ Object
Returns html code for displaying date/time formatted by strftime. Will return ” if value is nil.
Parameters:
- value
-
Date/DateTime/Time.
- format
-
String. strftime format mask. Defaults to locale’s default format.
249 250 251 252 253 254 255 256 257 |
# File 'app/helpers/cms_common_helper.rb', line 249 def self.dc_format_date_time(value, format=nil) return '' if value.blank? format ||= value.class == Date ? t('date.formats.default') : t('time.formats.default') if format.size == 1 format = format.match(/d/i) ? t('date.formats.default') : t('time.formats.default') end value.strftime(format) end |
.dc_format_number(value = 0, decimals = nil, separator = nil, delimiter = nil, currency = nil) ⇒ Object
Returns html code for displaying formatted number.
Parameters:
- value
-
Numeric number.
- decimals
-
Integer. Number of decimals
- separator
-
String. Decimals separator
- delimiter
-
String. Thousands delimiter.
- currency
-
String. Currency symbol if applied to result string.
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 |
# File 'app/helpers/cms_common_helper.rb', line 288 def self.dc_format_number(value=0, decimals=nil, separator=nil, delimiter=nil, currency=nil) decimals ||= I18n.t('number.currency.format.precision') separator ||= I18n.t('number.currency.format.separator') separator = '' if decimals == 0 delimiter ||= I18n.t('number.currency.format.delimiter') whole, dec = value.to_s.split('.') whole = '0' if whole.blank? # remove and remember sign sign = '' if whole[0] == '-' whole.delete_prefix!('-') sign << '-' end # format decimals dec ||= '0' dec = dec[0,decimals] while dec.size < decimals do dec += '0' end # slice whole on chunks of 3 ar = [] while whole.size > 0 do n = whole.size >=3 ? 3 : whole.size ar << whole.slice!(n*-1,n) end # put it all back and format "#{sign}#{ar.reverse.join(delimiter)}#{separator}#{dec}" end |
.dc_name_for_value(model, field, value) ⇒ Object
When select field is used on form options for select can be provided by helpers.label.table_name.choices4_name locale. This is how select field options are translated. Method returns selected choice translated to current locale.
Parameters:
- model
-
String. Table (collection) model name (lowercase).
- field
-
String. Field name used.
- value
-
String. Value of field which translation will be returned.
Example:
# usage in program. Choice values for state are 'Deactivated:0,Active:1,Waiting:2'
dc_name4_value('dc_user', 'state', @record.active )
# usage in form
columns:
2:
name: state
eval: dc_name4_value dc_user, state
Returns: String. Descriptive text (translated) for selected choice value.
114 115 116 117 118 119 120 |
# File 'app/helpers/cms_common_helper.rb', line 114 def self.dc_name_for_value(model, field, value) return '' if value.nil? c = t('helpers.label.' + model + '.choices4_' + field ) a = c.chomp.split(',').inject([]) {|r,v| r << v.split(':') } a.each {|e| return e.first if e.last.to_s == value.to_s } '???' end |
.t(key, default = nil) ⇒ Object
Wrapper for i18 t method, with some spice added. If translation is not found English translation value will be returned. And if still not found default value will be returned if passed.
Parameters:
- key
-
String. String to be translated into locale.
- default
-
String. Value returned if translation is not found.
Example:
t('translate.this','Enter text for ....')
Returns: String. Translated text.
47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/helpers/cms_common_helper.rb', line 47 def self.t(key, default=nil) c = I18n.t(key) if c.class == Hash or c.match( 'translation missing' ) c = I18n.t(key, locale: 'en') # Still not found. Return default if set if c.class == Hash or c.match( 'translation missing' ) c = default.nil? ? key : default end end c end |
Instance Method Details
#dc_choices4_field(model, field) ⇒ Object
162 163 164 165 |
# File 'app/helpers/cms_common_helper.rb', line 162 def dc_choices4_field(model, field) #nodoc #dc_deprecate('dc_choices4_field will be deprecated. Use dc_choices_for_field instead.') CmsCommonHelper.dc_choices_for_field(model, field) end |
#dc_choices_for_field(model, field) ⇒ Object
155 156 157 |
# File 'app/helpers/cms_common_helper.rb', line 155 def dc_choices_for_field(model, field) CmsCommonHelper.dc_choices_for_field(model, field) end |
#dc_date_time(value, format) ⇒ Object
273 274 275 276 |
# File 'app/helpers/cms_common_helper.rb', line 273 def dc_date_time(value, format) #:nodoc: dc_deprecate 'dc_date_time will be deprecated! Use dc_format_date_time instead.' dc_format_date_time(value, format) end |
#dc_format_date_time(value, format = nil) ⇒ Object
Returns html code for displaying date/time formatted by strftime. Will return ” if value is nil.
Parameters:
- value
-
Date/DateTime/Time.
- format
-
String. strftime format mask. Defaults to locale’s default format.
266 267 268 |
# File 'app/helpers/cms_common_helper.rb', line 266 def dc_format_date_time(value, format=nil) #:nodoc: CmsCommonHelper.dc_format_date_time(value, format) end |
#dc_format_number(value = 0, decimals = nil, separator = nil, delimiter = nil, currency = nil) ⇒ Object
Returns html code for displaying formatted number.
Parameters:
- value
-
Numeric number.
- decimals
-
Integer. Number of decimals
- separator
-
String. Decimals separator
- delimiter
-
String. Thousands delimiter.
- currency
-
String. Currency symbol if applied to result string.
325 326 327 |
# File 'app/helpers/cms_common_helper.rb', line 325 def dc_format_number(value=0, decimals=nil, separator=nil, delimiter=nil, currency=nil) #:nodoc: CmsCommonHelper.dc_format_number(value, decimals, separator, delimiter, currency) end |
#dc_help_body ⇒ Object
Will return text from help files
371 372 373 |
# File 'app/helpers/cms_common_helper.rb', line 371 def dc_help_body (params[:type] == 'index' ? @help['index'] : @help['form']).html_safe end |
#dc_help_fields ⇒ Object
Will scoop fields and help text associated with them to create basic help text.
356 357 358 359 360 361 362 363 364 365 366 |
# File 'app/helpers/cms_common_helper.rb', line 356 def dc_help_fields return '' if @form['form'].nil? html = '<a id="fields"></a>' if @form['form']['tabs'] @form['form']['tabs'].each { |tab| html << dc_help_for_tab(tab) } else html << dc_help_for_tab(@form['form']['fields']) end html.html_safe end |
#dc_help_for_tab(tab) ⇒ Object
Create help text for fields on single tab
332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 |
# File 'app/helpers/cms_common_helper.rb', line 332 def dc_help_for_tab(tab) return '' if tab.nil? html = '' if tab.class == Array tab_name = tab.last['caption'] || tab.first tab_label, tab_help = dc_tab_label_help(tab_name) html << %(<div class="help-tab">#{tab_label}</div><div class="help-tab-help">#{tab_help}</div>) tab = tab.last end tab.each do |field| label, help = dc_label_help(field.last) next if help.blank? html << %(<div class="help-field"><div class="help-label">#{label}</div><div class="help-text">#{help}</div></div>) end html end |
#dc_icon4_boolean(value = false) ⇒ Object
237 238 239 240 |
# File 'app/helpers/cms_common_helper.rb', line 237 def dc_icon4_boolean(value=false) #nodoc #dc_deprecate('dc_icon4_boolean will be deprecated. Use dc_icon_for_boolean instead.') dc_icon_for_boolean(value) end |
#dc_icon_for_boolean(value = false) ⇒ Object
Return html code for icon presenting boolean value. Icon is a picture of checked or unchecked box.
Parameters:
- value
-
Boolean.
Example:
# usage from program
dc_icon4_boolean(some_value)
# usage from form description
columns:
10:
name: active
eval: dc_icon4_boolean
230 231 232 |
# File 'app/helpers/cms_common_helper.rb', line 230 def dc_icon_for_boolean(value=false) dc_dont?(value, true) ? fa_icon('square-o lg') : fa_icon('check-square-o lg') end |
#dc_name4_id(model, field, field_name, id = nil) ⇒ Object
209 210 211 212 |
# File 'app/helpers/cms_common_helper.rb', line 209 def dc_name4_id(model, field, field_name, id=nil) #nodoc #dc_deprecate('dc_name4_id will be deprecated. Use dc_name_for_id instead.') dc_name_for_id(model, field, field_name, id) end |
#dc_name4_value(model, field, value) ⇒ Object
130 131 132 133 |
# File 'app/helpers/cms_common_helper.rb', line 130 def dc_name4_value(model, field, value) #nodoc #dc_deprecate('dc_name4_value will be deprecated. Use dc_name_for_value instead.') CmsCommonHelper.dc_name_for_value(model, field, value) end |
#dc_name_for_id(model, field, field_name, id = nil) ⇒ Object
Will return descriptive text for id key when field in one table (collection) has belongs_to relation to other table.
Parameters:
- model
-
String. Table (collection) model name (lowercase).
- field
-
String. Field name holding the value of descriptive text.
- field_name
-
String. ID field name. This is by default id, but can be any other
(preferred unique) field.
- value
-
Value of id_field. Usually a BSON Key but can be any other data type.
Example:
# usage in program.
dc_name4_id('dc_user', 'name', nil, dc_page.created_by)
# usage in form
columns:
2:
name: site_id
eval: dc_name4_id,site,name
# username is saved to document instead of user.id field
5:
name: user
eval: dc_name4_id,dc_user,name,username
Returns: String. Name (descriptive value) for specified key in table.
195 196 197 198 199 200 201 202 203 204 |
# File 'app/helpers/cms_common_helper.rb', line 195 def dc_name_for_id(model, field, field_name, id=nil) return '' if id.nil? field_name = (field_name || 'id').strip.to_sym field = field.strip.to_sym model = model.strip.classify.constantize if model.class == String doc = Mongoid::QueryCache.cache { model.find_by(field_name => id) } doc.nil? ? '' : (doc.send(field) rescue 'not defined') end |
#dc_name_for_value(model, field, value) ⇒ Object
123 124 125 |
# File 'app/helpers/cms_common_helper.rb', line 123 def dc_name_for_value(model, field, value) CmsCommonHelper.dc_name_for_value(model, field, value) end |
#t(key, default = nil) ⇒ Object
:nodoc
60 61 62 |
# File 'app/helpers/cms_common_helper.rb', line 60 def t(key, default=nil) #:nodoc CmsCommonHelper.t(key, default) end |
#t_name(field_name, default = '') ⇒ Object
Returns label for field translated to current locale for usage on data entry form. Translation is provided by lang.helpers.label.table_name.field_name locale. If translation is not found method will capitalize field_name and replace ‘_’ with ‘ ’.
84 85 86 87 88 |
# File 'app/helpers/cms_common_helper.rb', line 84 def t_name(field_name, default='') c = t("helpers.label.#{@form['table']}.#{field_name}", default) c = field_name.capitalize.gsub('_',' ') if c.match( 'translation missing' ) c end |
#t_tablename(tablename, default = nil) ⇒ Object
Returns table (collection) name translation for usage in dialog title. Tablename title is provided by helpers.label.table_name.tabletitle locale.
Parameters:
- tablename
-
String. Table (collection) name to be translated.
- default
-
String. Value returned if translation is not found.
Returns: String. Translated text.
75 76 77 |
# File 'app/helpers/cms_common_helper.rb', line 75 def t_tablename(tablename, default=nil) t('helpers.label.' + tablename + '.tabletitle', default || tablename) end |