From 01c63950b2660d25ed084d63b88c22c7cdaaf5b2 Mon Sep 17 00:00:00 2001 From: manson Date: Thu, 3 Jul 2014 19:25:50 +0800 Subject: [PATCH] Finished --- .../.keep | 0 .../.keep | 0 .../.keep | 0 app/controllers/admin/labs_controller.rb | 88 +++++++ app/controllers/personal_labs_controller.rb | 69 +++++ app/models/.keep | 0 app/models/lab.rb | 40 +++ app/models/lab_file.rb | 14 + app/models/lab_intro.rb | 2 + app/views/admin/labs/_form.html.erb | 239 ++++++++++++++++++ app/views/admin/labs/_form_file.html.erb | 55 ++++ app/views/admin/labs/_lab.html.erb | 15 ++ app/views/admin/labs/destroy.js.erb | 1 + app/views/admin/labs/edit.html.erb | 5 + .../admin/labs/frontend_setting.html.erb | 93 +++++++ app/views/admin/labs/index.html.erb | 17 ++ app/views/admin/labs/new.html.erb | 5 + app/views/admin/labs/setting.html.erb | 116 +++++++++ app/views/personal_labs/index.html.erb | 1 + app/views/personal_labs/show.html.erb | 1 + .../plugin/personal_lab/_profile.html.erb | 84 ++++++ config/routes.rb | 21 ++ lib/personal_lab/engine.rb | 4 +- 23 files changed, 869 insertions(+), 1 deletion(-) rename app/assets/images/{personal_lab => personal_conference}/.keep (100%) rename app/assets/javascripts/{personal_lab => personal_conference}/.keep (100%) rename app/assets/stylesheets/{personal_lab => personal_conference}/.keep (100%) create mode 100644 app/controllers/admin/labs_controller.rb create mode 100644 app/controllers/personal_labs_controller.rb delete mode 100644 app/models/.keep create mode 100644 app/models/lab.rb create mode 100644 app/models/lab_file.rb create mode 100644 app/models/lab_intro.rb create mode 100644 app/views/admin/labs/_form.html.erb create mode 100644 app/views/admin/labs/_form_file.html.erb create mode 100644 app/views/admin/labs/_lab.html.erb create mode 100644 app/views/admin/labs/destroy.js.erb create mode 100644 app/views/admin/labs/edit.html.erb create mode 100644 app/views/admin/labs/frontend_setting.html.erb create mode 100644 app/views/admin/labs/index.html.erb create mode 100644 app/views/admin/labs/new.html.erb create mode 100644 app/views/admin/labs/setting.html.erb create mode 100644 app/views/personal_labs/index.html.erb create mode 100644 app/views/personal_labs/show.html.erb create mode 100644 app/views/plugin/personal_lab/_profile.html.erb diff --git a/app/assets/images/personal_lab/.keep b/app/assets/images/personal_conference/.keep similarity index 100% rename from app/assets/images/personal_lab/.keep rename to app/assets/images/personal_conference/.keep diff --git a/app/assets/javascripts/personal_lab/.keep b/app/assets/javascripts/personal_conference/.keep similarity index 100% rename from app/assets/javascripts/personal_lab/.keep rename to app/assets/javascripts/personal_conference/.keep diff --git a/app/assets/stylesheets/personal_lab/.keep b/app/assets/stylesheets/personal_conference/.keep similarity index 100% rename from app/assets/stylesheets/personal_lab/.keep rename to app/assets/stylesheets/personal_conference/.keep diff --git a/app/controllers/admin/labs_controller.rb b/app/controllers/admin/labs_controller.rb new file mode 100644 index 0000000..8842dda --- /dev/null +++ b/app/controllers/admin/labs_controller.rb @@ -0,0 +1,88 @@ +class Admin::LabsController < OrbitMemberController + layout "member_plugin" + + before_action :set_plugin + before_action :get_settings,:only => [:new, :edit, :setting] + + def index + @labs = Lab.all + end + + def new + @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil + @lab = Lab.new + end + + def create + @member = MemberProfile.find(lab_params['member_profile_id']) rescue nil + @lab = Lab.new(lab_params) + @lab.save + redirect_to '/admin/members/'+@member.to_param+'/Lab' + end + + def edit + @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil + @lab = Lab.find(params[:id]) + end + + def update + @member = MemberProfile.find(lab_params['member_profile_id']) rescue nil + @lab = Lab.find(params[:id]) + @lab.update_attributes(lab_params) + @lab.save + redirect_to '/admin/members/'+@member.to_param+'/Lab' + end + + def destroy + @lab = Lab.find(params[:id]) + @lab.destroy + end + + def toggle_hide + if params[:ids] + @labs = Lab.any_in(_id: params[:ids]) + + @labs.each do |lab| + lab.is_hidden = params[:disable] + lab.save + end + end + + render json: {"success"=>true} + end + + def setting + end + + def frontend_setting + @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil + @intro = LabIntro.find_by(:member_profile_id=>@member.id) rescue nil + @intro = @intro.nil? ? LabIntro.new({:member_profile_id=>@member.id}) : @intro + end + + def update_frontend_setting + @member = MemberProfile.find(intro_params['member_profile_id']) rescue nil + @intro = LabIntro.find_by(:member_profile_id=>@member.id) rescue nil + @intro = @intro.nil? ? LabIntro.new({:member_profile_id=>@member.id}) : @intro + @intro.update_attributes(intro_params) + @intro.save + redirect_to '/admin/members/'+@member.to_param+'/Lab' + end + + def get_settings + end + + def set_plugin + @plugin = OrbitApp::Plugin::Registration.all.select{|plugin| plugin.app_name.eql? 'Lab'}.first + end + + private + + def lab_params + params.require(:lab).permit! rescue nil + end + + def intro_params + params.require(:lab_intro).permit! rescue nil + end +end \ No newline at end of file diff --git a/app/controllers/personal_labs_controller.rb b/app/controllers/personal_labs_controller.rb new file mode 100644 index 0000000..be3597e --- /dev/null +++ b/app/controllers/personal_labs_controller.rb @@ -0,0 +1,69 @@ +class PersonalLabsController < ApplicationController + def index + labs = Lab.where(:is_hidden=>false).all + lab_list = labs.collect do |lab| + { + "year" => lab.year, + "lab_title" => lab.lab_title, + "location" => lab.location, + "member" => lab.member_profile.name, + "link_to_show" => OrbitHelper.url_to_show(lab.to_param) + } + end + { + "labs" => lab_list, + "extras" => { + "widget-title" => t("module_name.personal_lab"), + "th_year" => t('personal_lab.year'), + "th_lab_title" => t('module_name.personal_lab'), + "th_location" => t('personal_lab.location'), + "th_member" => t('users.name'), + "th_detail" => t('detail') + } + } + end + + def show + params = OrbitHelper.params + lab = Lab.where(:is_hidden=>false).find_by(uid: params[:uid]) + + files = lab.lab_files.map do |file| + { + "file_url" => file.file.url, + "file_title" => (file.title.blank? ? File.basename(file.file.path) : file.title), + "file_ext" => File.extname(file.file.path).sub('.',''), + "file_description" => file.description + } + end + + { + "files"=>files, + "data"=>{ + "lab_title" => lab.lab_title, + "location" => lab.location, + "participating_professor" => lab.participating_professor, + "participating_student" => lab.participating_student, + "year" => lab.year, + "keywords" => lab.keywords, + "extension_no" => lab.extension_no, + "research_direction" => lab.research_direction, + "facility" => lab.facility, + "url" => lab.url, + "note" => lab.note, + + "th_lab_title" => t('personal_lab.lab_title'), + "th_location" => t('personal_lab.location'), + "th_participating_professor" => t('personal_lab.participating_professor'), + "th_participating_student" => t('personal_lab.participating_student'), + "th_year" => t('personal_lab.year'), + "th_keywords" => t('personal_lab.keywords'), + "th_extension_no" => t('personal_lab.extension_no'), + "th_research_direction" => t('personal_lab.research_direction'), + "th_facility" => t('personal_lab.facility'), + "th_url" => t('personal_lab.url'), + "th_note" => t('personal_lab.note'), + "td_files" => t(:file_) + } + } + end +end \ No newline at end of file diff --git a/app/models/.keep b/app/models/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/app/models/lab.rb b/app/models/lab.rb new file mode 100644 index 0000000..613e953 --- /dev/null +++ b/app/models/lab.rb @@ -0,0 +1,40 @@ +class Lab + include Mongoid::Document + include Mongoid::Timestamps + include OrbitModel::Status + include Slug + + belongs_to :member_profile + + field :lab_title, :as=>:slug_title, localize: true + field :location, localize: true + field :participating_professor, localize: true + field :participating_student, localize: true + + field :year + field :language + field :keywords + field :extension_no + field :research_direction + field :facility + field :url + field :note + field :create_user_id, :type => BSON::ObjectId + field :update_user_id, :type => BSON::ObjectId + + paginates_per 10 + + has_many :lab_files, :autosave => true, :dependent => :destroy + accepts_nested_attributes_for :lab_files, :allow_destroy => true + + before_validation :add_http + + protected + + def add_http + unless self.url.blank? || self.url[/^http:\/\//] || self.url[/^https:\/\//] + self.url = 'http://' + self.url + end + end + +end \ No newline at end of file diff --git a/app/models/lab_file.rb b/app/models/lab_file.rb new file mode 100644 index 0000000..5f22855 --- /dev/null +++ b/app/models/lab_file.rb @@ -0,0 +1,14 @@ +class LabFile + + include Mongoid::Document + include Mongoid::Timestamps + + mount_uploader :file, AssetUploader + + field :description, localize: true + field :should_destroy, :type => Boolean + field :title, localize: true + + belongs_to :lab + +end diff --git a/app/models/lab_intro.rb b/app/models/lab_intro.rb new file mode 100644 index 0000000..3b1171a --- /dev/null +++ b/app/models/lab_intro.rb @@ -0,0 +1,2 @@ +class LabIntro < PersonalPluginIntro +end diff --git a/app/views/admin/labs/_form.html.erb b/app/views/admin/labs/_form.html.erb new file mode 100644 index 0000000..de9fcbe --- /dev/null +++ b/app/views/admin/labs/_form.html.erb @@ -0,0 +1,239 @@ +<% # encoding: utf-8 %> +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/main-forms" %> + <%= stylesheet_link_tag "lib/fileupload" %> + <%= stylesheet_link_tag "lib/main-list" %> +<% end %> +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/bootstrap-fileupload" %> + <%= javascript_include_tag "lib/file-type" %> + <%= javascript_include_tag "lib/module-area" %> +<% end %> + + +
+ + + + + + +
+ + +
+ +
+ +
+ <%= @member.name rescue ''%> + <%= f.hidden_field :member_profile_id, :value => @member.id %> +
+
+ + +
+ +
+ <%= select_year((@lab.year ? @lab.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'lab[year]', :class => 'span1'} ) %> +
+
+ + +
+ +
+ <%= f.text_field :extension_no %> +
+
+ + +
+ +
+ <%= f.text_field :research_direction %> +
+
+ + +
+ +
+ <%= f.text_field :facility %> +
+
+ + +
+ +
+ <%= f.text_field :url , :class => "span6" %> +
+
+ + +
+ +
+ <%= f.text_field :keywords %> +
+
+ + +
+ +
+ <%= f.text_area :note, rows: 2, class: "input-block-level" %> +
+
+ +
+ + +
+
+ +
+ +
+
+
+ +
+ + + + + + +
+ + <% @site_in_use_locales.each_with_index do |locale, i| %> + +
"> + + +
+ +
+ <%= f.fields_for :lab_title_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t("personal_lab.lab_title"), value: (@lab.lab_title_translations[locale] rescue nil) %> + <% end %> +
+
+ + +
+ +
+ <%= f.fields_for :location_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t("personal_lab.location"), value: (@lab.location_translations[locale] rescue nil) %> + <% end %> +
+
+ + +
+ +
+ <%= f.fields_for :participating_professor_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t("personal_lab.participating_professor"), value: (@lab.participating_professor_translations[locale] rescue nil) %> + <% end %> +
+
+ + +
+ +
+ <%= f.fields_for :participating_student_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t("personal_lab.participating_student"), value: (@lab.participating_student_translations[locale] rescue nil) %> + <% end %> +
+
+ +
+ + <% end %> + + +
+ +
+ + + <% if @lab && !@lab.lab_files.blank? %> +
+ <% @lab.lab_files.each_with_index do |lab_file, i| %> + <%= f.fields_for :lab_files, lab_file do |f| %> + <%= render :partial => 'form_file', :object => lab_file, :locals => {:f => f, :i => i} %> + <% end %> + <% end %> +
+
+ <% end %> + + +
+
+

+ <%= hidden_field_tag 'plugin_file_field_count', @lab.lab_files.count %> + <%= t(:add) %> +

+
+
+ +
+
+ + +
+ <%= f.hidden_field :user_id, :value => params[:user_id] if !params[:user_id].blank? %> + <%= f.submit t('submit'), class: 'btn btn-primary' %> + <%= link_to t('cancel'), get_go_back, :class=>"btn" %> +
+ +<% content_for :page_specific_javascript do %> + +<% end %> \ No newline at end of file diff --git a/app/views/admin/labs/_form_file.html.erb b/app/views/admin/labs/_form_file.html.erb new file mode 100644 index 0000000..8628623 --- /dev/null +++ b/app/views/admin/labs/_form_file.html.erb @@ -0,0 +1,55 @@ +<% if form_file.new_record? %> +
+<% else %> +
+ <% if form_file.file.blank? %> + <%= t(:no_file) %> + <% else %> + <%= link_to content_tag(:i) + form_file.file_identifier, form_file.file.url, {:class => 'file-link file-type', :target => '_blank', :title => form_file.file_identifier} %> + <% end %> +<% end %> +
+ + + + <% @site_in_use_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :title_translations do |f| %> + <%= f.text_field locale, :class => "input-medium", placeholder: t(:alternative), :value => (form_file.title_translations[locale] rescue nil) %> + <% end %> + + <% end %> + + + + <% @site_in_use_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :description_translations do |f| %> + <%= f.text_field locale, :class => "input-medium", placeholder: t(:description), :value => (form_file.description_translations[locale] rescue nil) %> + <% end %> + + <% end %> + + + <% if form_file.new_record? %> + + + + <% else %> + + <%= f.hidden_field :id %> + + <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> + + <% end %> +
+
\ No newline at end of file diff --git a/app/views/admin/labs/_lab.html.erb b/app/views/admin/labs/_lab.html.erb new file mode 100644 index 0000000..203ac59 --- /dev/null +++ b/app/views/admin/labs/_lab.html.erb @@ -0,0 +1,15 @@ +<% @labs.each do |lab| %> + "> + <%= lab.year %> + + <%= link_to lab.lab_title, '', target: "blank"%> +
+ +
+ + <%= lab.location %> + +<% end %> \ No newline at end of file diff --git a/app/views/admin/labs/destroy.js.erb b/app/views/admin/labs/destroy.js.erb new file mode 100644 index 0000000..0ba4187 --- /dev/null +++ b/app/views/admin/labs/destroy.js.erb @@ -0,0 +1 @@ +$('#lab_<%= @lab.id.to_s%>').remove(); \ No newline at end of file diff --git a/app/views/admin/labs/edit.html.erb b/app/views/admin/labs/edit.html.erb new file mode 100644 index 0000000..485577f --- /dev/null +++ b/app/views/admin/labs/edit.html.erb @@ -0,0 +1,5 @@ +<%= form_for @lab, url:'/admin/labs/'+@lab.id.to_s, html: {class: "form-horizontal main-forms previewable"} do |f| %> +
+ <%= render partial: 'form', locals: {f: f} %> +
+<% end %> \ No newline at end of file diff --git a/app/views/admin/labs/frontend_setting.html.erb b/app/views/admin/labs/frontend_setting.html.erb new file mode 100644 index 0000000..de2fd5a --- /dev/null +++ b/app/views/admin/labs/frontend_setting.html.erb @@ -0,0 +1,93 @@ +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/main-forms" %> + <%= stylesheet_link_tag "lib/main-list" %> +<% end %> + +<%= form_for(:writing_conference_intro, :url => update_frontend_setting_admin_writing_conferences_path, :method => "post", html: {class: "form-horizontal main-forms previewable"} ) do |f| %> +
+ +
+ + + + + + +
+ +
+ <% if !@member.blank? %> +
+ +
+ <%= @member.name rescue ''%> + <%= f.hidden_field :member_profile_id, :value => @member.id %> +
+
+ <% end %> + +
+ +
+ <%= f.check_box :brief_intro, :checked => @intro.brief_intro %> <%= t("personal_plugins.brief_intro") %> + <%= f.check_box :complete_list, :checked => @intro.complete_list %> <%= t("personal_plugins.complete_list") %> +
+
+
+
+ + + + + + +
+ + <% @site_in_use_locales.each_with_index do |locale, i| %> + +
"> + + +
+ +
+
+ <%= f.fields_for :text_translations do |f| %> + <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@intro.text_translations[locale] rescue nil) %> + <% end %> +
+
+
+ + +
+ + <% end %> + + + +
+ + + +
+ + +
+ <%= f.hidden_field :user_id, :value => params[:user_id] if !params[:user_id].blank? %> + <%= f.submit t('submit'), class: 'btn btn-primary' %> + <%= link_to t('cancel'), get_go_back, :class=>"btn" %> +
+
+<% end %> \ No newline at end of file diff --git a/app/views/admin/labs/index.html.erb b/app/views/admin/labs/index.html.erb new file mode 100644 index 0000000..95227ec --- /dev/null +++ b/app/views/admin/labs/index.html.erb @@ -0,0 +1,17 @@ + + + + + + + + + + <%= render :partial => 'lab', :collection => @labs %> + +
<%= t('personal_lab.year') %><%= t('module_name.personal_lab') %><%= t('personal_lab.location') %>
+ +
+ +
\ No newline at end of file diff --git a/app/views/admin/labs/new.html.erb b/app/views/admin/labs/new.html.erb new file mode 100644 index 0000000..4fb0f05 --- /dev/null +++ b/app/views/admin/labs/new.html.erb @@ -0,0 +1,5 @@ +<%= form_for @lab, url: admin_labs_path, html: {class: "form-horizontal main-forms previewable"} do |f| %> +
+ <%= render partial: 'form', locals: {f: f} %> +
+<% end %> \ No newline at end of file diff --git a/app/views/admin/labs/setting.html.erb b/app/views/admin/labs/setting.html.erb new file mode 100644 index 0000000..b82115a --- /dev/null +++ b/app/views/admin/labs/setting.html.erb @@ -0,0 +1,116 @@ + + +
+
+
+

+ <%= t('add')%> + <%= t("personal_conference.paper_type") %> +

+
+
+
+
+
+
+
+
+
+
+ + + <%= render :partial => 'list_paper_type', :collection => @paper_types %> + +
+
+
+
+
+
+ +
+
+

+ <%= t('add')%> + <%= t("personal_conference.paper_level") %> +

+
+
+
+
+
+
+
+
+
+
+ + + <%= render :partial => 'list_paper_level', :collection => @paper_levels %> + +
+
+
+
+
+
+ +
+
+

+ <%= t('add')%> + <%= t("personal_conference.author_type") %> +

+
+
+
+
+
+
+
+
+
+
+ + + <%= render :partial => 'list_author_type', :collection => @author_types %> + +
+
+
+
+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
\ No newline at end of file diff --git a/app/views/personal_labs/index.html.erb b/app/views/personal_labs/index.html.erb new file mode 100644 index 0000000..648b75c --- /dev/null +++ b/app/views/personal_labs/index.html.erb @@ -0,0 +1 @@ +<%= render_view %> \ No newline at end of file diff --git a/app/views/personal_labs/show.html.erb b/app/views/personal_labs/show.html.erb new file mode 100644 index 0000000..648b75c --- /dev/null +++ b/app/views/personal_labs/show.html.erb @@ -0,0 +1 @@ +<%= render_view %> \ No newline at end of file diff --git a/app/views/plugin/personal_lab/_profile.html.erb b/app/views/plugin/personal_lab/_profile.html.erb new file mode 100644 index 0000000..0a4c01c --- /dev/null +++ b/app/views/plugin/personal_lab/_profile.html.erb @@ -0,0 +1,84 @@ +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/list-check" %> +<% end %> +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/list-check" %> +<% end %> + +<% + is_autorized_user = (current_user==@member.user || current_user.is_admin?) + if is_autorized_user + @labs = Lab.where(member_profile_id: @member.id).desc(:year).page(params[:page]).per(10) + else + @labs = Lab.where(is_hidden: false, member_profile_id: @member.id).desc(:year).page(params[:page]).per(10) + end +%> + +<% if is_autorized_user %> +
+
+ <%= link_to('Hide', '#', :class => "btn btn-mini list-active-btn disabled", "data-check-action" => "list-be-hide", :rel => toggle_hide_admin_labs_path(member_profile_id: params[:id], disable: 'true') ) %> + <%= link_to('Show', '#', :class => "btn btn-mini list-active-btn disabled", "data-check-action" => "list-be-show", :rel => toggle_hide_admin_labs_path(member_profile_id: params[:id], disable: 'false') ) %> +
+
+<% end -%> + + + + + <% if is_autorized_user %> + + <% end -%> + + + + + + + <% @labs.each do |lab| %> + "> + <% if is_autorized_user %> + + <% end %> + + + + + <% end %> + +
<%= t('personal_lab.year') %><%= t('module_name.personal_lab') %><%= t('personal_lab.location') %>
+ <%= check_box_tag 'to_change[]', lab.id.to_s, false, :class => "list-check" %> + <%= lab.year %> + <%= link_to lab.lab_title, '', target: "blank"%> +
+ +
+
<%= lab.location %>
+ + +
+ <% if is_autorized_user %> +
+ <%= link_to content_tag(:i, nil, :class => 'icon-edit') +' '+ t('setting'),'/admin/members/'+@member.to_param+'/labs/frontend_setting', :class => 'btn btn-primary' %> + <%= link_to content_tag(:i, nil, :class => 'icon-plus') +' '+ t('new_'), + '/admin/members/'+@member.to_param+'/labs/new', :class => 'btn btn-primary' %> +
+ <% end %> + +
+ + \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index d96d9d4..2810046 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,6 +2,27 @@ Rails.application.routes.draw do locales = Site.find_by(site_active: true).in_use_locales rescue I18n.available_locales scope "(:locale)", locale: Regexp.new(locales.join("|")) do namespace :admin do + get 'lab_setting' => "labs#setting" + + resources :labs do + collection do + get 'toggle_hide' => 'labs#toggle_hide' + end + end + + resources :members do + collection do + scope '(:name-:uid)' do + resources :labs do + collection do + get 'frontend_setting' => 'labs#frontend_setting' + post 'update_frontend_setting' => 'labs#update_frontend_setting' + end + end + end + end + end + end end end diff --git a/lib/personal_lab/engine.rb b/lib/personal_lab/engine.rb index 4a2585f..d6460b6 100644 --- a/lib/personal_lab/engine.rb +++ b/lib/personal_lab/engine.rb @@ -4,7 +4,7 @@ module PersonalLab OrbitApp.registration "PersonalLab",:type=> 'ModuleApp' do module_label 'module_name.personal_lab' base_url File.expand_path File.dirname(__FILE__) - personal_plugin :enable => true, :sort_number => '30', :app_name=>"Lab", :intro_app_name=>"PersonalLabIntro",:path=>"/plugin/profile",:front_path=>"/profile",:admin_path=>"/admin/labs",:i18n=>'module_name.personal_lab' + personal_plugin :enable => true, :sort_number => '30', :app_name=>"Lab", :intro_app_name=>"PersonalLabIntro",:path=>"/plugin/personal_lab/profile",:front_path=>"/profile",:admin_path=>"/admin/labs",:i18n=>'module_name.personal_lab', :module_app_name=>'PersonalLab' version "0.1" organization "Rulingcom" @@ -12,6 +12,8 @@ module PersonalLab intro "I am intro" update_info 'some update_info' + frontend_enabled + icon_class_no_sidebar "icons-user" end end end