2014-04-01 07:10:21 +00:00
|
|
|
module OrbitHelper
|
2014-08-05 06:45:52 +00:00
|
|
|
def self.set_params(params,current_user)
|
2014-04-21 02:48:36 +00:00
|
|
|
@params = params
|
2014-08-05 06:45:52 +00:00
|
|
|
@current_user = current_user
|
2014-04-21 02:48:36 +00:00
|
|
|
end
|
|
|
|
|
2014-04-21 07:19:29 +00:00
|
|
|
def self.set_page_categories(categories)
|
|
|
|
@categories = categories;
|
|
|
|
end
|
|
|
|
|
2014-07-11 13:12:08 +00:00
|
|
|
def self.set_page_tags(tags)
|
|
|
|
@tags = tags;
|
|
|
|
end
|
|
|
|
|
2014-11-03 12:00:59 +00:00
|
|
|
def self.register_subpart(subpart_id)
|
|
|
|
subpart = SubPart.find(subpart_id) rescue nil
|
|
|
|
if !subpart.nil?
|
|
|
|
self.set_current_widget subpart
|
|
|
|
self.set_widget_data_count subpart.data_count
|
|
|
|
self.set_widget_categories subpart.categories
|
|
|
|
self.set_widget_module_app subpart.module
|
|
|
|
self.set_widget_item_url subpart
|
|
|
|
self.set_widget_title subpart.title
|
|
|
|
self.set_widget_categories subpart.categories || []
|
|
|
|
self.set_widget_tags subpart.tags || []
|
|
|
|
custom_value = subpart.custom_string_field || subpart.custom_array_field rescue nil
|
|
|
|
if !custom_value.nil?
|
|
|
|
self.set_widget_custom_value custom_value
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-07-23 16:04:10 +00:00
|
|
|
def self.set_page_role_status(role_status)
|
|
|
|
@role_status = role_status;
|
|
|
|
end
|
|
|
|
|
2014-07-31 07:41:28 +00:00
|
|
|
def self.set_member_sort_position(sort_position)
|
|
|
|
@sort_position = sort_position;
|
|
|
|
end
|
|
|
|
|
2014-04-21 07:19:29 +00:00
|
|
|
def self.set_page_data_count(data_count)
|
|
|
|
@data_count = data_count
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.page_data_count
|
|
|
|
@data_count
|
|
|
|
end
|
|
|
|
|
2014-06-04 12:36:12 +00:00
|
|
|
def self.set_page_number(page)
|
|
|
|
@page_number = page
|
2014-06-11 09:52:29 +00:00
|
|
|
if @page_number == 0
|
|
|
|
@page_number = 1
|
|
|
|
end
|
2014-06-04 12:36:12 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.page_number
|
|
|
|
@page_number || 1
|
|
|
|
end
|
|
|
|
|
2014-04-21 07:19:29 +00:00
|
|
|
def self.page_categories
|
|
|
|
@categories
|
|
|
|
end
|
|
|
|
|
2014-07-11 13:12:08 +00:00
|
|
|
def self.page_tags
|
|
|
|
@tags
|
|
|
|
end
|
|
|
|
|
2014-07-23 16:04:10 +00:00
|
|
|
def self.page_role_status
|
|
|
|
@role_status
|
|
|
|
end
|
|
|
|
|
2014-07-31 07:41:28 +00:00
|
|
|
def self.member_sort_position
|
|
|
|
@sort_position
|
|
|
|
end
|
|
|
|
|
2014-08-05 06:45:52 +00:00
|
|
|
def self.current_user
|
|
|
|
@current_user
|
|
|
|
end
|
|
|
|
|
2014-07-11 13:12:08 +00:00
|
|
|
def self.page_for_tag(tag)
|
|
|
|
page_for_tag = nil
|
|
|
|
pages = Page.where(:module => @module_app.key)
|
|
|
|
|
|
|
|
pages.each do |page|
|
|
|
|
if page.tags.count ==1
|
|
|
|
if page.tags.include?(tag)
|
|
|
|
page_for_tag = page
|
|
|
|
end
|
|
|
|
end
|
|
|
|
break if !page_for_tag.nil?
|
|
|
|
end
|
|
|
|
|
|
|
|
if page_for_tag.nil?
|
|
|
|
pages.each do |page|
|
|
|
|
if page.tags.include?(tag)
|
|
|
|
page_for_tag = page
|
|
|
|
end
|
|
|
|
break if !page_for_tag.nil?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
page_for_tag = pages.first if page_for_tag.nil?
|
|
|
|
'/'+I18n.locale.to_s+page_for_tag.url+'?tags[]='+tag.id.to_s
|
|
|
|
end
|
|
|
|
|
2014-05-14 11:47:25 +00:00
|
|
|
def self.this_module_app
|
|
|
|
@module_app
|
|
|
|
end
|
2014-05-22 11:19:25 +00:00
|
|
|
|
|
|
|
def self.widget_module_app
|
|
|
|
@widget_module_app
|
|
|
|
end
|
|
|
|
|
2014-05-14 11:47:25 +00:00
|
|
|
def self.set_this_module_app(module_app)
|
|
|
|
@module_app = ModuleApp.where(:key=>module_app).first
|
|
|
|
end
|
|
|
|
|
2014-05-22 11:19:25 +00:00
|
|
|
def self.set_widget_custom_value(value)
|
|
|
|
@widget_custom_value = value
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_custom_value
|
|
|
|
@widget_custom_value
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.set_widget_module_app(module_app)
|
|
|
|
@widget_module_app = ModuleApp.where(:key=>module_app).first
|
|
|
|
end
|
|
|
|
|
2014-07-01 06:36:15 +00:00
|
|
|
def self.set_widget_title(title)
|
|
|
|
@widget_title = title
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_title
|
|
|
|
@widget_title
|
|
|
|
end
|
|
|
|
|
2014-07-11 13:12:08 +00:00
|
|
|
def self.set_widget_tags(tags)
|
2015-02-26 09:18:38 +00:00
|
|
|
@widget_tags = tags
|
2014-07-11 13:12:08 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_tags
|
2014-12-28 06:43:34 +00:00
|
|
|
@widget_tags
|
2014-07-11 13:12:08 +00:00
|
|
|
end
|
|
|
|
|
2014-08-05 06:45:52 +00:00
|
|
|
def self.user_can_edit?(obj)
|
|
|
|
return false if @current_user.nil?
|
|
|
|
return true if @current_user.is_admin?
|
2014-12-01 13:40:15 +00:00
|
|
|
return @current_user.nil? ? false : self.user_has_cateogry?(obj.category_id)
|
2014-08-05 06:45:52 +00:00
|
|
|
end
|
|
|
|
|
2014-09-22 08:34:22 +00:00
|
|
|
def self.user_access_level?
|
|
|
|
access_level = nil
|
2014-10-06 10:00:41 +00:00
|
|
|
if @current_user.nil?
|
|
|
|
access_level = "user"
|
|
|
|
elsif@current_user.is_admin?
|
2014-09-22 08:34:22 +00:00
|
|
|
access_level = "admin"
|
|
|
|
elsif @current_user.is_manager?(@module_app)
|
|
|
|
access_level = "manager"
|
|
|
|
elsif @current_user.is_sub_manager?(@module_app)
|
|
|
|
access_level = "sub_manager"
|
|
|
|
end
|
|
|
|
access_level
|
|
|
|
end
|
|
|
|
|
2014-08-05 06:45:52 +00:00
|
|
|
def self.user_has_cateogry?(cat)
|
|
|
|
return false if @current_user.nil?
|
|
|
|
if @current_user.is_admin? or @current_user.is_manager?(@module_app)
|
|
|
|
return true
|
|
|
|
else
|
2014-12-01 14:00:42 +00:00
|
|
|
category = Category.find(cat) rescue nil
|
|
|
|
return false if category.nil?
|
|
|
|
return @current_user.approved_categories.include?category rescue false
|
2014-08-05 06:45:52 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-04-21 07:19:29 +00:00
|
|
|
def self.params
|
2014-04-21 02:48:36 +00:00
|
|
|
@params
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.url_to_show(slug)
|
|
|
|
if @params[:url]
|
|
|
|
"/#{@site_locale}#{@params[:url]}/#{slug}"
|
|
|
|
else
|
|
|
|
page = Page.where(:module => self.current_widget_module).first
|
|
|
|
"/#{@site_locale}#{page.url}/#{slug}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-07-02 09:37:34 +00:00
|
|
|
def self.url_to_plugin_show(slug,module_app)
|
2014-07-03 04:51:25 +00:00
|
|
|
page = Page.find_by(:module => module_app) rescue ""
|
2014-07-04 03:50:08 +00:00
|
|
|
@url_to_plugin_show = "#{page.url}/#{slug}" rescue "#"
|
2014-07-02 09:37:34 +00:00
|
|
|
end
|
|
|
|
|
2014-10-31 05:41:16 +00:00
|
|
|
|
|
|
|
def self.override_widget_module_app(module_app)
|
|
|
|
self.set_widget_module_app module_app
|
|
|
|
@url_widget_for_show = ""
|
|
|
|
pages = Page.where(:module => module_app)
|
2014-11-03 12:00:59 +00:00
|
|
|
widget_categories = self.get_current_widget.categories rescue []
|
2014-10-31 05:41:16 +00:00
|
|
|
finalpage = nil
|
|
|
|
pages.each do |p|
|
|
|
|
if p.categories == widget_categories
|
|
|
|
finalpage = p
|
|
|
|
end
|
|
|
|
break if !finalpage.nil?
|
|
|
|
end
|
|
|
|
if finalpage.nil?
|
|
|
|
pages.each do |p|
|
|
|
|
if self.array_include(p.categories, widget_categories)
|
|
|
|
finalpage = p
|
|
|
|
end
|
|
|
|
break if !finalpage.nil?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
finalpage = pages.first if finalpage.nil?
|
|
|
|
if !finalpage.nil?
|
|
|
|
@url_widget_for_show = "/#{@site_locale.to_s}#{finalpage.url}"
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2014-05-24 11:35:06 +00:00
|
|
|
def self.set_widget_item_url(widget)
|
|
|
|
@url_widget_for_show = ""
|
|
|
|
module_app = widget.module
|
2014-10-31 05:41:16 +00:00
|
|
|
module_app = self.widget_module_app.key if module_app.nil?
|
2014-05-24 11:35:06 +00:00
|
|
|
pages = Page.where(:module => module_app)
|
|
|
|
widget_categories = widget.categories
|
|
|
|
finalpage = nil
|
|
|
|
pages.each do |p|
|
|
|
|
if p.categories == widget_categories
|
|
|
|
finalpage = p
|
|
|
|
end
|
2014-05-28 07:57:58 +00:00
|
|
|
break if !finalpage.nil?
|
2014-05-24 11:35:06 +00:00
|
|
|
end
|
|
|
|
if finalpage.nil?
|
|
|
|
pages.each do |p|
|
|
|
|
if self.array_include(p.categories, widget_categories)
|
|
|
|
finalpage = p
|
|
|
|
end
|
2014-05-28 07:57:58 +00:00
|
|
|
break if !finalpage.nil?
|
2014-05-24 11:35:06 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
finalpage = pages.first if finalpage.nil?
|
|
|
|
if !finalpage.nil?
|
|
|
|
@url_widget_for_show = "/#{@site_locale.to_s}#{finalpage.url}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.array_include(arr1,arr2)
|
|
|
|
final = []
|
|
|
|
arr2.each do |el|
|
|
|
|
final.push(arr1.include?el)
|
|
|
|
end
|
|
|
|
!final.include?false
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_item_url(obj)
|
|
|
|
@url_widget_for_show + "/" + obj
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_more_url
|
|
|
|
@url_widget_for_show
|
|
|
|
end
|
|
|
|
|
2014-04-21 02:48:36 +00:00
|
|
|
def page_url(url)
|
|
|
|
"#{request.host_with_port}/#{locale}#{url}"
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.set_site_locale(locale)
|
|
|
|
@site_locale = locale
|
|
|
|
end
|
|
|
|
|
2014-05-22 11:19:25 +00:00
|
|
|
def self.set_widget_data_count(data_count)
|
|
|
|
@widget_data_count = data_count
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_data_count
|
|
|
|
@widget_data_count
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.set_widget_categories(categories)
|
2014-12-10 10:09:50 +00:00
|
|
|
@widget_categories = []
|
|
|
|
categories.each do |c|
|
|
|
|
category = Category.find(c) rescue nil
|
|
|
|
if !category.nil? && !category.disable
|
|
|
|
@widget_categories << c
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@widget_categories = ["all"] if @widget_categories.blank?
|
2014-05-22 11:19:25 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.widget_categories
|
|
|
|
@widget_categories
|
|
|
|
end
|
|
|
|
|
2014-04-21 02:48:36 +00:00
|
|
|
def self.get_site_locale
|
|
|
|
@site_locale
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.current_widget_module
|
|
|
|
@controller_name
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.set_current_widget_module(name)
|
|
|
|
@controller_name = name
|
|
|
|
end
|
|
|
|
|
2014-10-31 05:41:16 +00:00
|
|
|
def self.set_current_widget(widget)
|
|
|
|
@current_widget = widget
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.get_current_widget
|
|
|
|
@current_widget
|
|
|
|
end
|
|
|
|
|
2014-04-21 02:48:36 +00:00
|
|
|
def get_item_module_infos(page)
|
|
|
|
if page.parent_page_id.nil?
|
|
|
|
["Home","icons-house"]
|
|
|
|
else
|
|
|
|
module_app = ModuleApp.where(:key => page.module).first
|
2014-05-22 09:57:58 +00:00
|
|
|
unless module_app.nil?
|
2014-06-24 06:07:59 +00:00
|
|
|
[module_app.title, (module_app.get_registration.icon_class || module_app.get_registration.get_icon_class_no_sidebar)]
|
2014-05-22 09:57:58 +00:00
|
|
|
else
|
|
|
|
if page.module.eql? "sitemap"
|
|
|
|
["sitemap", "icons-directions"]
|
|
|
|
else
|
|
|
|
["", "icon-minus-sign"]
|
|
|
|
end
|
|
|
|
end
|
2014-04-21 02:48:36 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-05-15 11:32:51 +00:00
|
|
|
def self.orbit_impressionist(object)
|
|
|
|
impressionist(object)
|
|
|
|
end
|
|
|
|
|
2014-05-29 10:32:27 +00:00
|
|
|
def self.is_mobile_view
|
|
|
|
!$mobile.blank?
|
|
|
|
end
|
|
|
|
|
2014-04-21 02:48:36 +00:00
|
|
|
# ===============================================================
|
|
|
|
# Breadcrumbs
|
|
|
|
# ===============================================================
|
|
|
|
def back_end_breadcrumb
|
|
|
|
res = ''
|
|
|
|
divider = "<span class='divider'>/</span>"
|
|
|
|
res << "<li><a href='#{admin_dashboards_path}'>#{t(:dashboard_)}</a>#{divider}</li>"
|
|
|
|
case controller.controller_name
|
|
|
|
when 'authorizations'
|
|
|
|
res << "<li><a href='/#{params[:controller]}/#{@module_app.key}'>#{@module_app.title}</a>#{divider}</li>"
|
|
|
|
case params[:type]
|
|
|
|
when 'approval'
|
|
|
|
res << "<li class='active'>#{t(:approval_)}</li>"
|
|
|
|
when 'category'
|
|
|
|
res << "<li class='active'>#{t(:category_auth)}</li>"
|
|
|
|
when nil
|
|
|
|
res << "<li class='active'>#{t(:module_authorization)}</li>"
|
|
|
|
else
|
|
|
|
res << "<li class='active'>#{params[:type].underscore.humanize.capitalize} #{t(:authorization_)}</li>"
|
|
|
|
end
|
2014-10-20 11:50:16 +00:00
|
|
|
when 'images'
|
|
|
|
id = AlbumImage.find(params[:id]).album.id.to_s rescue ""
|
|
|
|
res << "<li><a href='/admin/galleries/#{id}'>#{t('module_name.'+@module_app.key)}</a>#{divider}</li>"
|
|
|
|
res << "<li class='active'>#{t(:theater)}</li>"
|
2014-04-21 02:48:36 +00:00
|
|
|
when 'categories'
|
2014-05-12 08:18:35 +00:00
|
|
|
if @module_app.key!='category'
|
2014-08-14 11:08:25 +00:00
|
|
|
res << "<li>#{t('module_name.'+@module_app.key)}#{divider}</li>"
|
2014-05-12 08:18:35 +00:00
|
|
|
res << "<li class='active'>#{t(:categories)}</li>"
|
|
|
|
else
|
2014-08-14 11:08:25 +00:00
|
|
|
res << "<li class='active'>#{t('module_name.category')}</li>"
|
2014-05-12 08:18:35 +00:00
|
|
|
end
|
|
|
|
when 'tags'
|
|
|
|
if @module_app.key!='tag'
|
2014-08-14 11:08:25 +00:00
|
|
|
res << "<li>#{t('module_name.'+@module_app.key)}#{divider}</li>"
|
2014-05-12 08:18:35 +00:00
|
|
|
res << "<li class='active'>#{t(:tags)}</li>"
|
|
|
|
else
|
2014-08-14 11:08:25 +00:00
|
|
|
res << "<li class='active'>#{t('module_name.tag')}</li>"
|
2014-05-12 08:18:35 +00:00
|
|
|
end
|
2014-04-21 02:48:36 +00:00
|
|
|
else
|
|
|
|
if params[:action].eql?('index')
|
2014-08-14 11:08:25 +00:00
|
|
|
res << "<li>#{t('module_name.'+@module_app.key)}</li>"
|
2014-04-21 02:48:36 +00:00
|
|
|
else
|
2014-08-14 11:08:25 +00:00
|
|
|
if params[:controller] == "admin/ad_images"
|
|
|
|
res << "<li><a href='/admin/ad_banners'>#{t('module_name.'+@module_app.key)}</a>#{divider}</li>"
|
|
|
|
else
|
|
|
|
res << "<li><a href='/#{params[:controller]}'>#{t('module_name.'+@module_app.key)}</a>#{divider}</li>"
|
|
|
|
end
|
2014-04-21 02:48:36 +00:00
|
|
|
res << "<li class='active'>#{t(params[:action], scope: 'restful_actions')}</li>"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
res.html_safe
|
|
|
|
end
|
2014-04-30 10:57:09 +00:00
|
|
|
def site_breadcrumb
|
|
|
|
res = ''
|
|
|
|
divider = "<span class='divider'>/</span>"
|
|
|
|
res << "<li>#{t(:settings)}#{divider}</li>"
|
|
|
|
site = Site.first
|
|
|
|
case controller.controller_name
|
|
|
|
when 'sites'
|
|
|
|
case controller.action_name
|
|
|
|
when 'sitemap'
|
|
|
|
res << "<li class='active'>#{t(:sitemap)}</li>"
|
|
|
|
when 'responsive_setting'
|
|
|
|
res << "<li class='active'>#{t(:mobile_settings)}</li>"
|
|
|
|
when 'mail_setting'
|
|
|
|
res << "<li class='active'>#{t(:mail_setting)}</li>"
|
|
|
|
when 'preference'
|
|
|
|
res << "<li class='active'>#{t(:preference)}</li>"
|
|
|
|
when 'search_engine'
|
|
|
|
res << "<li class='active'>#{t(:search_engine)}</li>"
|
|
|
|
when 'site_info'
|
|
|
|
res << "<li class='active'>#{t(:site_info)}</li>"
|
|
|
|
when 'update_manager'
|
|
|
|
res << "<li class='active'>#{t(:update_manager)}</li>"
|
|
|
|
when 'system_info'
|
|
|
|
res << "<li class='active'>#{t("site.system_preference")}</li>"
|
|
|
|
end
|
|
|
|
when 'items'
|
|
|
|
res << "<li class='active'>#{t(:structure)}</li>"
|
|
|
|
when 'module_store'
|
|
|
|
res << "<li class='active'>#{t(:modules)}</li>"
|
|
|
|
when 'designs'
|
|
|
|
res << "<li class='active'>#{t(:templates)}</li>"
|
|
|
|
end
|
|
|
|
res.html_safe
|
|
|
|
end
|
|
|
|
|
|
|
|
def active_when_current_locale_eq(locale)
|
|
|
|
locale.to_sym == I18n.locale ? 'active in': ''
|
|
|
|
end
|
2014-04-01 07:10:21 +00:00
|
|
|
end
|