From 98db5a9fb6c07e3ae10918d055933cf85b4423e8 Mon Sep 17 00:00:00 2001 From: Harry Bomrah Date: Mon, 5 Feb 2018 17:47:52 +0800 Subject: [PATCH] module page updates --- .../images/register_module/logo-default.png | Bin 0 -> 59767 bytes .../register_module/module_store.scss | 145 ++++++++++++++++++ .../register_modules_controller.rb | 10 ++ app/models/registered_module.rb | 8 + .../admin/admin_modules/uploadfiles.html.erb | 27 +++- app/views/register_modules/index.html.erb | 85 ++++++++++ config/locales/en.yml | 5 + config/locales/zh_tw.yml | 5 + lib/register_modules/engine.rb | 22 ++- 9 files changed, 305 insertions(+), 2 deletions(-) create mode 100644 app/assets/images/register_module/logo-default.png create mode 100644 app/assets/stylesheets/register_module/module_store.scss create mode 100644 app/controllers/register_modules_controller.rb create mode 100644 app/views/register_modules/index.html.erb diff --git a/app/assets/images/register_module/logo-default.png b/app/assets/images/register_module/logo-default.png new file mode 100644 index 0000000000000000000000000000000000000000..173223d552571886bd16625cabeaf2cad9d730bb GIT binary patch literal 59767 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 literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/register_module/module_store.scss b/app/assets/stylesheets/register_module/module_store.scss new file mode 100644 index 0000000..239c67d --- /dev/null +++ b/app/assets/stylesheets/register_module/module_store.scss @@ -0,0 +1,145 @@ +#module-store{ + margin-top: 100px; + margin-bottom: 50px; + margin-left: 20px; + .filter{ + border: 1px solid #3e97f1; + display: inline-block; + background-color: #f0f0f0; + // box-shadow: 5px 5px #cecece; + width: 225px; + min-height: 300px; + color: #3e6fd4; + border-radius: 5px; + h3{ + background-color: #3e97f1; + color: #fff; + margin-top: 0px; + padding-top: 10px; + text-align: center; + border-bottom: 1px solid #7c7c7c; + padding-bottom: 10px; + font-size: 20px; + border-radius: 5px 5px 0 0; + // box-shadow: 5px 0 #3e97f1; + + } + .filter-checkbox{ + padding: 0; + margin: 0 5px; + padding-bottom: 5px; + height: 15px; + } + label{ + margin-bottom: 0px; + } + .module-type { + ul{ + margin-top: 20px; + list-style: none; + padding-left: 15px; + li{ + margin-bottom: 10px; + } + } + } + .tag-filter{ + h4{ + margin-left: 10px; + font-size: 17px; + margin-top: 5px; + } + ul{ + margin-top: 20px; + list-style: none; + padding-left: 15px; + li{ + margin-bottom: 10px; + } + } + } + .filter-column { + padding: 10px; + margin: 10px; + padding-bottom: 15px; + border-bottom: 1px dotted #7c7c7c; + } + } + + .app-holder{ + display: inline-block; + vertical-align: top; + margin-left: 50px; + width: calc(100% - 300px); + h3.heading{ + margin-top: 0px; + margin-bottom: 35px; + padding-bottom: 15px; + border-bottom: 1px dotted #7d7d7d; + color: #7d7d7d; + } + ul.app-list{ + list-style: none; + li.app{ + display: inline-block; + width: 200px; + height: 250px; + margin-right: 50px; + margin-bottom: 75px; + border-radius: 2px; + color: #fff; + text-align: center; + + + &.optional{ + background-color: #cfb891; + .icon { + i{ + color: #a76664; + } + } + } + &.default{ + background-color: #99b0c7; + .icon { + i{ + color: #3471af; + } + } + } + div.icon{ + // border: 1px solid #cecece; + background-color: #fff; + font-size: 6em; + width: calc(100% - 10px); + margin-top: 5px; + margin-bottom: 10px; + i.no-logo{ + font-size: 0.4em; + } + } + div.app-info{ + margin-left: 20px; + text-align: left; + .name{ + font-size: 18px; + font-weight: bold; + } + } + div.module-type{ + display: inline; + position: relative; + bottom: -20px; + padding: 0 10px; + border-radius: 10px; + // margin: 20px 5px 0 5px; + // width: calc(100% - 10px); + background-color: #fff; + color: #7c7c7c; + font-weight: bold; + font-size: 16px; + } + } + } + } +} \ No newline at end of file diff --git a/app/controllers/register_modules_controller.rb b/app/controllers/register_modules_controller.rb new file mode 100644 index 0000000..de57a68 --- /dev/null +++ b/app/controllers/register_modules_controller.rb @@ -0,0 +1,10 @@ +class RegisterModulesController < ApplicationController + def index + @data = {} + ma = ModuleApp.where(:key => "register_module").first + @data["tags"] = ma.tags + @data["categories"] = ma.categories.enabled + @data["apps"] = RegisteredModule.can_display + @data + end +end \ No newline at end of file diff --git a/app/models/registered_module.rb b/app/models/registered_module.rb index 1c48196..dbe48a2 100644 --- a/app/models/registered_module.rb +++ b/app/models/registered_module.rb @@ -7,6 +7,7 @@ class RegisteredModule field :module_key field :git_path + field :icon_class field :name, as: :slug_title, localize: true field :description, localize: true field :create_user_id, type: BSON::ObjectId @@ -15,6 +16,9 @@ class RegisteredModule field :completed, type: Boolean, :default => false field :module_type, type: BSON::ObjectId field :step_number, type: Integer + field :display_in_frontend, type: Boolean, :default => false + + scope :can_display, ->{where(:display_in_frontend => true)} mount_uploader :template, TemplateUploader @@ -27,4 +31,8 @@ class RegisteredModule self.save end + def get_colour_class + self.category.title == "Default" ? "default" : "optional" + end + end \ No newline at end of file diff --git a/app/views/admin/admin_modules/uploadfiles.html.erb b/app/views/admin/admin_modules/uploadfiles.html.erb index ce6eb31..4953836 100644 --- a/app/views/admin/admin_modules/uploadfiles.html.erb +++ b/app/views/admin/admin_modules/uploadfiles.html.erb @@ -70,12 +70,26 @@
- + <%= f.label :git_path, t("register_module.git_path"), :class => "control-label muted" %>
<%= f.text_field :git_path, :class => "input-xxlarge" %>
+ +
+ <%= f.label :icon_class, t("register_module.icon_class"), :class => "control-label muted" %> +
+ <%= f.text_field :icon_class %> +
+
+ +
+ <%= f.label :display_in_frontend, t("register_module.display_in_frontend"), :class => "control-label muted" %> +
+ <%= f.check_box :display_in_frontend %> +
+
@@ -136,6 +150,17 @@ <% @site_in_use_locales.each_with_index do |locale, i| %>
"> + +
+ +
+
+ <%= f.fields_for :name_translations do |f| %> + <%= f.text_field locale, rows: 5, class: "input-block-level", :value => (@rm.name_translations[locale] rescue nil) %> + <% end %> +
+
+
diff --git a/app/views/register_modules/index.html.erb b/app/views/register_modules/index.html.erb new file mode 100644 index 0000000..b7965c9 --- /dev/null +++ b/app/views/register_modules/index.html.erb @@ -0,0 +1,85 @@ +<% OrbitHelper.render_css_in_head(["register_module/module_store.scss"]) %> +<% + data = action_data + categories = data["categories"] + tags = data["tags"] + apps = data["apps"] +%> +
+
+

<%= t("register_module.filter") %>

+
+
    + <% categories.each do |category| %> +
  • + + +
  • + <% end %> +
+
+
+

<%= t("tags") %>

+
    + <% tags.each do |tag| %> +
  • + + +
  • + <% end %> +
+
+
+
+

<%= t("register_module.modules") %>

+
    + <% apps.each do |app| %> +
  • +
    + <% if !app.icon_class.nil? %> + + <% else %> + + <% end %> +
    +
    +
    <%= app.name %>
    +
    RulingDigital
    +
    +
    + <%= app.category.title %> +
    +
  • + <% end %> +
+
+
+ + + + diff --git a/config/locales/en.yml b/config/locales/en.yml index 3f879ba..83d5336 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -9,6 +9,11 @@ en: developed_by: Developed By actions: Actions register_module: + filter: Filter + modules: Modules + display_in_frontend: Display in frontend + default_module: Default Modules + optional_module: Optional Modules customization_log: Customization Log desktop_widgets: Desktop Widgets register_module: Registered Modules diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 2bc8eb3..d9e17fa 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -9,6 +9,11 @@ zh_tw: developed_by: Developed By actions: Actions register_module: + filter: Filter + modules: Modules + display_in_frontend: Display in frontend + default_module: Default Modules + optional_module: Optional Modules customization_log: Customization Log register_module: Registered Modules desktop_widgets: Desktop Widgets diff --git a/lib/register_modules/engine.rb b/lib/register_modules/engine.rb index 5fe8f9e..243c3c8 100644 --- a/lib/register_modules/engine.rb +++ b/lib/register_modules/engine.rb @@ -7,6 +7,10 @@ module RegisterModules authorizable categorizable taggable "RegisteredModule" + widget_methods ['widget'] + widget_settings [{"data_count"=>30}] + frontend_enabled + data_count 1..30 side_bar do head_label_i18n 'register_module.register_module', icon_class: "icons-mouse" @@ -26,12 +30,28 @@ module RegisterModules :active_for_action=>{'admin/register_desktop_widgets'=>"index"}, :available_for => 'users' - context_link 'register_module.admin_area', + context_link 'register_module.admin_area', :link_path=>"admin_admin_modules_path" , :priority=>3, :active_for_action=>{'admin/admin_modules'=>"index"}, :available_for => 'managers' + context_link 'categories', + :link_path=>"admin_module_app_categories_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'register_module').id}", + :priority=>3, + :active_for_action=>{'admin/register_modules'=>'categories'}, + :active_for_category => 'RegisterModule', + :available_for => 'managers' + + context_link 'tags', + :link_path=>"admin_module_app_tags_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'register_module').id}", + :priority=>4, + :active_for_action=>{'admin/register_modules'=>'tags'}, + :active_for_tag => 'RegisterModule', + :available_for => 'managers' + end end end