desktop patent

This commit is contained in:
JiangRu 2014-12-04 15:41:18 +08:00
parent f8f3212b7a
commit fb7371f5f8
6 changed files with 100 additions and 31 deletions

View File

@ -1,5 +1,6 @@
class Admin::PatentsController < OrbitMemberController class Admin::PatentsController < OrbitMemberController
layout "member_plugin" layout "member_plugin"
include Admin::PersonalPatentsHelper
before_action :set_patent, only: [:show, :edit , :update, :destroy] before_action :set_patent, only: [:show, :edit , :update, :destroy]
before_action :set_plugin before_action :set_plugin
@ -15,28 +16,49 @@ class Admin::PatentsController < OrbitMemberController
def new def new
@member = MemberProfile.find_by(:uid=>params['uid']) rescue nil @member = MemberProfile.find_by(:uid=>params['uid']) rescue nil
@patent = Patent.new @patent = Patent.new
if params[:desktop]
render :layout => false
end
end end
def create def create
@member = MemberProfile.find(patent_params['member_profile_id']) rescue nil @member = MemberProfile.find(patent_params['member_profile_id']) rescue nil
@patent = Patent.new(patent_params) @patent = Patent.new(patent_params)
@patent.save @patent.save
redirect_to params['referer_url'] if params[:desktop] == "true"
render json: {"data" => get_paper_list}.to_json
else
redirect_to params['referer_url']
end
end end
def edit def edit
@member = @patent.member_profile rescue nil @member = @patent.member_profile rescue nil
if params[:desktop]
render :layout => false
end
end end
def update def update
@member = @patent.member_profile rescue nil @member = @patent.member_profile rescue nil
@patent.update_attributes(patent_params) @patent.update_attributes(patent_params)
@patent.save @patent.save
redirect_to params['referer_url'] if params[:desktop] == "true"
render json: {"data" => get_paper_list}.to_json
else
redirect_to params['referer_url']
end
end end
def destroy def destroy
@patent.destroy @patent.destroy
respond_to do |format|
format.html { redirect_to(admin_writing_conferences_url) }
# format.xml { head :ok }
format.js
format.json {render json: {"success" => true}}
end
end end
def toggle_hide def toggle_hide

View File

@ -0,0 +1,23 @@
class Desktop::PersonalPatentsController < DesktopAdminController
include Admin::PersonalPatentsHelper
def menu
user = OrbitHelper.current_user
[
{
"title" => "List",
"layout" => "list"
},
{
"title" => "Add/Edit",
"layout" => "form",
"new_path" => "/admin/members/#{user.member_profile.to_param}/patents/new"
}
]
end
def list
get_paper_list
end
end

View File

@ -0,0 +1,28 @@
module Admin::PersonalPatentsHelper
def get_paper_list
user = current_user.nil? ? OrbitHelper.current_user : current_user
user_profile = user.member_profile
patents = Patent.where(:member_profile_id => user_profile.id)
patents = patents.collect do |p|
files = p.patent_files.collect do |pf|
{
"title" => pf.title,
"description" => pf.description,
"link" => pf.file.url,
"extension" => (pf.file.url.split(".").last rescue "")
}
end
{
"id" => p.id.to_s,
"edit_url" => "/#{I18n.locale.to_s}/admin/members/#{user_profile.to_param}/patents/#{p.to_param}/edit",
"delete_url" => "/#{I18n.locale.to_s}/admin/patents/#{p.id.to_s}",
"paper_title" => p.patent_title,
"keywords" => p.keywords,
"abstract" => [],
"files" => files
}
end
patents
end
end

View File

@ -7,7 +7,7 @@
<% content_for :page_specific_javascript do %> <% content_for :page_specific_javascript do %>
<%= javascript_include_tag "lib/bootstrap-datetimepicker" %> <%= javascript_include_tag "lib/bootstrap-datetimepicker" %>
<%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %>
<%= javascript_include_tag "lib/bootstrap-fileupload" %> <%= javascript_include_tag "lib/bootstrap-fileupload" %>
<%= javascript_include_tag "lib/file-type" %> <%= javascript_include_tag "lib/file-type" %>
<%= javascript_include_tag "lib/module-area" %> <%= javascript_include_tag "lib/module-area" %>
<% end %> <% end %>
@ -15,7 +15,7 @@
<!-- Input Area --> <!-- Input Area -->
<div class="input-area"> <div class="input-area">
<!-- Module Tabs --> <!-- Module Tabs -->
<div class="nav-name"><strong><%= t(:module) %></strong></div> <div class="nav-name"><strong><%= t(:module) %></strong></div>
<ul class="nav nav-pills module-nav"> <ul class="nav nav-pills module-nav">
<li></li> <li></li>
@ -32,14 +32,14 @@
<!-- Basic Module --> <!-- Basic Module -->
<div class="tab-pane fade in active" id="basic"> <div class="tab-pane fade in active" id="basic">
<div class="control-group"> <div class="control-group">
<label class="control-label muted"><%= t("personal_plugins.author") %></label> <label class="control-label muted"><%= t("personal_plugins.author") %></label>
<div class="controls"> <div class="controls">
<%= @member.name rescue ''%> <%= @member.name rescue ''%>
<%= f.hidden_field :member_profile_id, :value => @member.id if !@member.nil? %> <%= f.hidden_field :member_profile_id, :value => @member.id if !@member.nil? %>
</div> </div>
</div> </div>
<!-- year --> <!-- year -->
<div class="control-group"> <div class="control-group">
@ -47,7 +47,7 @@
<div class="controls"> <div class="controls">
<%= select_year((@patent.year ? @patent.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'patent[year]', :class => "span1"} ) %> <%= select_year((@patent.year ? @patent.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'patent[year]', :class => "span1"} ) %>
</div> </div>
</div> </div>
<!-- patent_category --> <!-- patent_category -->
<div class="control-group"> <div class="control-group">
@ -65,7 +65,7 @@
<div class="controls"> <div class="controls">
<%= f.datetime_picker :publish_date, :no_label => true, :format=>"yyyy/MM" %> <%= f.datetime_picker :publish_date, :no_label => true, :format=>"yyyy/MM" %>
</div> </div>
</div> </div>
<!-- patent_no --> <!-- patent_no -->
<div class="control-group"> <div class="control-group">
@ -73,7 +73,7 @@
<div class="controls"> <div class="controls">
<%= f.text_field :patent_no %> <%= f.text_field :patent_no %>
</div> </div>
</div> </div>
<!-- keywords --> <!-- keywords -->
<div class="control-group"> <div class="control-group">
@ -81,7 +81,7 @@
<div class="controls"> <div class="controls">
<%= f.text_field :keywords %> <%= f.text_field :keywords %>
</div> </div>
</div> </div>
<!-- language --> <!-- language -->
<div class="control-group"> <div class="control-group">
@ -89,7 +89,7 @@
<div class="controls"> <div class="controls">
<%= f.text_field :language ,class: "span5"%> <%= f.text_field :language ,class: "span5"%>
</div> </div>
</div> </div>
<!-- url --> <!-- url -->
<div class="control-group"> <div class="control-group">
@ -97,7 +97,7 @@
<div class="controls"> <div class="controls">
<%= f.text_field :url , :class => "span5" %> <%= f.text_field :url , :class => "span5" %>
</div> </div>
</div> </div>
<!-- note --> <!-- note -->
<div class="control-group"> <div class="control-group">
@ -105,7 +105,7 @@
<div class="controls"> <div class="controls">
<%= f.text_area :note, rows: 2, class: "input-block-level" %> <%= f.text_area :note, rows: 2, class: "input-block-level" %>
</div> </div>
</div> </div>
</div> </div>
@ -137,13 +137,13 @@
<div class="tab-content language-area"> <div class="tab-content language-area">
<% @site_in_use_locales.each_with_index do |locale, i| %> <% @site_in_use_locales.each_with_index do |locale, i| %>
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>"> <div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
<!-- patent_title--> <!-- patent_title-->
<div class="control-group input-title"> <div class="control-group input-title">
<label class="control-label muted"><%= t("personal_patent.patent_title") %></label> <label class="control-label muted"><%= t("personal_patent.patent_title") %></label>
<div class="controls"> <div class="controls">
<%= f.fields_for :patent_title_translations do |f| %> <%= f.fields_for :patent_title_translations do |f| %>
<%= f.text_field locale, placeholder: t("personal_patent.patent_title"), value: (@patent.patent_title_translations[locale] rescue nil) %> <%= f.text_field locale, placeholder: t("personal_patent.patent_title"), value: (@patent.patent_title_translations[locale] rescue nil) %>
<% end %> <% end %>
@ -158,12 +158,12 @@
<%= f.text_field locale, placeholder: t("personal_patent.patent_country"), value: (@patent.patent_country_translations[locale] rescue nil) %> <%= f.text_field locale, placeholder: t("personal_patent.patent_country"), value: (@patent.patent_country_translations[locale] rescue nil) %>
<% end %> <% end %>
</div> </div>
</div> </div>
<!-- authors--> <!-- authors-->
<div class="control-group input-title"> <div class="control-group input-title">
<label class="control-label muted"><%= t("personal_patent.authors") %></label> <label class="control-label muted"><%= t("personal_patent.authors") %></label>
<div class="controls"> <div class="controls">
<%= f.fields_for :authors_translations do |f| %> <%= f.fields_for :authors_translations do |f| %>
<%= f.text_field locale, placeholder: t("personal_patent.authors"), value: (@patent.authors_translations[locale] rescue nil) %> <%= f.text_field locale, placeholder: t("personal_patent.authors"), value: (@patent.authors_translations[locale] rescue nil) %>
<% end %> <% end %>
@ -186,7 +186,7 @@
<%= f.fields_for :patent_files, patent_file do |f| %> <%= f.fields_for :patent_files, patent_file do |f| %>
<%= render :partial => 'form_file', :object => patent_file, :locals => {:f => f, :i => i} %> <%= render :partial => 'form_file', :object => patent_file, :locals => {:f => f, :i => i} %>
<% end %> <% end %>
<% end %> <% end %>
<hr> <hr>
</div> </div>
<% end %> <% end %>
@ -210,14 +210,12 @@
<%= f.hidden_field :user_id, :value => params[:user_id] if !params[:user_id].blank? %> <%= f.hidden_field :user_id, :value => params[:user_id] if !params[:user_id].blank? %>
<input type="hidden" name="referer_url" value="<%= request.referer %>"> <input type="hidden" name="referer_url" value="<%= request.referer %>">
<%= f.submit t('submit'), class: 'btn btn-primary' %> <%= f.submit t('submit'), class: 'btn btn-primary' %>
<%= link_to t('cancel'), get_go_back, :class=>"btn" %> <%= link_to t('cancel'), get_go_back, :class=>"btn" %>
</div> </div>
<% content_for :page_specific_javascript do %>
<script> <script>
$(document).ready(function() { $('.main-forms').find('.add-on').tooltip().end().on('click', '.trigger, .delete_file, .remove_existing_record', function() {
$('.main-forms .add-on').tooltip(); if($(this).hasClass('trigger')) {
$(document).on('click', '#add_file', function(){
var new_id = $(this).prev().attr('value'); var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_patent_files", "g"); var old_id = new RegExp("new_patent_files", "g");
var on = $('.language-nav li.active').index(); var on = $('.language-nav li.active').index();
@ -227,17 +225,14 @@
$(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() { $(this).parent('.add-btn').prev('.add-target').children('.start-line').eq(le).children('.input-append').find('.tab-content').each(function() {
$(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active'); $(this).children('.tab-pane').eq(on).addClass('in active').siblings().removeClass('in active');
}); });
formTip(); $('.add-on').tooltip();
}); } else if($(this).hasClass('delete_file')) {
$(document).on('click', '.delete_file', function(){
$(this).parents('.input-prepend').remove(); $(this).parents('.input-prepend').remove();
}); } else if($(this).hasClass('remove_existing_record')) {
$(document).on('click', '.remove_existing_record', function(){
if(confirm("<%= I18n.t(:sure?)%>")){ if(confirm("<%= I18n.t(:sure?)%>")){
$(this).children('.should_destroy').attr('value', 1); $(this).children('.should_destroy').attr('value', 1);
$(this).parents('.start-line').hide(); $(this).parents('.start-line').hide();
} }
}); }
}); });
</script> </script>
<% end %>

View File

@ -7,6 +7,7 @@ module PersonalPatent
personal_plugin :enable => true, :sort_number => '35', :app_name=>"Patent", :intro_app_name=>"PersonalPatentIntro",:path=>"/plugin/personal_patent/profile",:front_path=>"/profile",:admin_path=>"/admin/patents",:i18n=>'module_name.personal_patent', :module_app_name=>"PersonalPatent" personal_plugin :enable => true, :sort_number => '35', :app_name=>"Patent", :intro_app_name=>"PersonalPatentIntro",:path=>"/plugin/personal_patent/profile",:front_path=>"/profile",:admin_path=>"/admin/patents",:i18n=>'module_name.personal_patent', :module_app_name=>"PersonalPatent"
version "0.1" version "0.1"
desktop_enabled true
organization "Rulingcom" organization "Rulingcom"
author "RD dep" author "RD dep"
intro "I am intro" intro "I am intro"