new plugins added for desktop

This commit is contained in:
Harry Bomrah 2013-08-05 18:35:04 +08:00 committed by saurabhbhatia
parent 42615f02ea
commit c2f223b82c
121 changed files with 7213 additions and 708 deletions

1
.gitignore vendored
View File

@ -22,3 +22,4 @@ uploads/**/*
.sass-cache/*
*.supported
mongoid.yml
*.

View File

@ -1,15 +0,0 @@
require 'mime/types'
class DesktopPublicationsController< ApplicationController
def books
render "desktop/books", :layout => false
end
def books_list
render "desktop/books/list", :layout => false
end
def books_add
render "desktop/books/add", :layout => false
end
end

View File

@ -1,26 +0,0 @@
class DesktopResearchController< ApplicationController
def research_d
render "desktop/research_d", :layout=>false
end
def research_d_list
render "desktop/research_domain/list", :layout=>false
end
def research_d_add
render "desktop/research_domain/add", :layout=>false
end
def research_p
render "desktop/research_p", :layout=>false
end
def research_p_list
render "desktop/research_project/list", :layout=>false
end
def research_p_add
render "desktop/research_project/add", :layout=>false
end
end

View File

@ -1,87 +0,0 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<button class="fn_btn hh1 thmc2 thmtxt">Save</button>
<button class="fn_btn hh1 admbg2">Cancel</button>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Year</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">2012</a></li>
<li><a class="hp hh1 admtxt" href="">2011</a></li>
<li><a class="hp hh1 admtxt" href="">2010</a></li>
<li><a class="hp hh1 admtxt" href="">2009</a></li>
<li><a class="hp hh1 admtxt" href="">2008</a></li>
<li><a class="hp hh1 admtxt" href="">2007</a></li>
<li><a class="hp hh1 admtxt" href="">2006</a></li>
<li><a class="hp hh1 admtxt" href="">2005</a></li>
<li><a class="hp hh1 admtxt" href="">2004</a></li>
<li><a class="hp hh1 admtxt" href="">2003</a></li>
<li><a class="hp hh1 admtxt" href="">2002</a></li>
<li><a class="hp hh1 admtxt" href="">2001</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Language</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">English</a></li>
<li><a class="hp hh1 admtxt" href="">Chinese</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div id="paper_add" class="tinycanvas vp">
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
<div class="viewport">
<div class="overview">
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><input type="radio" name="" value="Books" />Books
<input type="radio" name="" value="Chapter" /> Chapter</li>
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Book Title</textarea></li>
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="" rows="10">Chapters and sections</textarea></li>
<li class="s_grid_row"><input class="s_grid s_grid_1" type="text" value="page"> ~ <input class="s_grid s_grid_1" type="text" value="page"><input class="s_grid s_grid_2" type="text" value="Publisher"></li>
<li class="s_grid_row"><input class="s_grid s_grid_2" type="text" value="Location"><input class="s_grid s_grid_2" type="text" value="Chief editor"></li>
<li class="s_grid_row"><input class="s_grid s_grid_3" type="text" value="ISSN"></li> <li class="s_grid_row"><label class="s_grid_2 s_grid" for="">Reference URL</label><input class="s_grid_4 s_grid" type="text" value="www.sample.com"></li>
</ul>
</div>
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea class="s_grid s_grid_6" name="" id="">Author</textarea><span class="icon-plus input_append"></span></li>
<li class="s_grid_row">
<select name="" id="" class="s_grid s_grid_4">
<option value="">Author Type</option>
<option value="">First Author</option>
<option value="">Corresponding Author</option>
<option value="">Second Author</option>
<option value="">Third Author</option>
<option value="">Fourth Author</option>
</select>
<select name="" id="" class="s_grid s_grid_2">
<option value="">Status</option>
<option value="">Published</option>
<option value="">Pending</option>
<option value="">Writing</option>
</select>
</li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Date of Publication</label><input class="s_grid s_grid_4" type="text" value="2012 / 05 / 01"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Tags"><span class="icon-plus input_append"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Associated Project"><span class="icon-plus input_append"></span></li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Abstract</label><input type="file"></li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Full Text</label><input type="file"></li>
</ul>
</div>
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea name="" id="" rows="26" class="s_grid s_grid_6">Abstract</textarea></li>
</ul>
</div>
</div>
</div>
</div>

View File

@ -1,72 +0,0 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all">All</a></li>
<li><a class="hp hh1 admtxt" href="none">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><a class="hp hh1 admtxt" href="journal">Journal</a></li>
<li><a class="hp hh1 admtxt" href="title">Title</a></li>
<li><a class="hp hh1 admtxt" href="file">File</a></li>
<li><a class="hp hh1 admtxt" href="keywords">Keywords</a></li>
<li><a class="hp hh1 admtxt" href="abstract">Abstract</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="datalist" base-width="300">
</div>

View File

@ -1,75 +0,0 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all">All</a></li>
<li><a class="hp hh1 admtxt" href="none">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><a class="hp hh1 admtxt" href="journal">Journal</a></li>
<li><a class="hp hh1 admtxt" href="title">Title</a></li>
<li><a class="hp hh1 admtxt" href="file">File</a></li>
<li><a class="hp hh1 admtxt" href="keywords">Keywords</a></li>
<li><a class="hp hh1 admtxt" href="abstract">Abstract</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div id="paper_list" class="tinycanvas vp">
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
<div class="viewport">
<div class="overview">
</div>
</div>
</div>

View File

@ -15,23 +15,23 @@
<li class="dock_item"><a callback-method='initializeConferencePapers' href="<%= panel_personal_conference_desktop_conference_window_path %>" class="widget_fn wh2 hh2" id='d_conference_p' custom-load="conference" onclick="return false;"><span class="widget_icon"><img src="" alt="Conference Papers" id="conference_p_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializeBooks' href="<%= desktop_publications_books_path %>" class="widget_fn wh2 hh2" id='d_books' onclick="return false;"><span class="widget_icon"><img src="" alt="Books" id="books_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalBook' href="<%= panel_personal_book_desktop_books_window_path %>" class="widget_fn wh2 hh2" id='d_books' onclick="return false;"><span class="widget_icon"><img src="" alt="Books" id="books_icon" width="30" height="30"/></span></a></li>
</ul>
</li>
<li class="d_cate"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_research' onclick="return false;"><span class="widget_icon"><img src="" alt="Research" id="research_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 240px;">
<li class="dock_item"><a callback-method='initializeResearchDomain' href="<%= desktop_research_research_d_path %>" class="widget_fn wh2 hh2" id='d_research_d' onclick="return false;"><span class="widget_icon"><img src="" alt="Research Domain" id="research_d_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializeResearchProject' href="<%= desktop_research_research_p_path %>" class="widget_fn wh2 hh2" id='d_research_p' onclick="return false;"><span class="widget_icon"><img src="" alt="Research Project" id="research_p_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_patents' onclick="return false;"><span class="widget_icon"><img src="" alt="Patents" id="patents_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='' href="labs" class="widget_fn wh2 hh2" id='d_labs' onclick="return false;"><span class="widget_icon"><img src="" alt="Labs" id="labs_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalResearch' href="<%= panel_personal_research_desktop_research_window_path %>" class="widget_fn wh2 hh2" id='d_research_d' onclick="return false;"><span class="widget_icon"><img src="" alt="Research Domain" id="research_d_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalProject' href="<%= panel_personal_project_desktop_project_window_path %>" class="widget_fn wh2 hh2" id='d_research_p' onclick="return false;"><span class="widget_icon"><img src="" alt="Research Project" id="research_p_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalPatent' href="<%= panel_personal_patent_desktop_patent_window_path %>" class="widget_fn wh2 hh2" id='d_patents' onclick="return false;"><span class="widget_icon"><img src="" alt="Patents" id="patents_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalLab' href="<%= panel_personal_lab_desktop_lab_window_path %>" class="widget_fn wh2 hh2" id='d_labs' onclick="return false;"><span class="widget_icon"><img src="" alt="Labs" id="labs_icon" width="30" height="30"/></span></a></li>
</ul>
</li>
<li class="d_cate"><a callback-method='' href="" class="widget_fn wh2 hh2" id='d_experience' onclick="return false;"><span class="widget_icon"><img src="" alt="Experience" id="experience_icon" width="30" height="30"/></span></a>
<ul class="dock_child hh2 thmc4" style="width: 300px;">
<li class="dock_item"><a callback-method='' href="working" class="widget_fn wh2 hh2" id='d_working' onclick="return false;"><span class="widget_icon"><img src="" alt="Working" id="working_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='' href="education" class="widget_fn wh2 hh2" id='d_education' onclick="return false;"><span class="widget_icon"><img src="" alt="Education" id="education_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='' href="honors" class="widget_fn wh2 hh2" id='d_honors' onclick="return false;"><span class="widget_icon"><img src="" alt="Honors" id="honors_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalExperience' href="<%= panel_personal_experience_desktop_experience_window_path %>" class="widget_fn wh2 hh2" id='d_working' onclick="return false;"><span class="widget_icon"><img src="" alt="Working" id="working_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalDiploma' href="<%= panel_personal_diploma_desktop_diploma_window_path %>" class="widget_fn wh2 hh2" id='d_education' onclick="return false;"><span class="widget_icon"><img src="" alt="Education" id="education_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='initializePersonalHonor' href="<%= panel_personal_honor_desktop_honor_window_path %>" class="widget_fn wh2 hh2" id='d_honors' onclick="return false;"><span class="widget_icon"><img src="" alt="Honors" id="honors_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='' href="activities" class="widget_fn wh2 hh2" id='d_activities' onclick="return false;"><span class="widget_icon"><img src="" alt="Activities" id="activities_icon" width="30" height="30"/></span></a></li>
<li class="dock_item"><a callback-method='' href="clubs" class="widget_fn wh2 hh2" id='d_clubs' onclick="return false;"><span class="widget_icon"><img src="" alt="Clubs" id="clubs_icon" width="30" height="30"/></span></a></li>
</ul>

View File

@ -1,107 +0,0 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<button class="fn_btn hh1 thmc2 thmtxt">Save</button>
<button class="fn_btn hh1 admbg2">Cancel</button>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Year</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">2012</a></li>
<li><a class="hp hh1 admtxt" href="">2011</a></li>
<li><a class="hp hh1 admtxt" href="">2010</a></li>
<li><a class="hp hh1 admtxt" href="">2009</a></li>
<li><a class="hp hh1 admtxt" href="">2008</a></li>
<li><a class="hp hh1 admtxt" href="">2007</a></li>
<li><a class="hp hh1 admtxt" href="">2006</a></li>
<li><a class="hp hh1 admtxt" href="">2005</a></li>
<li><a class="hp hh1 admtxt" href="">2004</a></li>
<li><a class="hp hh1 admtxt" href="">2003</a></li>
<li><a class="hp hh1 admtxt" href="">2002</a></li>
<li><a class="hp hh1 admtxt" href="">2001</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Language</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">English</a></li>
<li><a class="hp hh1 admtxt" href="">Chinese</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div id="paper_add" class="tinycanvas vp">
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
<div class="viewport">
<div class="overview">
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Conference Title</textarea></li>
<li class="s_grid_row">
<label>Paper type</label><input type="radio" name="" value="Books" />Oral<input type="radio" name="" value="Chapter" />Poster</li>
<li class="s_grid_row"><label>Conference time</label></li>
<li class="s_grid_row"><select name="" id="" class="s_grid s_grid_1">
<option value=""></option>
</select>
<label class="s_grid s_grid_1">Year</label>
<select name="" id="" class="s_grid s_grid_1">
<option value=""></option>
</select>
<label class="s_grid s_grid_1">Month</label>
<select name="" id="" class="s_grid s_grid_1">
<option value=""></option>
</select>
<label class="s_grid s_grid_1">Day</label>
</li>
<li class="s_grid_row"><input class="s_grid s_grid_2" type="text" value="Location"><input class="s_grid s_grid_2" type="text" value="Sponsor"></li>
<li class="s_grid_row"><label class="s_grid_2 s_grid" for="">Reference URL</label><input class="s_grid_4 s_grid" type="text" value="www.sample.com"></li>
</ul>
</div>
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea class="s_grid s_grid_6" name="" id="">Author</textarea><span class="icon-plus input_append"></span></li>
<li class="s_grid_row">
<select name="" id="" class="s_grid s_grid_4">
<option value="">Author Type</option>
<option value="">First Author</option>
<option value="">Corresponding Author</option>
<option value="">Second Author</option>
<option value="">Third Author</option>
<option value="">Fourth Author</option>
</select>
<select name="" id="" class="s_grid s_grid_2">
<option value="">Status</option>
<option value="">Published</option>
<option value="">Pending</option>
<option value="">Writing</option>
</select>
</li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Date of Publication</label><input class="s_grid s_grid_4" type="text" value="2012 / 05 / 01"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Tags"><span class="icon-plus input_append"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Keywords"><span class="icon-plus input_append"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Associated Project"><span class="icon-plus input_append"></span></li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Abstract</label><input type="file"></li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Full Text</label><input type="file"></li>
</ul>
</div>
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea name="" id="" rows="20" class="s_grid s_grid_6">Abstract</textarea></li>
<li class="s_grid_row"><textarea name="" id="" rows="6" class="s_grid s_grid_6">Note</textarea></li>
</ul>
</div>
</div>
</div>
</div>

View File

@ -1,75 +0,0 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all">All</a></li>
<li><a class="hp hh1 admtxt" href="none">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><a class="hp hh1 admtxt" href="journal">Journal</a></li>
<li><a class="hp hh1 admtxt" href="title">Title</a></li>
<li><a class="hp hh1 admtxt" href="file">File</a></li>
<li><a class="hp hh1 admtxt" href="keywords">Keywords</a></li>
<li><a class="hp hh1 admtxt" href="abstract">Abstract</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div id="paper_list" class="tinycanvas vp">
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
<div class="viewport">
<div class="overview">
</div>
</div>
</div>

View File

@ -1,107 +0,0 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<button class="fn_btn hh1 thmc2 thmtxt">Save</button>
<button class="fn_btn hh1 admbg2">Cancel</button>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Year</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">2012</a></li>
<li><a class="hp hh1 admtxt" href="">2011</a></li>
<li><a class="hp hh1 admtxt" href="">2010</a></li>
<li><a class="hp hh1 admtxt" href="">2009</a></li>
<li><a class="hp hh1 admtxt" href="">2008</a></li>
<li><a class="hp hh1 admtxt" href="">2007</a></li>
<li><a class="hp hh1 admtxt" href="">2006</a></li>
<li><a class="hp hh1 admtxt" href="">2005</a></li>
<li><a class="hp hh1 admtxt" href="">2004</a></li>
<li><a class="hp hh1 admtxt" href="">2003</a></li>
<li><a class="hp hh1 admtxt" href="">2002</a></li>
<li><a class="hp hh1 admtxt" href="">2001</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Language</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">English</a></li>
<li><a class="hp hh1 admtxt" href="">Chinese</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div id="paper_add" class="tinycanvas vp">
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
<div class="viewport">
<div class="overview">
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea class="s_grid_6 s_grid" name="" id="">Conference Title</textarea></li>
<li class="s_grid_row">
<label>Paper type</label><input type="radio" name="" value="Books" />Oral<input type="radio" name="" value="Chapter" />Poster</li>
<li class="s_grid_row"><label>Conference time</label></li>
<li class="s_grid_row"><select name="" id="" class="s_grid s_grid_1">
<option value=""></option>
</select>
<label class="s_grid s_grid_1">Year</label>
<select name="" id="" class="s_grid s_grid_1">
<option value=""></option>
</select>
<label class="s_grid s_grid_1">Month</label>
<select name="" id="" class="s_grid s_grid_1">
<option value=""></option>
</select>
<label class="s_grid s_grid_1">Day</label>
</li>
<li class="s_grid_row"><input class="s_grid s_grid_2" type="text" value="Location"><input class="s_grid s_grid_2" type="text" value="Sponsor"></li>
<li class="s_grid_row"><label class="s_grid_2 s_grid" for="">Reference URL</label><input class="s_grid_4 s_grid" type="text" value="www.sample.com"></li>
</ul>
</div>
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea class="s_grid s_grid_6" name="" id="">Author</textarea><span class="icon-plus input_append"></span></li>
<li class="s_grid_row">
<select name="" id="" class="s_grid s_grid_4">
<option value="">Author Type</option>
<option value="">First Author</option>
<option value="">Corresponding Author</option>
<option value="">Second Author</option>
<option value="">Third Author</option>
<option value="">Fourth Author</option>
</select>
<select name="" id="" class="s_grid s_grid_2">
<option value="">Status</option>
<option value="">Published</option>
<option value="">Pending</option>
<option value="">Writing</option>
</select>
</li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Date of Publication</label><input class="s_grid s_grid_4" type="text" value="2012 / 05 / 01"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Tags"><span class="icon-plus input_append"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Keywords"><span class="icon-plus input_append"></li>
<li class="s_grid_row"><input class="s_grid s_grid_6" type="text" value="Associated Project"><span class="icon-plus input_append"></span></li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Abstract</label><input type="file"></li>
<li class="s_grid_row"><label class="s_grid s_grid_2" for="">Full Text</label><input type="file"></li>
</ul>
</div>
<div class="s_grid_con s_form">
<ul>
<li class="s_grid_row"><textarea name="" id="" rows="20" class="s_grid s_grid_6">Abstract</textarea></li>
<li class="s_grid_row"><textarea name="" id="" rows="6" class="s_grid s_grid_6">Note</textarea></li>
</ul>
</div>
</div>
</div>
</div>

View File

@ -1,75 +0,0 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all">All</a></li>
<li><a class="hp hh1 admtxt" href="none">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><a class="hp hh1 admtxt" href="journal">Journal</a></li>
<li><a class="hp hh1 admtxt" href="title">Title</a></li>
<li><a class="hp hh1 admtxt" href="file">File</a></li>
<li><a class="hp hh1 admtxt" href="keywords">Keywords</a></li>
<li><a class="hp hh1 admtxt" href="abstract">Abstract</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div id="paper_list" class="tinycanvas vp">
<div class="scrollbar sb_h vp"><div class="track"><div class="thumb thmc2"><div class="end"></div></div></div></div>
<div class="viewport">
<div class="overview">
</div>
</div>
</div>

View File

@ -268,21 +268,7 @@ Orbit::Application.routes.draw do
match '/desktop/widget_layout' => 'desktop#widget_layout'
match '/desktop/temp_func/'=>'desktop#temp_func'
# namespace :desktop_publications do
match 'desktop_publications/books' => 'desktop_publications#books'
match 'desktop_publications/books_list'=>'desktop_publications#books_list'
match 'desktop_publications/books_add'=>'desktop_publications#books_add'
# namespace :desktop_research do
match 'desktop_research/research_d' => 'desktop_research#research_d'
match 'desktop_research/research_d_list/' => 'desktop_research#research_d_list'
match 'desktop_research/research_d_add' => 'desktop_research#research_d_add'
match 'desktop_research/research_p' => 'desktop_research#research_p'
match 'desktop_research/research_p_list/' => 'desktop_research#research_p_list'
match 'desktop_research/research_p_add' => 'desktop_research#research_p_add'
# end
match '/twitter/'=>'otheraccounts#twitter'
match '/forgmail/'=>'otheraccounts#gmail'
match '/otheraccounts/getaccounts'=>'otheraccounts#getaccounts'

42
sftp-config.json Normal file
View File

@ -0,0 +1,42 @@
{
// The tab key will cycle through the settings when first created
// Visit http://wbond.net/sublime_packages/sftp/settings for help
// sftp, ftp or ftps
"type": "sftp",
"save_before_upload": true,
"upload_on_save": false,
"sync_down_on_open": false,
"sync_skip_deletes": false,
"confirm_downloads": false,
"confirm_sync": true,
"confirm_overwrite_newer": false,
"host": "tp.rulingcom.com",
"user": "rulingcom",
"password": "bjo4xjp6",
//"port": "22",
"remote_path": "/home/rulingcom/design_demo_site/orbit_d5",
"ignore_regexes": [
"\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
"sftp-settings\\.json", "/venv/", "\\.svn", "\\.hg", "\\.git",
"\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
],
//"file_permissions": "664",
//"dir_permissions": "775",
//"extra_list_connections": 0,
"connect_timeout": 30,
//"keepalive": 120,
//"ftp_passive_mode": true,
//"ssh_key_file": "~/.ssh/id_rsa",
//"sftp_flags": ["-F", "/path/to/ssh_config"],
//"preserve_modification_times": false,
//"remote_time_offset_in_hours": 0,
//"remote_encoding": "utf-8",
//"remote_locale": "C",
}

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalBook = function(target,url,cache){ // this init journal papers
this.initializePersonalBook.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalBook.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalBook.bookDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalBook.cancelbook = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalBook.editbook = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalBook.addbook = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalBook.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalBook.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalBook.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalBook.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalBook.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalBook.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1 @@
//= require_tree ./personal_book/desktop

View File

@ -0,0 +1,73 @@
class Panel::PersonalBook::Desktop::PersonalBooksController < ApplicationController
def index
@writing_books = WritingBook.where(create_user_id: current_user.id)
@view_by = params[:view]
page = params[:page]
page ||= 1
@per_column = 5
case @view_by
when "abstract"
@per_column = 1
when "file"
@per_column = 2
end
if @view_by.nil?
@view_by = " "
@writing_books = @writing_books.asc(:paper_title)
else
@writing_books = @writing_books.asc(@view_by).asc(:paper_title)
end
@writing_books = @writing_books.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@personal_book = WritingBook.new
@author_types = BookAuthorType.all
render :layout => false
end
def create
params[:writing_book][:create_user_id] = current_user.id
@personal_book = WritingBook.new(params[:writing_book])
if @personal_book.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @personal_book.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@personal_book = WritingBook.find(params[:id])
@author_types = BookAuthorType.all
render :layout => false
end
def update
params[:writing_book][:create_user_id] = current_user.id
@personal_book = WritingBook.new(params[:writing_book])
if @personal_book.update_attributes(params[:writing_book])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @personal_book.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@personal_book = WritingBook.find(params[:id])
@personal_book.destroy
render :json => {success: true, msg: t('delete_success')}
end
def books_window
render :layout => false
end
end

View File

@ -0,0 +1,96 @@
module Panel::PersonalBook::Desktop::PersonalBooksHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "conference_title"
des = content_tag(:div, publication.book_title,
:class => "list_t_des")
when "keywords"
des = content_tag(:div, publication.keywords,
:class => "list_t_des")
when "abstract"
des = content_tag(:div, publication.abstract,
:class => "list_t_des")
when "file"
des = content_tag(:div, link_publication_file(publication),
:class => "list_t_des")
else
end
content_tag(:div, publication.paper_title,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_book_desktop_personal_book_path(publication),
"callback-method" => "editbook",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "bookDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_book_desktop_personal_book_path(publication))
end
end
def link_publication_file publication
publication.writing_book_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,164 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @personal_book.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"cancelbook", "ajax-remote" => "get", :href => panel_personal_book_desktop_personal_books_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.fields_for :paper_title_translations do |f| %>
<%= f.text_area locale,
class: "s_grid_12 s_grid s_grid_h_3",
size: "20x4",
placeholder: t("personal_book.paper_title"),
value: (@personal_book.paper_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :book_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_book.book_title"),
class: "s_grid_12 s_grid",
value: (@personal_book.book_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_book.book_paper_type"), class: "s_grid_4 s_grid") %>
<%= f.select :book_paper_type_id, BookPaperType.all.collect {|t| [ t.title, t.id ]}, {:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_book.author_type"), class: "s_grid_4 s_grid") %>
<% @author_types.each do |author_type| %>
<%= content_tag :label,:class => "s_grid_4 s_grid" do -%>
<%= check_box_tag 'writing_book[book_author_type_ids][]', author_type.id, @personal_book.book_author_type_ids.include?(author_type.id)%>
<%= author_type.title %>
<%= hidden_field_tag 'writing_book[book_author_type_ids][]', '' %>
<% end %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :extracted_chapters_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_book.extracted_chapters"),
class: "s_grid_12 s_grid",
value: (@personal_book.extracted_chapters_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :publishers_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_book.publishers"),
class: "s_grid_12 s_grid",
value: (@personal_book.publishers_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<!-- <li class="s_grid_row">
<%#= f.text_area :author_tokens,
class: "s_grid_12 s_grid",
size: "20x2",
placeholder: t("personal_journal.authors"),
"autocomplete" => "/panel/personal_journal/desktop/journal_pages/new.json",
"autocomplete-format" => "--:[text,email]",
"data-pre" => generate_authors_name(@personal_book.journal_co_author_ids) %>
</li> -->
<li class="s_grid_row">
<%= label_tag("", t("personal_book.publication_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :publish_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :publish_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_book.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_book.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_book.pages"), class: "s_grid_4 s_grid") %><%= f.text_field :pages, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_book.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, WritingBook::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_book.isbn"), class: "s_grid_4 s_grid") %><%= f.text_field :isbn, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_book.note"), class: "s_grid_12 s_grid s_grid_h_5"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<table class="s_table">
<thead>
<tr>
<th class="s_grid_2"><%= t("personal_book.file")%></th>
<th class="s_grid_4"><%= t("personal_book.file_name")%></th>
<th class="s_grid_4"><%= t("personal_book.description") %></th>
<th class="s_grid_2"></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="4">
<div id='add_plugin_file' class="info_input plugin_files_block s_action">
<%= hidden_field_tag 'plugin_file_field_count', @personal_book.writing_book_files.count %>
<a class="add setting_btn thmc1 thmtxt w1 hh1 hp" href="#"><i class="icon-plus icon-white"></i> add</a>
</div>
</td>
</tr>
</tfoot>
<tbody>
<% @personal_book.writing_book_files.each_with_index do |writing_book_file, i| %>
<%= f.fields_for :writing_book_files, writing_book_file do |f| %>
<%= render :partial => 'form_file', :object => writing_book_file, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
</tbody>
</table>
</li>
</ul>
</div>
</div>
</div>
<script>
var get_html = function(old_id,new_id){
return ("<%= escape_javascript(add_attribute 'form_file', f, :writing_book_files) %>").replace(old_id, new_id);
}
</script>

View File

@ -0,0 +1,33 @@
<tr id="<%= "plugin_file_#{form_file.id}" if !form_file.new_record? %>" class="list_item">
<td>
<div>
<% if form_file.new_record? %>
<%= f.file_field :file, class: "s_grid_2" %>
<% end %>
</div>
</td>
<td>
<%= f.text_field :title, :class => 's_grid_4' %>
</td>
<td>
<%= f.fields_for :file_title_translations do |f| %>
<%= f.text_field locale,
class: 's_grid_4',
value: (form_file.file_title_translations[locale] rescue nil) %>
<% end %>
</td>
<td>
<span class="action">
<% if form_file.new_record? %>
<a class="delete"><i class="icon-remove"></i></a>
<% else %>
<%= f.hidden_field :id %>
<a class="remove_existing_record"><i class="icon-remove"></i></a>
<%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
<%= form_file.file.file ? ( link_to '', form_file.file.url, {:class => 'icon-eye-open', :target => '_blank', :title => t(:view)} ) : '' %>
</span>
</td>
</tr>

View File

@ -1,8 +1,10 @@
<div id="research_d">
<%= stylesheet_link_tag "/assets/personal_book/desktop/personal_book" %>
<%= javascript_include_tag "personal_book/desktop/personal_books" %>
<div id="books">
<div id="content">
<div id="header" class="hh2">
<div class="dtitle w2 hh2 hp">
<span class="thmtxth">Research Domain</span>
<span class="thmtxth">Books</span>
</div>
<div id="search_app" class="hfn w2 hh1 hp thmc3">
<input type="text" class="ini_input form" value="Search" id="searchbox" />
@ -13,14 +15,14 @@
<div id="panel_l" class="ph">
<div class="s_menu sm_v" content-type="menu">
<ul id='setting_left_nav'>
<li><a href="<%= desktop_research_research_d_list_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" onclick='return false;'>List</a></li>
<li><a href="<%= desktop_research_research_d_add_path %>" callback-method="add_this" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Domains</a></li>
<li><a href="<%= panel_personal_book_desktop_personal_books_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" load="true" onclick='return false;'>List</a></li>
<li><a href="<%= new_panel_personal_book_desktop_personal_book_path %>" callback-method="addbook" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<!-- <li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Books</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Co-Authors</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Analysis</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Import</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li> -->
</ul>
</div>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @personal_book, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_book_desktop_personal_books_path(@personal_book) do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,84 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all" ajax-remote="false" callback-method="allnone">All</a></li>
<li><a class="hp hh1 admtxt" href="none" ajax-remote="false" callback-method="allnone">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><%= link_to "Journal", panel_personal_book_desktop_personal_books_path + "?view=book_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Title", panel_personal_book_desktop_personal_books_path + "?view=paper_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "File", panel_personal_book_desktop_personal_books_path + "?view=file", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Keywords", panel_personal_book_desktop_personal_books_path + "?view=keywords", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Abstract", panel_personal_book_desktop_personal_books_path + "?view=abstract", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1" id='ns'>New Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt remote_url" href="<%= panel_personal_book_desktop_personal_books_path %>">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" page-name="journal_p_list" content-layout="datalist" base-width="300" per-column="<%= @per_column.to_s %>" pagination-var="view=<%= @view_by %>&page" >
<% @writing_books.each do |w| %>
<%= publication_record w, @view_by%>
<% end %>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @personal_book, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_book_desktop_personal_books_path do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -1,4 +1,51 @@
en:
module_name:
personal_book: Book
personal_book: Book
personal_book:
paper_title : "Paper Title"
book_title : "Book Title"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "Authors"
tags : "Tags"
year : "Year"
language : "Language"
isbn : "ISSN(ISBN)"
vol_no : "Vol.No"
issue_no : "Issue.No"
form_to_start : "From"
form_to_end : "To"
total_pages : "Total Pages"
keywords : "Keywords"
abstract : "Abstract"
publication_date : "Date of Publication"
url : "Reference URL"
note : "Note"
level_type : "Level Type"
author_type : "Author Type"
from : "From"
to : "To"
file : "File"
file_name : "File name"
description : "File Description"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "Successfully Create"
update_success : "Successfully Update"
delete_success : "Successfully Delete"
add: "Add"
back: "Back"
delete: "Delete"
edit: "Edit"
nothing: "Nothing"
show: "Show"
sure?: "Are you sure?"
update: "Update"
yes_: "Yes"
no_: "No"
cancel : "Cancel"
save: "save"
hintText: "Type in a search term"
noResultsText: "No results"
searchingText: "Searching…"

View File

@ -1,4 +1,51 @@
zh_tw:
module_name:
personal_book: 專書
personal_book: 期刊著作
personal_book:
paper_title : "論文名稱"
book_title : "期刊名稱"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "作者"
tags : "領域"
year : "年度"
language : "語言"
isbn : "ISSN(ISBN)"
vol_no : "卷數"
issue_no : "期數"
form_to_start : "起"
form_to_end : "訖"
total_pages : "總頁數"
keywords : "關鍵字"
abstract : "摘要"
publication_date : "發表日期"
url : "參考連結"
note : "記事"
level_type : "期刊類別"
author_type : "作者類別"
from : "起"
to : "訖"
file : "檔案"
file_name : "檔案名稱"
description : "描述"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "新增完成!!"
update_success : "更新完成!!"
delete_success : "刪除成功!!"
add: "新增"
back: "返回"
delete: "刪除"
edit: "編輯"
nothing: "無"
show: "顯示"
sure?: "您肯定嗎?"
update: "更新"
yes_: "是"
no_: "否"
cancel : "取消"
save: "儲存"
hintText: "請輸入搜尋關鍵字"
noResultsText: "沒有相關的比對結果"
searchingText: "搜尋中…"

View File

@ -2,6 +2,10 @@ Rails.application.routes.draw do
namespace :panel do
namespace :personal_book do
namespace :desktop do
match 'books_window' => "personal_books#books_window"
resources :personal_books
end
namespace :back_end do
match 'writing_book_setting' => "writing_books#writing_book_setting" ,:as => :writing_book_setting
@ -33,6 +37,7 @@ Rails.application.routes.draw do
match "reload_writing_books" => "writing_books#reload_writing_books"
end
end
end
match "/appfront/*path" => redirect("/panel/*path")

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalDiploma = function(target,url,cache){ // this init journal papers
this.initializePersonalDiploma.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalDiploma.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalDiploma.diplomaDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalDiploma.canceldiploma = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalDiploma.editdiploma = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalDiploma.adddiploma = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalDiploma.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalDiploma.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalDiploma.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalDiploma.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalDiploma.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalDiploma.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1,115 @@
/* Books */
[page-name="books_list"] .list_t_item .inner {
padding-left: 30px; }
[page-name="books_list"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_list"] .list_item_action a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_list"] .list_item_action .icon-star-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-star {
color: #faa732;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check {
color: #333;
font-size: 20px; }
[page-name="books_list"] .file_view .list_t_des {
overflow: hidden; }
[page-name="books_list"] .file_view .file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
[page-name="books_list"] .file_view .file:hover {
background-color: #f7f7f7; }
[page-name="books_list"] .file_view .file img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px; }
[page-name="books_list"] .file_view .file .filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
/* Books Books list */
[page-name="books_books"] .datalist_item .inner {
padding-left: 30px; }
[page-name="books_books"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_books"] .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_books"] .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999; }
/* Books Co-Author */
[page-name="books_coauthor"] .list_t_item {
height: 110px; }
[page-name="books_coauthor"] .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none; }
[page-name="books_coauthor"] .info {
font-family: Arial, sans-serif; }
[page-name="books_coauthor"] .info li {
margin-bottom: 8px;
color: #999; }
[page-name="books_coauthor"] .info .name {
font-size: 18px;
line-height: 24px;
color: #333; }
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"] .edit_co_author_relation {
/*margin-left: -10px;*/ }
[page-name="books_coauthor_relation"] .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif; }

View File

@ -0,0 +1,123 @@
@import "desktop-helper";
/* Books */
[page-name="books_list"] {
.list_t_item .inner { padding-left: 30px; }
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.icon-star-empty { color: #999; font-size: 20px; }
.icon-star { color: #faa732; font-size: 20px; }
.icon-check-empty { color: #999; font-size: 20px; }
.icon-check { color: #333; font-size: 20px; }
}
.file_view {
.list_t_des {
overflow: hidden;
}
.file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
@include box-sizing;
&:hover {
background-color: lighten($gray, 10%);
}
img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px;
}
.filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
@include box-sizing;
}
}
}
}
/* Books Books list */
[page-name="books_books"] {
.datalist_item .inner {
padding-left: 30px;
}
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
.list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
}
/* Books Co-Author */
[page-name="books_coauthor"] {
.list_t_item {
height: 110px;
}
.list_item_function {}
.list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.info {
font-family: Arial, sans-serif;
}
.info li {
margin-bottom: 8px;
color: #999;
}
.info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
}
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"]{
.edit_co_author_relation {
/*margin-left: -10px;*/
}
.form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
}

View File

@ -0,0 +1,51 @@
class Panel::PersonalDiploma::Desktop::PersonalDiplomasController < ApplicationController
def index
@diplomas = Diploma.where(create_user_id: current_user.id)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@diploma = Diploma.new
render :layout => false
end
def create
params[:diploma][:create_user_id] = current_user.id
@diploma = Diploma.new(params[:diploma])
if @diploma.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @diploma.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@diploma = Diploma.find(params[:id])
render :layout => false
end
def update
params[:diploma][:create_user_id] = current_user.id
@diploma = Diploma.new(params[:diploma])
if @diploma.update_attributes(params[:diploma])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @diploma.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@diploma = Diploma.find(params[:id])
@diploma.destroy
render :json => {success: true, msg: t('delete_success')}
end
def diploma_window
render :layout => false
end
end

View File

@ -0,0 +1,96 @@
module Panel::PersonalDiploma::Desktop::PersonalDiplomasHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "diploma_title"
des = content_tag(:div, publication.diploma_title,
:class => "list_t_des")
when "keywords"
des = content_tag(:div, publication.keywords,
:class => "list_t_des")
when "abstract"
des = content_tag(:div, publication.abstract,
:class => "list_t_des")
when "file"
des = content_tag(:div, link_publication_file(publication),
:class => "list_t_des")
else
end
content_tag(:div, publication.school_name,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_diploma_desktop_personal_diploma_path(publication),
"callback-method" => "editdiploma",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "diplomaDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_diploma_desktop_personal_diploma_path(publication))
end
end
def link_publication_file publication
publication.writing_conference_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,98 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @diploma.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"canceldiploma", "ajax-remote" => "get", :href => panel_personal_diploma_desktop_personal_diplomas_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= label_tag("", t("personal_diploma.start_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :start_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :start_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_diploma.end_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :end_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :end_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= f.fields_for :school_name_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_diploma.school_name"),
class: "s_grid_12 s_grid",
value: (@diploma.school_name_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :country_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_diploma.country"),
class: "s_grid_12 s_grid",
value: (@diploma.country_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :department_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_diploma.department"),
class: "s_grid_12 s_grid",
value: (@diploma.department_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :degree_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_diploma.degree"),
class: "s_grid_12 s_grid",
value: (@diploma.degree_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_diploma.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_diploma.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_diploma.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, Diploma::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_diploma.note"), class: "s_grid_12 s_grid s_grid_h_5"%>
</li>
</ul>
</div>
</div>
</div>

View File

@ -0,0 +1,35 @@
<%= stylesheet_link_tag "/assets/personal_diploma/personal_diploma" %>
<%= javascript_include_tag "personal_diploma/desktop/personal_diploma" %>
<div id="diploma">
<div id="content">
<div id="header" class="hh2">
<div class="dtitle w2 hh2 hp">
<span class="thmtxth">Education</span>
</div>
<div id="search_app" class="hfn w2 hh1 hp thmc3">
<input type="text" class="ini_input form" value="Search" id="searchbox" />
<input type="submit" class="ini_input submit thmc1" value="Submit"/>
</div>
</div>
<div id="holder">
<div id="panel_l" class="ph">
<div class="s_menu sm_v" content-type="menu">
<ul id='setting_left_nav'>
<li><a href="<%= panel_personal_diploma_desktop_personal_diplomas_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" load="true" onclick='return false;'>List</a></li>
<li><a href="<%= new_panel_personal_diploma_desktop_personal_diploma_path %>" callback-method="adddiploma" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<!-- <li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Books</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Co-Authors</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Analysis</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Import</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li> -->
</ul>
</div>
</div>
<div id="panel_r" container="true" class="ph pw admbg hp">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @diploma, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_diploma_desktop_personal_diplomas_path(@diploma) do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,84 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all" ajax-remote="false" callback-method="allnone">All</a></li>
<li><a class="hp hh1 admtxt" href="none" ajax-remote="false" callback-method="allnone">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><%= link_to "Journal", panel_personal_diploma_desktop_personal_diplomas_path + "?view=diploma_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Title", panel_personal_diploma_desktop_personal_diplomas_path + "?view=paper_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "File", panel_personal_diploma_desktop_personal_diplomas_path + "?view=file", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Keywords", panel_personal_diploma_desktop_personal_diplomas_path + "?view=keywords", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Abstract", panel_personal_diploma_desktop_personal_diplomas_path + "?view=abstract", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1" id='ns'>New Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt remote_url" href="<%= panel_personal_diploma_desktop_personal_diplomas_path %>">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" page-name="journal_p_list" content-layout="datalist" base-width="300" per-column="<%= @per_column.to_s %>" pagination-var="view=<%= @view_by %>&page" >
<% @diplomas.each do |w| %>
<%= publication_record w, @view_by%>
<% end %>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @diploma, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_diploma_desktop_personal_diplomas_path do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -1,4 +1,55 @@
en:
module_name:
personal_diploma: Diploma
personal_diploma: Diploma
personal_diploma:
paper_title : "Paper Title"
book_title : "Book Title"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "Authors"
tags : "Tags"
year : "Year"
language : "Language"
isbn : "ISSN(ISBN)"
vol_no : "Vol.No"
issue_no : "Issue.No"
form_to_start : "From"
form_to_end : "To"
total_pages : "Total Pages"
keywords : "Keywords"
abstract : "Abstract"
publication_date : "Date of Publication"
url : "Reference URL"
note : "Note"
level_type : "Level Type"
author_type : "Author Type"
from : "From"
to : "To"
file : "File"
file_name : "File name"
description : "File Description"
pages : "Pages"
book_paper_type : "Book Paper Type"
school_name : "School Name"
country : "Country"
department : "Department"
degree : "Degree"
create_success : "Successfully Create"
update_success : "Successfully Update"
delete_success : "Successfully Delete"
add: "Add"
back: "Back"
delete: "Delete"
edit: "Edit"
nothing: "Nothing"
show: "Show"
sure?: "Are you sure?"
update: "Update"
yes_: "Yes"
no_: "No"
cancel : "Cancel"
save: "save"
hintText: "Type in a search term"
noResultsText: "No results"
searchingText: "Searching…"

View File

@ -1,4 +1,55 @@
zh_tw:
module_name:
personal_diploma: 學歷
personal_diploma: 期刊著作
personal_diploma:
paper_title : "論文名稱"
book_title : "期刊名稱"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "作者"
tags : "領域"
year : "年度"
language : "語言"
isbn : "ISSN(ISBN)"
vol_no : "卷數"
issue_no : "期數"
form_to_start : "起"
form_to_end : "訖"
total_pages : "總頁數"
keywords : "關鍵字"
abstract : "摘要"
publication_date : "發表日期"
url : "參考連結"
note : "記事"
level_type : "期刊類別"
author_type : "作者類別"
from : "起"
to : "訖"
file : "檔案"
file_name : "檔案名稱"
description : "描述"
pages : "Pages"
book_paper_type : "Book Paper Type"
school_name : "School Name"
country : "Country"
department : "Department"
degree : "Degree"
create_success : "新增完成!!"
update_success : "更新完成!!"
delete_success : "刪除成功!!"
add: "新增"
back: "返回"
delete: "刪除"
edit: "編輯"
nothing: "無"
show: "顯示"
sure?: "您肯定嗎?"
update: "更新"
yes_: "是"
no_: "否"
cancel : "取消"
save: "儲存"
hintText: "請輸入搜尋關鍵字"
noResultsText: "沒有相關的比對結果"
searchingText: "搜尋中…"

View File

@ -2,6 +2,10 @@ Rails.application.routes.draw do
namespace :panel do
namespace :personal_diploma do
namespace :desktop do
match "diploma_window" => "personal_diplomas#diploma_window"
resources :personal_diplomas
end
namespace :back_end do
match 'diploma_setting' => "diplomas#diploma_setting" ,:as => :diploma_setting

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalExperience = function(target,url,cache){ // this init journal papers
this.initializePersonalExperience.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalExperience.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalExperience.experienceDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalExperience.cancelexperience = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalExperience.editexperience = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalExperience.addexperience = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalExperience.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalExperience.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalExperience.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalExperience.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalExperience.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalExperience.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1,115 @@
/* Books */
[page-name="books_list"] .list_t_item .inner {
padding-left: 30px; }
[page-name="books_list"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_list"] .list_item_action a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_list"] .list_item_action .icon-star-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-star {
color: #faa732;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check {
color: #333;
font-size: 20px; }
[page-name="books_list"] .file_view .list_t_des {
overflow: hidden; }
[page-name="books_list"] .file_view .file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
[page-name="books_list"] .file_view .file:hover {
background-color: #f7f7f7; }
[page-name="books_list"] .file_view .file img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px; }
[page-name="books_list"] .file_view .file .filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
/* Books Books list */
[page-name="books_books"] .datalist_item .inner {
padding-left: 30px; }
[page-name="books_books"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_books"] .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_books"] .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999; }
/* Books Co-Author */
[page-name="books_coauthor"] .list_t_item {
height: 110px; }
[page-name="books_coauthor"] .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none; }
[page-name="books_coauthor"] .info {
font-family: Arial, sans-serif; }
[page-name="books_coauthor"] .info li {
margin-bottom: 8px;
color: #999; }
[page-name="books_coauthor"] .info .name {
font-size: 18px;
line-height: 24px;
color: #333; }
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"] .edit_co_author_relation {
/*margin-left: -10px;*/ }
[page-name="books_coauthor_relation"] .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif; }

View File

@ -0,0 +1,123 @@
@import "desktop-helper";
/* Books */
[page-name="books_list"] {
.list_t_item .inner { padding-left: 30px; }
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.icon-star-empty { color: #999; font-size: 20px; }
.icon-star { color: #faa732; font-size: 20px; }
.icon-check-empty { color: #999; font-size: 20px; }
.icon-check { color: #333; font-size: 20px; }
}
.file_view {
.list_t_des {
overflow: hidden;
}
.file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
@include box-sizing;
&:hover {
background-color: lighten($gray, 10%);
}
img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px;
}
.filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
@include box-sizing;
}
}
}
}
/* Books Books list */
[page-name="books_books"] {
.datalist_item .inner {
padding-left: 30px;
}
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
.list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
}
/* Books Co-Author */
[page-name="books_coauthor"] {
.list_t_item {
height: 110px;
}
.list_item_function {}
.list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.info {
font-family: Arial, sans-serif;
}
.info li {
margin-bottom: 8px;
color: #999;
}
.info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
}
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"]{
.edit_co_author_relation {
/*margin-left: -10px;*/
}
.form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
}

View File

@ -0,0 +1,72 @@
class Panel::PersonalExperience::Desktop::PersonalExperiencesController < ApplicationController
def index
@experiences = Experience.where(create_user_id: current_user.id)
@view_by = params[:view]
page = params[:page]
page ||= 1
@per_column = 5
case @view_by
when "abstract"
@per_column = 1
when "file"
@per_column = 2
end
if @view_by.nil?
@view_by = " "
@experiences = @experiences.asc(:organizationt_title)
else
@experiences = @experiences.asc(@view_by).asc(:organizationt_title)
end
@experiences = @experiences.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@experience = Experience.new
# @author_types = BookAuthorType.all
render :layout => false
end
def create
params[:experience][:create_user_id] = current_user.id
@experience = Experience.new(params[:experience])
if @experience.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @experience.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@experience = Experience.find(params[:id])
render :layout => false
end
def update
params[:experience][:create_user_id] = current_user.id
@experience = Experience.new(params[:experience])
if @experience.update_attributes(params[:writing_book])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @experience.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@experience = Experience.find(params[:id])
@experience.destroy
render :json => {success: true, msg: t('delete_success')}
end
def experience_window
render :layout => false
end
end

View File

@ -0,0 +1,96 @@
module Panel::PersonalExperience::Desktop::PersonalExperiencesHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "organizationt_title"
des = content_tag(:div, publication.organizationt_title,
:class => "list_t_des")
when "job_title"
des = content_tag(:div, publication.job_title,
:class => "list_t_des")
when "department"
des = content_tag(:div, publication.department,
:class => "list_t_des")
when "file"
des = content_tag(:div, link_publication_file(publication),
:class => "list_t_des")
else
end
content_tag(:div, publication.organizationt_title,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_experience_desktop_personal_experience_path(publication),
"callback-method" => "editexperience",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "experienceDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_experience_desktop_personal_experience_path(publication))
end
end
def link_publication_file publication
publication.writing_conference_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,93 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @experience.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"cancelexperience", "ajax-remote" => "get", :href => panel_personal_experience_desktop_personal_experiences_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.fields_for :organizationt_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_experience.organizationt_title"),
class: "s_grid_12 s_grid",
value: (@experience.organizationt_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :department_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_experience.department"),
class: "s_grid_12 s_grid",
value: (@experience.department_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :job_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_experience.job_title"),
class: "s_grid_12 s_grid",
value: (@experience.job_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_experience.experience_category"), class: "s_grid_4 s_grid") %>
<%= f.select :experience_category_id, ExperienceCategory.all.collect {|t| [ t.title, t.id ]}, {:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_experience.start_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :start_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :start_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_experience.end_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :end_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :end_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_experience.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_experience.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_experience.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, Experience::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_experience.note"), value: @experience.note , class: "s_grid_12 s_grid s_grid_h_3"%>
</li>
</ul>
</div>
</div>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @experience, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_experience_desktop_personal_experiences_path(@personal_book) do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,35 @@
<%= stylesheet_link_tag "/assets/personal_experience/desktop/personal_experience" %>
<%= javascript_include_tag "personal_experience/desktop/personal_experiences" %>
<div id="working">
<div id="content">
<div id="header" class="hh2">
<div class="dtitle w2 hh2 hp">
<span class="thmtxth">Experience/Working</span>
</div>
<div id="search_app" class="hfn w2 hh1 hp thmc3">
<input type="text" class="ini_input form" value="Search" id="searchbox" />
<input type="submit" class="ini_input submit thmc1" value="Submit"/>
</div>
</div>
<div id="holder">
<div id="panel_l" class="ph">
<div class="s_menu sm_v" content-type="menu">
<ul id='setting_left_nav'>
<li><a href="<%= panel_personal_experience_desktop_personal_experiences_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" load="true" onclick='return false;'>List</a></li>
<li><a href="<%= new_panel_personal_experience_desktop_personal_experience_path %>" callback-method="addexperience" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<!-- <li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Books</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Co-Authors</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Analysis</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Import</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li> -->
</ul>
</div>
</div>
<div id="panel_r" container="true" class="ph pw admbg hp">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,84 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all" ajax-remote="false" callback-method="allnone">All</a></li>
<li><a class="hp hh1 admtxt" href="none" ajax-remote="false" callback-method="allnone">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><%= link_to "Journal", panel_personal_experience_desktop_personal_experiences_path + "?view=organizationt_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Title", panel_personal_experience_desktop_personal_experiences_path + "?view=paper_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "File", panel_personal_experience_desktop_personal_experiences_path + "?view=job_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Keywords", panel_personal_experience_desktop_personal_experiences_path + "?view=department", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Abstract", panel_personal_experience_desktop_personal_experiences_path + "?view=file", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1" id='ns'>New Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt remote_url" href="<%= panel_personal_experience_desktop_personal_experiences_path %>">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" page-name="journal_p_list" content-layout="datalist" base-width="300" per-column="<%= @per_column.to_s %>" pagination-var="view=<%= @view_by %>&page" >
<% @experiences.each do |w| %>
<%= publication_record w, @view_by%>
<% end %>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @experience, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_experience_desktop_personal_experiences_path do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -1,4 +1,55 @@
en:
module_name:
personal_experience: Experience
personal_experience: Book
personal_experience:
department : "Department"
experience_category : "Experience Category"
organizationt_title : "Organization Title"
paper_title : "Paper Title"
book_title : "Book Title"
job_title : "Job Title"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "Authors"
tags : "Tags"
year : "Year"
language : "Language"
isbn : "ISSN(ISBN)"
vol_no : "Vol.No"
issue_no : "Issue.No"
form_to_start : "From"
form_to_end : "To"
total_pages : "Total Pages"
keywords : "Keywords"
abstract : "Abstract"
publication_date : "Date of Publication"
url : "Reference URL"
note : "Note"
level_type : "Level Type"
author_type : "Author Type"
from : "From"
to : "To"
file : "File"
file_name : "File name"
description : "File Description"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "Successfully Create"
update_success : "Successfully Update"
delete_success : "Successfully Delete"
add: "Add"
back: "Back"
delete: "Delete"
edit: "Edit"
nothing: "Nothing"
show: "Show"
sure?: "Are you sure?"
update: "Update"
yes_: "Yes"
no_: "No"
cancel : "Cancel"
save: "save"
hintText: "Type in a search term"
noResultsText: "No results"
searchingText: "Searching…"

View File

@ -1,5 +1,54 @@
zh_tw:
module_name:
personal_experience: 經歷
personal_experience: 期刊著作
personal_experience:
department : "Department"
organizationt_title : "Organization Title"
paper_title : "論文名稱"
book_title : "期刊名稱"
job_title : "Job Title"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "作者"
tags : "領域"
year : "年度"
language : "語言"
isbn : "ISSN(ISBN)"
vol_no : "卷數"
issue_no : "期數"
form_to_start : "起"
form_to_end : "訖"
total_pages : "總頁數"
keywords : "關鍵字"
abstract : "摘要"
publication_date : "發表日期"
url : "參考連結"
note : "記事"
level_type : "期刊類別"
author_type : "作者類別"
from : "起"
to : "訖"
file : "檔案"
file_name : "檔案名稱"
description : "描述"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "新增完成!!"
update_success : "更新完成!!"
delete_success : "刪除成功!!"
add: "新增"
back: "返回"
delete: "刪除"
edit: "編輯"
nothing: "無"
show: "顯示"
sure?: "您肯定嗎?"
update: "更新"
yes_: "是"
no_: "否"
cancel : "取消"
save: "儲存"
hintText: "請輸入搜尋關鍵字"
noResultsText: "沒有相關的比對結果"
searchingText: "搜尋中…"

View File

@ -2,6 +2,10 @@ Rails.application.routes.draw do
namespace :panel do
namespace :personal_experience do
namespace :desktop do
match "experience_window" => "personal_experiences#experience_window"
resources :personal_experiences
end
namespace :back_end do
match 'experience_setting' => "experiences#experience_setting" ,:as => :experience_setting

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalHonor = function(target,url,cache){ // this init journal papers
this.initializePersonalHonor.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalHonor.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalHonor.honorDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalHonor.cancelhonor = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalHonor.edithonor = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalHonor.addhonor = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalHonor.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalHonor.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalHonor.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalHonor.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalHonor.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalHonor.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1,115 @@
/* Books */
[page-name="books_list"] .list_t_item .inner {
padding-left: 30px; }
[page-name="books_list"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_list"] .list_item_action a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_list"] .list_item_action .icon-star-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-star {
color: #faa732;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check {
color: #333;
font-size: 20px; }
[page-name="books_list"] .file_view .list_t_des {
overflow: hidden; }
[page-name="books_list"] .file_view .file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
[page-name="books_list"] .file_view .file:hover {
background-color: #f7f7f7; }
[page-name="books_list"] .file_view .file img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px; }
[page-name="books_list"] .file_view .file .filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
/* Books Books list */
[page-name="books_books"] .datalist_item .inner {
padding-left: 30px; }
[page-name="books_books"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_books"] .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_books"] .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999; }
/* Books Co-Author */
[page-name="books_coauthor"] .list_t_item {
height: 110px; }
[page-name="books_coauthor"] .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none; }
[page-name="books_coauthor"] .info {
font-family: Arial, sans-serif; }
[page-name="books_coauthor"] .info li {
margin-bottom: 8px;
color: #999; }
[page-name="books_coauthor"] .info .name {
font-size: 18px;
line-height: 24px;
color: #333; }
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"] .edit_co_author_relation {
/*margin-left: -10px;*/ }
[page-name="books_coauthor_relation"] .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif; }

View File

@ -0,0 +1,123 @@
@import "desktop-helper";
/* Books */
[page-name="books_list"] {
.list_t_item .inner { padding-left: 30px; }
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.icon-star-empty { color: #999; font-size: 20px; }
.icon-star { color: #faa732; font-size: 20px; }
.icon-check-empty { color: #999; font-size: 20px; }
.icon-check { color: #333; font-size: 20px; }
}
.file_view {
.list_t_des {
overflow: hidden;
}
.file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
@include box-sizing;
&:hover {
background-color: lighten($gray, 10%);
}
img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px;
}
.filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
@include box-sizing;
}
}
}
}
/* Books Books list */
[page-name="books_books"] {
.datalist_item .inner {
padding-left: 30px;
}
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
.list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
}
/* Books Co-Author */
[page-name="books_coauthor"] {
.list_t_item {
height: 110px;
}
.list_item_function {}
.list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.info {
font-family: Arial, sans-serif;
}
.info li {
margin-bottom: 8px;
color: #999;
}
.info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
}
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"]{
.edit_co_author_relation {
/*margin-left: -10px;*/
}
.form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
}

View File

@ -0,0 +1,71 @@
class Panel::PersonalHonor::Desktop::PersonalHonorsController < ApplicationController
def index
@honors = Honor.where(create_user_id: current_user.id)
@view_by = params[:view]
page = params[:page]
page ||= 1
@per_column = 5
case @view_by
when "abstract"
@per_column = 1
when "file"
@per_column = 2
end
if @view_by.nil?
@view_by = " "
@honors = @honors.asc(:paper_title)
else
@honors = @honors.asc(@view_by).asc(:paper_title)
end
@honors = @honors.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@honor = Honor.new
render :layout => false
end
def create
params[:honor][:create_user_id] = current_user.id
@honor = Honor.new(params[:honor])
if @honor.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @honor.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@honor = Honor.find(params[:id])
render :layout => false
end
def update
params[:honor][:create_user_id] = current_user.id
@honor = Honor.new(params[:honor])
if @honor.update_attributes(params[:honor])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @honor.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@honor = Honor.find(params[:id])
@honor.destroy
render :json => {success: true, msg: t('delete_success')}
end
def honors_window
render :layout => false
end
end

View File

@ -0,0 +1,87 @@
module Panel::PersonalHonor::Desktop::PersonalHonorsHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "award_name"
des = content_tag(:div, publication.award_name,
:class => "list_t_des")
end
content_tag(:div, publication.award_name,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_honor_desktop_personal_honor_path(publication),
"callback-method" => "edithonor",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "honorDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_honor_desktop_personal_honor_path(publication))
end
end
def link_publication_file publication
publication.writing_book_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,66 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @honor.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"cancelhonor", "ajax-remote" => "get", :href => panel_personal_honor_desktop_personal_honors_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= label_tag("", t("personal_honor.award_name"), class: "s_grid_4 s_grid") %><%= f.text_field :award_name, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_honor.awarding_unit"), class: "s_grid_4 s_grid") %><%= f.text_field :awarding_unit, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_honor.year"), class: "s_grid_4 s_grid") %>
<%= select_year((@honor.year ? @honor.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'honor[year]',:class => 's_grid_4 s_grid'} ) %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_honor.honor_category"), class: "s_grid_4 s_grid") %>
<%= f.select :honor_category_id, HonorCategory.all.collect {|t| [ t.title, t.id ]}, {:class => "s_grid s_grid_4"} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_honor.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_honor.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_honor.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, Honor::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_honor.note"), class: "s_grid_12 s_grid s_grid_h_5"%>
</li>
</ul>
</div>
</div>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @honor, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_honor_desktop_personal_honors_path(@personal_book) do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,35 @@
<%= stylesheet_link_tag "/assets/personal_honor/desktop/personal_honor" %>
<%= javascript_include_tag "personal_honor/desktop/personal_honors" %>
<div id="honors">
<div id="content">
<div id="header" class="hh2">
<div class="dtitle w2 hh2 hp">
<span class="thmtxth">Honors</span>
</div>
<div id="search_app" class="hfn w2 hh1 hp thmc3">
<input type="text" class="ini_input form" value="Search" id="searchbox" />
<input type="submit" class="ini_input submit thmc1" value="Submit"/>
</div>
</div>
<div id="holder">
<div id="panel_l" class="ph">
<div class="s_menu sm_v" content-type="menu">
<ul id='setting_left_nav'>
<li><a href="<%= panel_personal_honor_desktop_personal_honors_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" load="true" onclick='return false;'>List</a></li>
<li><a href="<%= new_panel_personal_honor_desktop_personal_honor_path %>" callback-method="addhonor" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<!-- <li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Books</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Co-Authors</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Analysis</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Import</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li> -->
</ul>
</div>
</div>
<div id="panel_r" container="true" class="ph pw admbg hp">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,84 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all" ajax-remote="false" callback-method="allnone">All</a></li>
<li><a class="hp hh1 admtxt" href="none" ajax-remote="false" callback-method="allnone">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><%= link_to "Journal", panel_personal_honor_desktop_personal_honors_path + "?view=book_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Title", panel_personal_honor_desktop_personal_honors_path + "?view=paper_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "File", panel_personal_honor_desktop_personal_honors_path + "?view=file", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Keywords", panel_personal_honor_desktop_personal_honors_path + "?view=keywords", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Abstract", panel_personal_honor_desktop_personal_honors_path + "?view=abstract", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1" id='ns'>New Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt remote_url" href="<%= panel_personal_honor_desktop_personal_honors_path %>">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" page-name="journal_p_list" content-layout="datalist" base-width="300" per-column="<%= @per_column.to_s %>" pagination-var="view=<%= @view_by %>&page" >
<% @honors.each do |w| %>
<%= publication_record w, @view_by%>
<% end %>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @honor, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_honor_desktop_personal_honors_path do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -1,4 +1,54 @@
en:
module_name:
personal_honor: Honor
personal_honor: Book
personal_honor:
paper_title : "Paper Title"
book_title : "Book Title"
award_name : "Award Name"
awarding_unit : "Awarding Unit"
honor_category : "Honor Category"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "Authors"
tags : "Tags"
year : "Year"
language : "Language"
isbn : "ISSN(ISBN)"
vol_no : "Vol.No"
issue_no : "Issue.No"
form_to_start : "From"
form_to_end : "To"
total_pages : "Total Pages"
keywords : "Keywords"
abstract : "Abstract"
publication_date : "Date of Publication"
url : "Reference URL"
note : "Note"
level_type : "Level Type"
author_type : "Author Type"
from : "From"
to : "To"
file : "File"
file_name : "File name"
description : "File Description"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "Successfully Create"
update_success : "Successfully Update"
delete_success : "Successfully Delete"
add: "Add"
back: "Back"
delete: "Delete"
edit: "Edit"
nothing: "Nothing"
show: "Show"
sure?: "Are you sure?"
update: "Update"
yes_: "Yes"
no_: "No"
cancel : "Cancel"
save: "save"
hintText: "Type in a search term"
noResultsText: "No results"
searchingText: "Searching…"

View File

@ -1,4 +1,54 @@
zh_tw:
module_name:
personal_honor: 榮譽
personal_honor: 期刊著作
personal_honor:
paper_title : "論文名稱"
book_title : "期刊名稱"
award_name : "Award Name"
awarding_unit : "Awarding Unit"
honor_category : "Honor Category"
extracted_chapters : "Extracted Chapters"
publishers : "Publishers"
authors : "作者"
tags : "領域"
year : "年度"
language : "語言"
isbn : "ISSN(ISBN)"
vol_no : "卷數"
issue_no : "期數"
form_to_start : "起"
form_to_end : "訖"
total_pages : "總頁數"
keywords : "關鍵字"
abstract : "摘要"
publication_date : "發表日期"
url : "參考連結"
note : "記事"
level_type : "期刊類別"
author_type : "作者類別"
from : "起"
to : "訖"
file : "檔案"
file_name : "檔案名稱"
description : "描述"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "新增完成!!"
update_success : "更新完成!!"
delete_success : "刪除成功!!"
add: "新增"
back: "返回"
delete: "刪除"
edit: "編輯"
nothing: "無"
show: "顯示"
sure?: "您肯定嗎?"
update: "更新"
yes_: "是"
no_: "否"
cancel : "取消"
save: "儲存"
hintText: "請輸入搜尋關鍵字"
noResultsText: "沒有相關的比對結果"
searchingText: "搜尋中…"

View File

@ -2,6 +2,11 @@ Rails.application.routes.draw do
namespace :panel do
namespace :personal_honor do
namespace :desktop do
match "honor_window" => "personal_honors#honors_window"
resources :personal_honors
end
namespace :back_end do
match 'honor_setting' => "honors#honor_setting" ,:as => :honor_setting

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalLab = function(target,url,cache){ // this init journal papers
this.initializePersonalLab.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalLab.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalLab.labDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalLab.cancellab = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalLab.editlab = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalLab.addlab = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalLab.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalLab.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalLab.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalLab.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalLab.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalLab.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1,115 @@
/* Books */
[page-name="books_list"] .list_t_item .inner {
padding-left: 30px; }
[page-name="books_list"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_list"] .list_item_action a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_list"] .list_item_action .icon-star-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-star {
color: #faa732;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check {
color: #333;
font-size: 20px; }
[page-name="books_list"] .file_view .list_t_des {
overflow: hidden; }
[page-name="books_list"] .file_view .file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
[page-name="books_list"] .file_view .file:hover {
background-color: #f7f7f7; }
[page-name="books_list"] .file_view .file img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px; }
[page-name="books_list"] .file_view .file .filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
/* Books Books list */
[page-name="books_books"] .datalist_item .inner {
padding-left: 30px; }
[page-name="books_books"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_books"] .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_books"] .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999; }
/* Books Co-Author */
[page-name="books_coauthor"] .list_t_item {
height: 110px; }
[page-name="books_coauthor"] .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none; }
[page-name="books_coauthor"] .info {
font-family: Arial, sans-serif; }
[page-name="books_coauthor"] .info li {
margin-bottom: 8px;
color: #999; }
[page-name="books_coauthor"] .info .name {
font-size: 18px;
line-height: 24px;
color: #333; }
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"] .edit_co_author_relation {
/*margin-left: -10px;*/ }
[page-name="books_coauthor_relation"] .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif; }

View File

@ -0,0 +1,123 @@
@import "desktop-helper";
/* Books */
[page-name="books_list"] {
.list_t_item .inner { padding-left: 30px; }
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.icon-star-empty { color: #999; font-size: 20px; }
.icon-star { color: #faa732; font-size: 20px; }
.icon-check-empty { color: #999; font-size: 20px; }
.icon-check { color: #333; font-size: 20px; }
}
.file_view {
.list_t_des {
overflow: hidden;
}
.file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
@include box-sizing;
&:hover {
background-color: lighten($gray, 10%);
}
img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px;
}
.filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
@include box-sizing;
}
}
}
}
/* Books Books list */
[page-name="books_books"] {
.datalist_item .inner {
padding-left: 30px;
}
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
.list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
}
/* Books Co-Author */
[page-name="books_coauthor"] {
.list_t_item {
height: 110px;
}
.list_item_function {}
.list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.info {
font-family: Arial, sans-serif;
}
.info li {
margin-bottom: 8px;
color: #999;
}
.info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
}
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"]{
.edit_co_author_relation {
/*margin-left: -10px;*/
}
.form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
}

View File

@ -0,0 +1,71 @@
class Panel::PersonalLab::Desktop::PersonalLabsController < ApplicationController
def index
@labs = Lab.where(create_user_id: current_user.id)
@view_by = params[:view]
page = params[:page]
page ||= 1
@per_column = 5
case @view_by
when "abstract"
@per_column = 1
when "file"
@per_column = 2
end
if @view_by.nil?
@view_by = " "
@labs = @labs.asc(:paper_title)
else
@labs = @labs.asc(@view_by).asc(:paper_title)
end
@labs = @labs.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@lab = Lab.new
render :layout => false
end
def create
params[:lab][:create_user_id] = current_user.id
@lab = Lab.new(params[:lab])
if @lab.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @lab.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@lab = Lab.find(params[:id])
render :layout => false
end
def update
params[:lab][:create_user_id] = current_user.id
@lab = Lab.new(params[:lab])
if @lab.update_attributes(params[:lab])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @lab.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@lab = Lab.find(params[:id])
@lab.destroy
render :json => {success: true, msg: t('delete_success')}
end
def lab_window
render :layout => false
end
end

View File

@ -0,0 +1,96 @@
module Panel::PersonalLab::Desktop::PersonalLabsHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "lab_title"
des = content_tag(:div, publication.lab_title,
:class => "list_t_des")
when "keywords"
des = content_tag(:div, publication.keywords,
:class => "list_t_des")
when "location"
des = content_tag(:div, publication.location,
:class => "list_t_des")
when "file"
des = content_tag(:div, link_publication_file(publication),
:class => "list_t_des")
else
end
content_tag(:div, publication.lab_title,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_lab_desktop_personal_lab_path(publication),
"callback-method" => "editlab",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "labDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_lab_desktop_personal_lab_path(publication))
end
end
def link_publication_file publication
publication.lab_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,141 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @lab.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"cancellab", "ajax-remote" => "get", :href => panel_personal_lab_desktop_personal_labs_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.fields_for :lab_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_lab.lab_title"),
class: "s_grid_12 s_grid",
value: (@lab.lab_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :location_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_lab.location"),
class: "s_grid_12 s_grid",
value: (@lab.location_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :participating_professor_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_lab.participating_professor"),
class: "s_grid_12 s_grid",
value: (@lab.participating_professor_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :participating_student_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_lab.participating_student"),
class: "s_grid_12 s_grid",
value: (@lab.participating_student_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_lab.extension_no"), class: "s_grid_4 s_grid") %><%= f.text_field :extension_no, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_lab.research_direction"), class: "s_grid_4 s_grid") %><%= f.text_field :research_direction, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_lab.facility"), class: "s_grid_4 s_grid") %><%= f.text_field :facility, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.year"), class: "s_grid_4 s_grid") %>
<%= select_year((@lab.year ? @lab.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'lab[year]',:class => 's_grid_4 s_grid'} ) %>
</li>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_lab.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= label_tag("", t("personal_lab.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_lab.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, Lab::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_lab.note"), class: "s_grid_12 s_grid s_grid_h_5"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<table class="s_table">
<thead>
<tr>
<th class="s_grid_2"><%= t("personal_lab.file")%></th>
<th class="s_grid_4"><%= t("personal_lab.file_name")%></th>
<th class="s_grid_4"><%= t("personal_lab.description") %></th>
<th class="s_grid_2"></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="4">
<div id='add_plugin_file' class="info_input plugin_files_block s_action">
<%= hidden_field_tag 'plugin_file_field_count', @lab.lab_files.count %>
<a class="add setting_btn thmc1 thmtxt w1 hh1 hp" href="#"><i class="icon-plus icon-white"></i> add</a>
</div>
</td>
</tr>
</tfoot>
<tbody>
<% @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 %>
</tbody>
</table>
</li>
</ul>
</div>
</div>
</div>
<script>
var get_html = function(old_id,new_id){
return ("<%= escape_javascript(add_attribute 'form_file', f, :lab_files) %>").replace(old_id, new_id);
}
</script>

View File

@ -0,0 +1,33 @@
<tr id="<%= "plugin_file_#{form_file.id}" if !form_file.new_record? %>" class="list_item">
<td>
<div>
<% if form_file.new_record? %>
<%= f.file_field :file, class: "s_grid_2" %>
<% end %>
</div>
</td>
<td>
<%= f.text_field :title, :class => 's_grid_4' %>
</td>
<td>
<%= f.fields_for :file_title_translations do |f| %>
<%= f.text_field locale,
class: 's_grid_4',
value: (form_file.file_title_translations[locale] rescue nil) %>
<% end %>
</td>
<td>
<span class="action">
<% if form_file.new_record? %>
<a class="delete"><i class="icon-remove"></i></a>
<% else %>
<%= f.hidden_field :id %>
<a class="remove_existing_record"><i class="icon-remove"></i></a>
<%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
<%= form_file.file.file ? ( link_to '', form_file.file.url, {:class => 'icon-eye-open', :target => '_blank', :title => t(:view)} ) : '' %>
</span>
</td>
</tr>

View File

@ -0,0 +1,3 @@
<%= form_for @lab, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_lab_desktop_personal_labs_path(@lab) do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,83 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all" ajax-remote="false" callback-method="allnone">All</a></li>
<li><a class="hp hh1 admtxt" href="none" ajax-remote="false" callback-method="allnone">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><%= link_to "Title", panel_personal_lab_desktop_personal_labs_path + "?view=lab_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "File", panel_personal_lab_desktop_personal_labs_path + "?view=file", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Keywords", panel_personal_lab_desktop_personal_labs_path + "?view=keywords", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Location", panel_personal_lab_desktop_personal_labs_path + "?view=location", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1" id='ns'>New Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt remote_url" href="<%= panel_personal_lab_desktop_personal_labs_path %>">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" page-name="journal_p_list" content-layout="datalist" base-width="300" per-column="<%= @per_column.to_s %>" pagination-var="view=<%= @view_by %>&page" >
<% @labs.each do |w| %>
<%= publication_record w, @view_by%>
<% end %>
</div>

View File

@ -1,8 +1,10 @@
<div id="research_p">
<%= stylesheet_link_tag "/assets/personal_lab/desktop/personal_lab" %>
<%= javascript_include_tag "personal_lab/desktop/personal_lab" %>
<div id="books">
<div id="content">
<div id="header" class="hh2">
<div class="dtitle w2 hh2 hp">
<span class="thmtxth">Research Projects</span>
<span class="thmtxth">Books</span>
</div>
<div id="search_app" class="hfn w2 hh1 hp thmc3">
<input type="text" class="ini_input form" value="Search" id="searchbox" />
@ -13,14 +15,14 @@
<div id="panel_l" class="ph">
<div class="s_menu sm_v" content-type="menu">
<ul id='setting_left_nav'>
<li><a href="<%= desktop_publications_research_p_list_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" onclick='return false;'>List</a></li>
<li><a href="<%= desktop_publications_research_p_add_path %>" callback-method="add_this" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Projects</a></li>
<li><a href="<%= panel_personal_lab_desktop_personal_labs_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" load="true" onclick='return false;'>List</a></li>
<li><a href="<%= new_panel_personal_lab_desktop_personal_lab_path %>" callback-method="addlab" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<!-- <li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Books</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Co-Authors</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Analysis</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Import</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li> -->
</ul>
</div>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @lab, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_lab_desktop_personal_labs_path do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -1,4 +1,57 @@
en:
module_name:
personal_lab: Lab
personal_lab: Lab
personal_lab:
book_title : "Book Title"
lab_title : "Lab Title"
extracted_chapters : "Extracted Chapters"
location : "Location"
participating_professor : "Participating Professor"
participating_student : "Participating Student"
extension_no : "Extension Number"
research_direction : "Research Direction"
facility : "Facility"
publishers : "Publishers"
authors : "Authors"
tags : "Tags"
year : "Year"
language : "Language"
isbn : "ISSN(ISBN)"
vol_no : "Vol.No"
issue_no : "Issue.No"
form_to_start : "From"
form_to_end : "To"
total_pages : "Total Pages"
keywords : "Keywords"
abstract : "Abstract"
publication_date : "Date of Publication"
url : "Reference URL"
note : "Note"
level_type : "Level Type"
author_type : "Author Type"
from : "From"
to : "To"
file : "File"
file_name : "File name"
description : "File Description"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "Successfully Create"
update_success : "Successfully Update"
delete_success : "Successfully Delete"
add: "Add"
back: "Back"
delete: "Delete"
edit: "Edit"
nothing: "Nothing"
show: "Show"
sure?: "Are you sure?"
update: "Update"
yes_: "Yes"
no_: "No"
cancel : "Cancel"
save: "save"
hintText: "Type in a search term"
noResultsText: "No results"
searchingText: "Searching…"

View File

@ -1,4 +1,57 @@
zh_tw:
module_name:
personal_lab: 實驗室
personal_lab: Lab
personal_lab:
book_title : "期刊名稱"
lab_title : "Lab Title"
extracted_chapters : "Extracted Chapters"
participating_professor : "Participating Professor"
participating_student : "Participating Student"
research_direction : "Research Direction"
facility : "Facility"
extension_no : "Extension Number"
location : "Location"
publishers : "Publishers"
authors : "作者"
tags : "領域"
year : "年度"
language : "語言"
isbn : "ISSN(ISBN)"
vol_no : "卷數"
issue_no : "期數"
form_to_start : "起"
form_to_end : "訖"
total_pages : "總頁數"
keywords : "關鍵字"
abstract : "摘要"
publication_date : "發表日期"
url : "參考連結"
note : "記事"
level_type : "期刊類別"
author_type : "作者類別"
from : "起"
to : "訖"
file : "檔案"
file_name : "檔案名稱"
description : "描述"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "新增完成!!"
update_success : "更新完成!!"
delete_success : "刪除成功!!"
add: "新增"
back: "返回"
delete: "刪除"
edit: "編輯"
nothing: "無"
show: "顯示"
sure?: "您肯定嗎?"
update: "更新"
yes_: "是"
no_: "否"
cancel : "取消"
save: "儲存"
hintText: "請輸入搜尋關鍵字"
noResultsText: "沒有相關的比對結果"
searchingText: "搜尋中…"

View File

@ -2,6 +2,10 @@ Rails.application.routes.draw do
namespace :panel do
namespace :personal_lab do
namespace :desktop do
match "lab_window" => "personal_labs#lab_window"
resources :personal_labs
end
namespace :back_end do
match 'lab_setting' => "labs#lab_setting" ,:as => :lab_setting

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalPatent = function(target,url,cache){ // this init journal papers
this.initializePersonalPatent.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalPatent.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalPatent.patentDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalPatent.cancelpatent = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalPatent.editpatent = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalPatent.addpatent = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalPatent.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalPatent.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalPatent.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalPatent.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalPatent.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalPatent.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1,115 @@
/* Books */
[page-name="books_list"] .list_t_item .inner {
padding-left: 30px; }
[page-name="books_list"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_list"] .list_item_action a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_list"] .list_item_action .icon-star-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-star {
color: #faa732;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check {
color: #333;
font-size: 20px; }
[page-name="books_list"] .file_view .list_t_des {
overflow: hidden; }
[page-name="books_list"] .file_view .file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
[page-name="books_list"] .file_view .file:hover {
background-color: #f7f7f7; }
[page-name="books_list"] .file_view .file img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px; }
[page-name="books_list"] .file_view .file .filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
/* Books Books list */
[page-name="books_books"] .datalist_item .inner {
padding-left: 30px; }
[page-name="books_books"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_books"] .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_books"] .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999; }
/* Books Co-Author */
[page-name="books_coauthor"] .list_t_item {
height: 110px; }
[page-name="books_coauthor"] .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none; }
[page-name="books_coauthor"] .info {
font-family: Arial, sans-serif; }
[page-name="books_coauthor"] .info li {
margin-bottom: 8px;
color: #999; }
[page-name="books_coauthor"] .info .name {
font-size: 18px;
line-height: 24px;
color: #333; }
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"] .edit_co_author_relation {
/*margin-left: -10px;*/ }
[page-name="books_coauthor_relation"] .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif; }

View File

@ -0,0 +1,123 @@
@import "desktop-helper";
/* Books */
[page-name="books_list"] {
.list_t_item .inner { padding-left: 30px; }
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.icon-star-empty { color: #999; font-size: 20px; }
.icon-star { color: #faa732; font-size: 20px; }
.icon-check-empty { color: #999; font-size: 20px; }
.icon-check { color: #333; font-size: 20px; }
}
.file_view {
.list_t_des {
overflow: hidden;
}
.file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
@include box-sizing;
&:hover {
background-color: lighten($gray, 10%);
}
img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px;
}
.filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
@include box-sizing;
}
}
}
}
/* Books Books list */
[page-name="books_books"] {
.datalist_item .inner {
padding-left: 30px;
}
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
.list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
}
/* Books Co-Author */
[page-name="books_coauthor"] {
.list_t_item {
height: 110px;
}
.list_item_function {}
.list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.info {
font-family: Arial, sans-serif;
}
.info li {
margin-bottom: 8px;
color: #999;
}
.info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
}
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"]{
.edit_co_author_relation {
/*margin-left: -10px;*/
}
.form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
}

View File

@ -0,0 +1,71 @@
class Panel::PersonalPatent::Desktop::PersonalPatentsController < ApplicationController
def index
@patents = WritingPatent.where(create_user_id: current_user.id)
@view_by = params[:view]
page = params[:page]
page ||= 1
@per_column = 5
case @view_by
when "abstract"
@per_column = 1
when "file"
@per_column = 2
end
if @view_by.nil?
@view_by = " "
@patents = @patents.asc(:paper_title)
else
@patents = @patents.asc(@view_by).asc(:paper_title)
end
@patents = @patents.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@patent = WritingPatent.new
render :layout => false
end
def create
params[:writing_patent][:create_user_id] = current_user.id
@patent = WritingPatent.new(params[:writing_patent])
if @patent.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @patent.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@patent = WritingPatent.find(params[:id])
render :layout => false
end
def update
params[:writing_patent][:create_user_id] = current_user.id
@patent = WritingPatent.new(params[:writing_patent])
if @patent.update_attributes(params[:writing_patent])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @patent.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@patent = WritingPatent.find(params[:id])
@patent.destroy
render :json => {success: true, msg: t('delete_success')}
end
def patent_window
render :layout => false
end
end

View File

@ -0,0 +1,96 @@
module Panel::PersonalPatent::Desktop::PersonalPatentsHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "patent_title"
des = content_tag(:div, publication.patent_title,
:class => "list_t_des")
when "keywords"
des = content_tag(:div, publication.keywords,
:class => "list_t_des")
when "abstract"
des = content_tag(:div, publication.abstract,
:class => "list_t_des")
when "file"
des = content_tag(:div, link_publication_file(publication),
:class => "list_t_des")
else
end
content_tag(:div, publication.patent_title,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_patent_desktop_personal_patent_path(publication),
"callback-method" => "editpatent",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "patentDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_patent_desktop_personal_patent_path(publication))
end
end
def link_publication_file publication
publication.writing_patent_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,120 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @patent.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"cancelpatent", "ajax-remote" => "get", :href => panel_personal_patent_desktop_personal_patents_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.fields_for :patent_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_patent.patent_title"),
class: "s_grid_12 s_grid",
value: (@patent.patent_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_patent.patent_no"), class: "s_grid_4 s_grid") %><%= f.text_field :patent_no, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_patent.patent_country"), class: "s_grid_4 s_grid") %><%= f.text_field :patent_country, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_patent.publication_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :publish_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :publish_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_patent.patent_category"), class: "s_grid_4 s_grid") %>
<%= f.select :writing_patent_category_id, WritingPatentCategory.all.collect {|t| [ t.title, t.id ]}, {:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.year"), class: "s_grid_4 s_grid") %>
<%= select_year((@patent.year ? @patent.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'writing_patent[year]',:class => 's_grid_4 s_grid'} ) %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_patent.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_patent.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_patent.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, WritingPatent::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_patent.note"), class: "s_grid_12 s_grid s_grid_h_5"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<table class="s_table">
<thead>
<tr>
<th class="s_grid_2"><%= t("personal_patent.file")%></th>
<th class="s_grid_4"><%= t("personal_patent.file_name")%></th>
<th class="s_grid_4"><%= t("personal_patent.description") %></th>
<th class="s_grid_2"></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="4">
<div id='add_plugin_file' class="info_input plugin_files_block s_action">
<%= hidden_field_tag 'plugin_file_field_count', @patent.writing_patent_files.count %>
<a class="add setting_btn thmc1 thmtxt w1 hh1 hp" href="#"><i class="icon-plus icon-white"></i> add</a>
</div>
</td>
</tr>
</tfoot>
<tbody>
<% @patent.writing_patent_files.each_with_index do |writing_patent_file, i| %>
<%= f.fields_for :writing_patent_files, writing_patent_file do |f| %>
<%= render :partial => 'form_file', :object => writing_patent_file, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
</tbody>
</table>
</li>
</ul>
</div>
</div>
</div>
<script>
var get_html = function(old_id,new_id){
return ("<%= escape_javascript(add_attribute 'form_file', f, :writing_patent_files) %>").replace(old_id, new_id);
}
</script>

View File

@ -0,0 +1,33 @@
<tr id="<%= "plugin_file_#{form_file.id}" if !form_file.new_record? %>" class="list_item">
<td>
<div>
<% if form_file.new_record? %>
<%= f.file_field :file, class: "s_grid_2" %>
<% end %>
</div>
</td>
<td>
<%= f.text_field :title, :class => 's_grid_4' %>
</td>
<td>
<%= f.fields_for :file_title_translations do |f| %>
<%= f.text_field locale,
class: 's_grid_4',
value: (form_file.file_title_translations[locale] rescue nil) %>
<% end %>
</td>
<td>
<span class="action">
<% if form_file.new_record? %>
<a class="delete"><i class="icon-remove"></i></a>
<% else %>
<%= f.hidden_field :id %>
<a class="remove_existing_record"><i class="icon-remove"></i></a>
<%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
<%= form_file.file.file ? ( link_to '', form_file.file.url, {:class => 'icon-eye-open', :target => '_blank', :title => t(:view)} ) : '' %>
</span>
</td>
</tr>

View File

@ -0,0 +1,3 @@
<%= form_for @patent, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_patent_desktop_personal_patents_path(@patent) do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,82 @@
<div class="toolbar hh1">
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-check"></span></div>
<div class="admbg sdm_o">
<ul id="journal_selection_options">
<li><a class="hp hh1 admtxt" href="all" ajax-remote="false" callback-method="allnone">All</a></li>
<li><a class="hp hh1 admtxt" href="none" ajax-remote="false" callback-method="allnone">None</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">More</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Delete</a></li>
<li><a class="hp hh1 admtxt" href="">Tag</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Tag</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Starred</a></li>
<li><a class="hp hh1 admtxt" href="">MIT</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Status</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">All</a></li>
<li><a class="hp hh1 admtxt" href="">Published</a></li>
<li><a class="hp hh1 admtxt" href="">Pending</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">View</div>
<div class="admbg sdm_o">
<ul id="journal_view_selection">
<li><%= link_to "Title", panel_personal_patent_desktop_personal_patents_path + "?view=patent_title", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "File", panel_personal_patent_desktop_personal_patents_path + "?view=file", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
<li><%= link_to "Keywords", panel_personal_patent_desktop_personal_patents_path + "?view=keywords", :class => "hp hh1 admtxt", "ajax-remote" => "get" %></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1" id='ns'>New Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt remote_url" href="<%= panel_personal_patent_desktop_personal_patents_path %>">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" page-name="journal_p_list" content-layout="datalist" base-width="300" per-column="<%= @per_column.to_s %>" pagination-var="view=<%= @view_by %>&page" >
<% @patents.each do |w| %>
<%= publication_record w, @view_by%>
<% end %>
</div>

View File

@ -0,0 +1,3 @@
<%= form_for @patent, html: { multipart: true, "form-type"=>"ajax_form", "callback-method"=>"formCallback"}, url: panel_personal_patent_desktop_personal_patents_path do |f| %>
<%= render partial: 'form', locals: {:f => f} %>
<%end%>

View File

@ -0,0 +1,35 @@
<%= stylesheet_link_tag "/assets/personal_patent/desktop/personal_patent" %>
<%= javascript_include_tag "personal_patent/desktop/personal_patent" %>
<div id="patent">
<div id="content">
<div id="header" class="hh2">
<div class="dtitle w2 hh2 hp">
<span class="thmtxth">Patents</span>
</div>
<div id="search_app" class="hfn w2 hh1 hp thmc3">
<input type="text" class="ini_input form" value="Search" id="searchbox" />
<input type="submit" class="ini_input submit thmc1" value="Submit"/>
</div>
</div>
<div id="holder">
<div id="panel_l" class="ph">
<div class="s_menu sm_v" content-type="menu">
<ul id='setting_left_nav'>
<li><a href="<%= panel_personal_patent_desktop_personal_patents_path %>" callback-method="list" class="hh1 w2 hp active thmc1 thmtxt" load="true" onclick='return false;'>List</a></li>
<li><a href="<%= new_panel_personal_patent_desktop_personal_patent_path %>" callback-method="addpatent" class="admtxt hh1 w2 hp" onclick='return false;'>Add/Edit</a></li>
<!-- <li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Books</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Co-Authors</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Tags &amp; Keywords</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Analysis</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Import</a></li>
<li><a href="" class="admtxt hh1 w2 hp" onclick='return false;'>Export</a></li> -->
</ul>
</div>
</div>
<div id="panel_r" container="true" class="ph pw admbg hp">
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>

View File

@ -1,4 +1,54 @@
en:
module_name:
personal_patent: Patent
personal_patent: Patent
personal_patent:
patent_title : "Patent Title"
book_title : "Book Title"
extracted_chapters : "Extracted Chapters"
patent_no : "Patent Number"
patent_country : "Patent Country"
patent_category : "Patent Category"
publishers : "Publishers"
authors : "Authors"
tags : "Tags"
year : "Year"
language : "Language"
isbn : "ISSN(ISBN)"
vol_no : "Vol.No"
issue_no : "Issue.No"
form_to_start : "From"
form_to_end : "To"
total_pages : "Total Pages"
keywords : "Keywords"
abstract : "Abstract"
publication_date : "Date of Publication"
url : "Reference URL"
note : "Note"
level_type : "Level Type"
author_type : "Author Type"
from : "From"
to : "To"
file : "File"
file_name : "File name"
description : "File Description"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "Successfully Create"
update_success : "Successfully Update"
delete_success : "Successfully Delete"
add: "Add"
back: "Back"
delete: "Delete"
edit: "Edit"
nothing: "Nothing"
show: "Show"
sure?: "Are you sure?"
update: "Update"
yes_: "Yes"
no_: "No"
cancel : "Cancel"
save: "save"
hintText: "Type in a search term"
noResultsText: "No results"
searchingText: "Searching…"

View File

@ -1,4 +1,54 @@
zh_tw:
module_name:
personal_patent: 專利
personal_patent: Patent
personal_patent:
patent_title : "Patent Title"
book_title : "期刊名稱"
extracted_chapters : "Extracted Chapters"
patent_no : "Patent Number"
patent_country : "Patent Country"
patent_category : "Patent Category"
publishers : "Publishers"
authors : "作者"
tags : "領域"
year : "年度"
language : "語言"
isbn : "ISSN(ISBN)"
vol_no : "卷數"
issue_no : "期數"
form_to_start : "起"
form_to_end : "訖"
total_pages : "總頁數"
keywords : "關鍵字"
abstract : "摘要"
publication_date : "發表日期"
url : "參考連結"
note : "記事"
level_type : "期刊類別"
author_type : "作者類別"
from : "起"
to : "訖"
file : "檔案"
file_name : "檔案名稱"
description : "描述"
pages : "Pages"
book_paper_type : "Book Paper Type"
create_success : "新增完成!!"
update_success : "更新完成!!"
delete_success : "刪除成功!!"
add: "新增"
back: "返回"
delete: "刪除"
edit: "編輯"
nothing: "無"
show: "顯示"
sure?: "您肯定嗎?"
update: "更新"
yes_: "是"
no_: "否"
cancel : "取消"
save: "儲存"
hintText: "請輸入搜尋關鍵字"
noResultsText: "沒有相關的比對結果"
searchingText: "搜尋中…"

View File

@ -2,6 +2,10 @@ Rails.application.routes.draw do
namespace :panel do
namespace :personal_patent do
namespace :desktop do
match "patent_window" => "personal_patents#patent_window"
resources :personal_patents
end
namespace :back_end do
match 'writing_patent_setting' => "writing_patents#writing_patent_setting" ,:as => :writing_patent_setting

View File

@ -0,0 +1,158 @@
orbitDesktop.prototype.initializePersonalProject = function(target,url,cache){ // this init journal papers
this.initializePersonalProject.formCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalProject.list = function(){ // to open list part in journal papers page
var journalData;
var bindHandlers = function(){ // to bind handlers for list page
}
bindHandlers();
var bindSecondaryHandlers = function(){
$("#journal_p div#paper_list a.icon-check-empty").click(function(){
if($(this).hasClass("icon-check-empty")){
$(this).switchClass("icon-check-empty","icon-check",0);
} else if($(this) .hasClass("icon-check")) {
$(this).switchClass("icon-check","icon-check-empty",0);
} else if($(this).hasClass("icon-star")){
$(this).removeClass("icon-star").addClass("icon-star-empty");
} else if($(this).hasClass("icon-star-empty")){
$(this).removeClass("icon-star-empty").addClass("icon-star");
}
return false;
})
}
}
this.initializePersonalProject.projectDelete = function(data,dom){
var parent = dom.parent().parent();
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
}
}
this.initializePersonalProject.cancelproject = function(){
o.highlight_sub_menu_item(0);
}
this.initializePersonalProject.editproject = function(){
o.highlight_sub_menu_item(1);
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
var preData = function(){
$("#writing_journal_author_tokens").select2('data', JSON.parse($("#writing_journal_author_tokens").attr('data-pre')));
}
uploadFiles();
// preData();
}
this.initializePersonalProject.addproject = function(){ // to open add pages in journal papers page
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
var old_id = new RegExp("new_writing_journal_files", "g");
$(this).prev().attr('value', parseInt(new_id) + 1);
var x = get_html(old_id,new_id);
var newfield = $(x);
$(this).parents('table').append(newfield);
newfield.find('.action a.delete').click(function(){
newfield.remove();
});
return false;
});
$('.action a.remove_existing_record').click(function(){
$(this).next('.should_destroy').attr('value', 1);
$("tr#add_plugin_file_" + $(this).prev().attr('value')).hide();
});
}
// console.log("hi");
var bindHandlers = function(){
}
bindHandlers();
uploadFiles();
}
this.initializePersonalProject.coAuthorformCallback = function(data){
if(data.success){
o.notify(data.msg,"success");
o.sub_menu_item($("div[content-type=menu] a").eq(3));
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalProject.coauthor = function(){ // to open add pages in coauthor page
var bindHandlers = function(){ // to bind handlers for add page
}
bindHandlers();
}
this.initializePersonalProject.coauthorRelationForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalProject.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
var x = o.layout_data.generate_layout_html(data.newvalue);
$("div[container=true] div.overview").html(x.markup);
}else{
o.notify(data.msg,"alert");
}
}
this.initializePersonalProject.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
this.initializePersonalProject.allnone = function(d,o){
switch(o.attr("href")){
case "all":
$("div.overview a.icon-check-empty").removeClass("icon-check-empty").addClass("icon-check");
break;
case "none":
$("div.overview a.icon-check").removeClass("icon-check").addClass("icon-check-empty");
break;
}
}
};

View File

@ -0,0 +1,115 @@
/* Books */
[page-name="books_list"] .list_t_item .inner {
padding-left: 30px; }
[page-name="books_list"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_list"] .list_item_action a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_list"] .list_item_action .icon-star-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-star {
color: #faa732;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check-empty {
color: #999;
font-size: 20px; }
[page-name="books_list"] .list_item_action .icon-check {
color: #333;
font-size: 20px; }
[page-name="books_list"] .file_view .list_t_des {
overflow: hidden; }
[page-name="books_list"] .file_view .file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
[page-name="books_list"] .file_view .file:hover {
background-color: #f7f7f7; }
[page-name="books_list"] .file_view .file img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px; }
[page-name="books_list"] .file_view .file .filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
-webkit-box-sizing: border-box;
/* webkit */
-khtml-box-sizing: border-box;
/* konqueror */
-moz-box-sizing: border-box;
/* firefox */
-ms-box-sizing: border-box;
/* ie */
box-sizing: border-box;
/* css3 */ }
/* Books Books list */
[page-name="books_books"] .datalist_item .inner {
padding-left: 30px; }
[page-name="books_books"] .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px; }
[page-name="books_books"] .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px; }
[page-name="books_books"] .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999; }
/* Books Co-Author */
[page-name="books_coauthor"] .list_t_item {
height: 110px; }
[page-name="books_coauthor"] .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none; }
[page-name="books_coauthor"] .info {
font-family: Arial, sans-serif; }
[page-name="books_coauthor"] .info li {
margin-bottom: 8px;
color: #999; }
[page-name="books_coauthor"] .info .name {
font-size: 18px;
line-height: 24px;
color: #333; }
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"] .edit_co_author_relation {
/*margin-left: -10px;*/ }
[page-name="books_coauthor_relation"] .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif; }

View File

@ -0,0 +1,123 @@
@import "desktop-helper";
/* Books */
[page-name="books_list"] {
.list_t_item .inner { padding-left: 30px; }
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
a {
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.icon-star-empty { color: #999; font-size: 20px; }
.icon-star { color: #faa732; font-size: 20px; }
.icon-check-empty { color: #999; font-size: 20px; }
.icon-check { color: #333; font-size: 20px; }
}
.file_view {
.list_t_des {
overflow: hidden;
}
.file {
float: left;
width: 120px;
height: 50px;
padding: 6px;
margin: 1px;
position: relative;
@include box-sizing;
&:hover {
background-color: lighten($gray, 10%);
}
img {
width: 38px;
height: 38px;
position: absolute;
left: 6px;
top: 6px;
}
.filetitle {
display: block;
width: 100%;
height: 38px;
padding-left: 40px;
overflow: hidden;
@include box-sizing;
}
}
}
}
/* Books Books list */
[page-name="books_books"] {
.datalist_item .inner {
padding-left: 30px;
}
.list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
.list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
.list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
}
/* Books Co-Author */
[page-name="books_coauthor"] {
.list_t_item {
height: 110px;
}
.list_item_function {}
.list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.info {
font-family: Arial, sans-serif;
}
.info li {
margin-bottom: 8px;
color: #999;
}
.info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
}
/* Books Co-Author Relationship*/
[page-name="books_coauthor_relation"]{
.edit_co_author_relation {
/*margin-left: -10px;*/
}
.form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
}

View File

@ -0,0 +1,71 @@
class Panel::PersonalProject::Desktop::PersonalProjectsController < ApplicationController
def index
@projects = Project.where(create_user_id: current_user.id)
@view_by = params[:view]
page = params[:page]
page ||= 1
@per_column = 5
case @view_by
when "abstract"
@per_column = 1
when "file"
@per_column = 2
end
if @view_by.nil?
@view_by = " "
@projects = @projects.asc(:paper_title)
else
@projects = @projects.asc(@view_by).asc(:paper_title)
end
@projects = @projects.page(page).per(50)
respond_to do |format|
format.html { render :layout => false}
end
end
def new
@project = Project.new
render :layout => false
end
def create
params[:project][:create_user_id] = current_user.id
@project = Project.new(params[:project])
if @project.save
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @project.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def edit
@project = Project.find(params[:id])
render :layout => false
end
def update
params[:project][:create_user_id] = current_user.id
@project = Project.new(params[:project])
if @project.update_attributes(params[:project])
render json: {success: true, msg: t('create_success')}.to_json
else
error_msg = @project.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def destroy
@personal_book = Project.find(params[:id])
@personal_book.destroy
render :json => {success: true, msg: t('delete_success')}
end
def project_window
render :layout => false
end
end

View File

@ -0,0 +1,96 @@
module Panel::PersonalProject::Desktop::PersonalProjectsHelper
def publication_record publication, view
content_tag :li,
"item" => "true",
:class => "list_t_item" do
marker + \
content(publication, view) + \
edit_or_delete(publication)
end
end
def marker
content_tag :div,
:class => "list_item_action" do
content_tag(:a, "",:href=>"",
:class => "icon-check-empty",
"toggle-onclick"=>"icon-check-empty icon-check",
"ajax-remote"=>"false") + \
content_tag(:a, "",:href=>"",
:class => "icon-star-empty",
"toggle-onclick"=>"icon-star-empty icon-star",
"ajax-remote"=>"false")
end
end
def content publication, view
case view
when "project_title"
des = content_tag(:div, publication.project_title,
:class => "list_t_des")
when "job_title"
des = content_tag(:div, publication.job_title,
:class => "list_t_des")
when "keywords"
des = content_tag(:div, publication.keywords,
:class => "list_t_des")
when "file"
des = content_tag(:div, link_publication_file(publication),
:class => "list_t_des")
else
end
content_tag(:div, publication.project_title,
:class => "list_t_title") + des
end
def edit_or_delete publication
content_tag :div,
:class => "list_item_function" do
content_tag(:a, t("edit"),
:class => "journal_paper_edit admbg2 admtxt",
:href => edit_panel_personal_project_desktop_personal_project_path(publication),
"callback-method" => "editproject",
"ajax-remote" => "get") + \
content_tag(:a, t(:delete_),
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "projectDelete",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_project_desktop_personal_project_path(publication))
end
end
def link_publication_file publication
publication.project_files.map{|file|
link_to(image_tag(check_file_type(file.file.url)) + \
content_tag(:span, file.title, :class => "filetitle"),
file.file.url,
:class => "file",
"target" => "_blank")
}.inject(:+)
end
def check_file_type file
if not file.nil?
file_type = MIME::Types.type_for(file).first.to_s.split("/")[1]
file_type = "/assets/ft-icons/#{file_type}/#{file_type}-48_32.png"
else
file_type = ""
end
end
def generate_authors_name ids
author_name = ids.map{|m|
if m == "0"
#{:id => 0, :text => current_user.name, :email => current_user.email }
{:id => 0, :text => current_user.name }
else
#{:id => m, :text => ConferenceCoAuthor.find(m).co_author, :email => ConferenceCoAuthor.find(m).email}
{:id => m, :text => ConferenceCoAuthor.find(m).co_author}
end
}
author_name.to_json
end
end

View File

@ -0,0 +1,155 @@
<div class="toolbar hh1">
<div class="fn_g hp">
<%= f.submit t("save"), name: "commit", class: "fn_btn ini_input hp hh1 thmc2 thmtxt" %>
<% if not @project.new_record? %>
<%= submit_tag t("cancel"), :type => "button", "callback-method"=>"cancelproject", "ajax-remote" => "get", :href => panel_personal_project_desktop_personal_projects_path, class: "fn_btn ini_input hp hh1 admbg2 admtxt" %>
<% end %>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1">Share</div>
<div class="admbg sdm_o">
<ul>
<li><a class="hp hh1 admtxt" href="">Full</a></li>
<li><a class="hp hh1 admtxt" href="">Abstract</a></li>
<li><a class="hp hh1 admtxt" href="">Friends</a></li>
<li><a class="hp hh1 admtxt" href="">Private</a></li>
<li><a class="hp hh1 admtxt" href="">Group</a></li>
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
</div>
<div class="overview" content-layout="column" base-width="420">
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.fields_for :project_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_project.project_title"),
class: "s_grid_12 s_grid",
value: (@project.project_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :job_title_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_project.job_title"),
class: "s_grid_12 s_grid",
value: (@project.job_title_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :participator_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_project.participator"),
class: "s_grid_12 s_grid",
value: (@project.participator_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= f.fields_for :unit_translations do |f| %>
<%= f.text_field locale,
size: "20",
placeholder: t("personal_project.unit"),
class: "s_grid_12 s_grid",
value: (@project.unit_translations[locale.to_s] rescue nil) %>
<% end %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.start_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :period_start_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :period_start_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.end_date"), class: "s_grid_4 s_grid") %>
<%= f.date_select :period_end_date, {:use_month_numbers => true, :start_year => Time.now.year, :end_year => 1930, :order => [:year] }, {:class => 's_grid_4 s_grid'} %>
<%= f.date_select :period_end_date, {:use_month_numbers => true, :order => [:month, :day] }, {:class => 's_grid_2 s_grid'} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.year"), class: "s_grid_4 s_grid") %>
<%= select_year((@project.year ? @project.year.to_i : DateTime.now.year), {:start_year => DateTime.now.year, :end_year => 1930}, {:name => 'lab[year]',:class => 's_grid_4 s_grid'} ) %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.project_category"), class: "s_grid_4 s_grid") %>
<%= f.select :project_category_id, ProjectCategory.all.collect {|t| [ t.title, t.id ]}, {:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= label_tag("", t("personal_project.url"), class: "s_grid_4 s_grid") %><%= f.text_field :url, size: "20", class: "s_grid_8 s_grid"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :keywords, size: "20x3", placeholder: t("personal_project.keywords"), class: "s_grid_12 s_grid_h_2 s_grid"%>
</li>
<li class="s_grid_row">
<%= f.label :language, t("personal_project.language"), :class => "s_grid s_grid_4" %>
<%= f.select :language, Project::LANGUAGE_TYPES,{} ,{:class => "s_grid s_grid_8"} %>
</li>
<li class="s_grid_row">
<%= f.text_area :note, size: "20x3", placeholder: t("personal_project.note"), class: "s_grid_12 s_grid s_grid_h_7"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<%= f.text_area :abstract, size: "20x22", placeholder: t("personal_project.abstract"), class: "s_grid_12 s_grid s_grid_h_10"%>
</li>
</ul>
</div>
</div>
<div column="true">
<div class="s_form">
<ul>
<li class="s_grid_row">
<table class="s_table">
<thead>
<tr>
<th class="s_grid_2"><%= t("personal_project.file")%></th>
<th class="s_grid_4"><%= t("personal_project.file_name")%></th>
<th class="s_grid_4"><%= t("personal_project.description") %></th>
<th class="s_grid_2"></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="4">
<div id='add_plugin_file' class="info_input plugin_files_block s_action">
<%= hidden_field_tag 'plugin_file_field_count', @project.project_files.count %>
<a class="add setting_btn thmc1 thmtxt w1 hh1 hp" href="#"><i class="icon-plus icon-white"></i> add</a>
</div>
</td>
</tr>
</tfoot>
<tbody>
<% @project.project_files.each_with_index do |project_file, i| %>
<%= f.fields_for :project_files, project_file do |f| %>
<%= render :partial => 'form_file', :object => project_file, :locals => {:f => f, :i => i} %>
<% end %>
<% end %>
</tbody>
</table>
</li>
</ul>
</div>
</div>
</div>
<script>
var get_html = function(old_id,new_id){
return ("<%= escape_javascript(add_attribute 'form_file', f, :project_files) %>").replace(old_id, new_id);
}
</script>

View File

@ -0,0 +1,33 @@
<tr id="<%= "plugin_file_#{form_file.id}" if !form_file.new_record? %>" class="list_item">
<td>
<div>
<% if form_file.new_record? %>
<%= f.file_field :file, class: "s_grid_2" %>
<% end %>
</div>
</td>
<td>
<%= f.text_field :title, :class => 's_grid_4' %>
</td>
<td>
<%= f.fields_for :file_title_translations do |f| %>
<%= f.text_field locale,
class: 's_grid_4',
value: (form_file.file_title_translations[locale] rescue nil) %>
<% end %>
</td>
<td>
<span class="action">
<% if form_file.new_record? %>
<a class="delete"><i class="icon-remove"></i></a>
<% else %>
<%= f.hidden_field :id %>
<a class="remove_existing_record"><i class="icon-remove"></i></a>
<%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
<%= form_file.file.file ? ( link_to '', form_file.file.url, {:class => 'icon-eye-open', :target => '_blank', :title => t(:view)} ) : '' %>
</span>
</td>
</tr>

Some files were not shown because too many files have changed in this diff Show More