15 Commits
Author SHA1 Message Date
manson666 a7de28686d Fix Sync auto rescue timeout and filter user email for ntu only 2014-01-23 11:59:59 +08:00
manson666 764dac659b Fix Sync timeout issue 2014-01-23 11:59:59 +08:00
manson666 da75ac771c Fix sync auto not deleting old data 2014-01-23 11:59:59 +08:00
manson666 3375a41106 Fix sync auto 2014-01-23 11:59:59 +08:00
Manson Wang ed8b42e948 Import teacher data 2014-01-23 11:59:59 +08:00
Spen 198c302891 ntu coph sso 2014-01-23 11:59:59 +08:00
Spen e4aea37b00 ntu coph member plugin data sync 2014-01-23 11:59:58 +08:00
harrybomrah 2ef59530a5 sync button added for desktop and also fixed a little bug.. 2014-01-23 11:59:58 +08:00
Manson Wang 6ce6852c9d Desktop sync button.. not finished 2014-01-23 11:59:58 +08:00
harrybomrah 5de7fcfaf6 added sync for journal paper books and conference.. and also disabled the icons
Conflicts:
	app/assets/javascripts/desktop/orbitdesktop.js
	app/controllers/admin/import_data_controller.rb

Conflicts:
	vendor/built_in_modules/personal_book/app/controllers/panel/personal_book/desktop/personal_books_controller.rb
	vendor/built_in_modules/personal_book/app/views/panel/personal_book/desktop/personal_books/index.html.erb
	vendor/built_in_modules/personal_conference/app/assets/javascripts/personal_conference/desktop/conference_pages.js
	vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/desktop/conference_pages/index.html.erb
	vendor/built_in_modules/personal_journal/app/assets/javascripts/personal_journal/desktop/journal_pages.js
	vendor/built_in_modules/personal_journal/app/controllers/panel/personal_journal/desktop/journal_pages_controller.rb
	vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/desktop/journal_pages/index.html.erb
2014-01-23 11:59:58 +08:00
Manson Wang 668c1e7d75 Added sync button in personal plugin back_end
Conflicts:
	config/locales/en.yml
	config/locales/zh_tw.yml
	vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/_profile.html.erb
	vendor/built_in_modules/personal_conference/app/views/panel/personal_conference/plugin/_profile.html.erb
	vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/_profile.html.erb
2014-01-23 11:59:58 +08:00
saurabhbhatia 56ad1ddd91 Updated Import data without page method 2014-01-23 11:59:58 +08:00
saurabhbhatia c3ece3b7af both manual and automatic methods working
Conflicts:
	config/routes.rb
2014-01-23 11:59:58 +08:00
saurabhbhatia 3b73fab8e2 Added Automatic Synchronize
Conflicts:
	Gemfile
	app/controllers/admin/import_data_controller.rb
	vendor/built_in_modules/personal_conference/app/models/writing_conference.rb

Conflicts:
	Gemfile
	app/controllers/admin/import_data_controller.rb
2014-01-23 11:59:58 +08:00
saurabhbhatia 5fee058006 Import Data, Sync Data
Conflicts:
	config/mongoid.yml
	vendor/built_in_modules/personal_book/app/models/writing_book.rb
	vendor/built_in_modules/personal_conference/app/models/writing_conference.rb
	vendor/built_in_modules/personal_journal/app/models/writing_journal.rb
2014-01-23 11:59:58 +08:00
42 changed files with 270 additions and 336 deletions

No files matched your search

Regular → Executable
View File
File mode changed.
@@ -289,13 +289,14 @@ var orbitDesktop = function(dom){
return false;
}
var ca = $e.attr("content-holder");
var a = function(){
$.ajax({
type : t,
dataType : responsetype,
url : $e.attr("href"),
success : function(data){
if(typeof data == "string"){
if(typeof data == "string" && t != "delete"){
if(ca)
$(ca).html(data);
else{
@@ -308,10 +309,12 @@ var orbitDesktop = function(dom){
window.o[o.data_method][exe](data,$e);
if(t == "delete"){
if($e.attr("delete-item")=="true"){
var li_to_delete = $e.parentsUntil("li[item=true]").find("li[item=true]");
var li_to_delete = $e.parentsUntil("li[item=true]");
li_to_delete.slideUp();
}
}
},
error : function(x){
}
});
}
+3 -3
View File
@@ -682,8 +682,8 @@ legend {
margin-bottom: 25px;
}
.sign-in .btn {
display: block;
padding: 4px 0;
display: block;
width: 100%;
margin-bottom: 10px;
}
@@ -711,7 +711,7 @@ legend {
.sign-in .checkbox {
position: absolute;
text-align: left;
bottom: 47px;
bottom: 37px;
}
.sign-in .switchboard {
color: #08C;
@@ -766,4 +766,4 @@ legend {
#main-wrap .wrap-inner {
padding: 20px 0;
}
}
}
+12 -65
View File
@@ -2,17 +2,16 @@
top: 0px;
left: -10px;
right: -10px;
height: 40px;
z-index: 1041;
position: fixed;
margin-bottom: 0;
height: 40px;
}
#orbit-bar .orbitlogo {
width: 50px;
height: 40px;
padding: 0!important;
width: 20px;
height: 20px;
background-size: 70%;
display: block;
display: inline-block;
background-position: center;
background-repeat: no-repeat;
background-image: url(<%= asset_path 'orbit-logo.svg' %>);
@@ -20,23 +19,8 @@
/* For Suck IE */
background-image: url(<%= asset_path 'orbit-logo.png' %>)\9;
}
#orbit-bar .dropdown-menu li > a {
padding: 0 20px;
display: block;
height: 30px;
line-height: 30px;
}
#orbit-bar .dropdown-menu li i {
float: left;
display: inline-block;
margin-right: 5px;
line-height: 30px;
height: 100%;
}
#orbit-bar.navbar .nav > li > a {
color: #EEE;
padding: 0 15px;
display: block;
text-shadow: 0 -1px 0 #000;
border-right: 1px solid #363636;
box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.3);
@@ -50,11 +34,6 @@
background-color: #0095CF;
text-shadow: 0 -1px 0 #014380;
}
#orbit-bar.navbar .nav > li > a > [class^="icon"],
#orbit-bar.navbar .nav > li > a > [class*=" icon"] {
line-height: 40px;
display: block;
}
#orbit-bar.navbar .nav li.dropdown.open > .dropdown-toggle,
#orbit-bar.navbar .nav li.dropdown.active > .dropdown-toggle,
#orbit-bar.navbar .nav li.dropdown.open.active > .dropdown-toggle {
@@ -62,7 +41,9 @@
text-shadow: 0 -1px 0 #014380;
}
#orbit-bar .navbar-inner {
height: 40px;
border-width: 0;
min-height: 40px;
background-color: #333333;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
@@ -85,10 +66,6 @@
right: auto;
bottom: auto;
}
#orbit-bar .nav > li {
display: block;
line-height: 40px;
}
#orbit-bar .nav [class^="icon"],
#orbit-bar .nav [class*=" icon"] {
font-size: 1.5em;
@@ -115,45 +92,17 @@
#orbit-bar .modal .input-prepend {
margin-bottom: 15px;
}
#orbit-bar .modal .other-sign-in {
position: relative;
text-align: center;
margin-top: 20px;
margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #EDEDED;
}
#orbit-bar .modal .other-sign-in .btn {
padding: 4px 0;
display: block;
margin-bottom: 5px;
width: 100%;
}
#orbit-bar .modal .other-sign-in p {
position: absolute;
width: 30px;
height: 30px;
background-color: #FFF;
padding: 0 10px;
margin-bottom: 0;
margin-left: -25px;
line-height: 30px;
left: 50%;
bottom: -15px;
font-size: 1.3em;
color: #B1B1B1;
}
/*Search*/
#orbit-bar #search {
margin-bottom: 0;
position: relative;
padding: 0 10px;
padding: 8px 10px 0;
border-right: 1px solid #363636;
box-shadow: 1px 0px 0px rgba(0, 0, 0, 0.3);
}
#orbit-bar #search form {
margin: 8px 0;
margin-bottom: 8px;
}
#orbit-bar #search input[type="text"] {
height: 14px;
@@ -161,7 +110,6 @@
font-size: 13px;
padding-left: 25px;
padding-right: 25px;
display: block;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
-o-border-radius: 12px;
@@ -174,16 +122,15 @@
#orbit-bar #search .search-clear {
position: absolute;
color: #A3A3A3;
top: 16px;
top: 14px;
}
#orbit-bar #search .icon-search {
left: 15px;
left: 13px;
top: 15px;
font-size: 1.2em;
width: 1.25em;
margin-top: 0;
}
#orbit-bar #search .search-clear {
right: 13px;
right: 14px;
font-size: 1.3em;
}
#orbit-bar #search .search-clear:hover {
+124 -142
View File
@@ -2,15 +2,14 @@
require 'net/http'
require 'open-uri'
require 'timeout'
class Admin::ImportDataController < OrbitBackendController
# helper Admin::PagePartsHelper
# include Admin::FrontendWidgetInterface
open_for_user
open_for_admin
def get_teacher_data
uri = URI("https://localhost:8000/teachers.xml")
uri = URI("https://localhost:8000/teachers.xml")
#params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
#uri.query = URI.encode_www_form(params)
@@ -78,11 +77,14 @@ class Admin::ImportDataController < OrbitBackendController
teachers = User.all
teachers.each do |hash|
if hash.ntu_seq.present?
ntu_seq = hash.ntu_seq
books_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
@books = books_xml.xpath("//Book").map do |book_node|
# if hash.ntu_seq.present?
if hash.user_id.present?
# ntu_seq = hash.ntu_seq
u_account = hash.user_id
books_xml = Nokogiri::XML( \
# open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=Book&account=#{u_account}"))
@books = books_xml.xpath("//Book").map do |book_node|
{
author: (book_node>"Authors").text,
year: (book_node>"PublishYear").text,
@@ -93,14 +95,14 @@ class Admin::ImportDataController < OrbitBackendController
}
end
if @books.present?
@books.each do |b|
@book = WritingBook.new
@books.each do |b|
@book = WritingBook.new
I18n.locale = :zh_tw
@book.authors = b[:author]
@book.paper_title = b[:title]
@book.book_title = b[:book_title]
@book.note = b[:remarks]
@book.publisher = b[:publisher]
@book.authors = b[:author]
@book.paper_title = b[:title]
@book.book_title = b[:book_title]
@book.note = b[:remarks]
@book.publisher = b[:publisher]
I18n.locale = :en
@book.authors = b[:author]
@book.paper_title = b[:title]
@@ -108,13 +110,13 @@ class Admin::ImportDataController < OrbitBackendController
@book.note = b[:remarks]
@book.publisher = b[:publisher]
@book.year = b[:year]
@book.create_user_id = hash.id
@book.save
end
@book.create_user_id = hash.id
@book.save
end
else
puts "No books by Teacher"
puts "No books by Teacher"
end
end
end
end
end
@@ -127,10 +129,13 @@ class Admin::ImportDataController < OrbitBackendController
teachers = User.all
teachers.each do |hash|
if hash.ntu_seq.present?
ntu_seq = hash.ntu_seq
# if hash.ntu_seq.present?
if hash.user_id.present?
# ntu_seq = hash.ntu_seq
u_account = hash.user_id
conference_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
# open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=paper&account=#{u_account}&type=C"))
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
{
@@ -198,11 +203,14 @@ class Admin::ImportDataController < OrbitBackendController
teachers = User.all
teachers.each do |hash|
if hash.ntu_seq.present?
ntu_seq = hash.ntu_seq
# if hash.ntu_seq.present?
if hash.user_id.present?
# ntu_seq = hash.ntu_seq
u_account = hash.user_id
paper_xml = Nokogiri::XML( \
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
# open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=paper&account=#{u_account}&type=J"))
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
{
author: (paper_node>"Authors").text,
@@ -252,6 +260,7 @@ class Admin::ImportDataController < OrbitBackendController
@journal_paper.create_user_id = hash.id
@journal_paper.save!
end
else
puts "No journal paper by Teacher"
@@ -266,10 +275,13 @@ def sync_conference_data
@user = User.find("#{params[:user_id]}")
# teachers.each do |hash|
if @user.sid.present?
ntu_seq = @user.sid
# if @user.sid.present?
if @user.user_id.present?
# ntu_seq = @user.sid
u_account = @user.user_id
conference_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
# open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=paper&account=#{u_account}&type=C"))
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
{
@@ -324,22 +336,30 @@ def sync_conference_data
puts "No conference by Teacher"
end
end
respond_to do |format|
format.html { redirect_to request.referer }
format.json { render json: {"success"=>true}.to_json}
redirect_to request.referer
end
end
def sync_journal_paper_data
@journal_data = WritingJournal.where(create_user_id: "#{params[:user_id]}")
@journal_data.delete_all
@user = User.find("#{params[:user_id]}")
# teachers.each do |hash|
if @user.sid.present?
ntu_seq = @user.sid
# if @user.sid.present?
if @user.user_id.present?
# ntu_seq = @user.sid
u_account = @user.user_id
paper_xml = Nokogiri::XML( \
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
# open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=paper&account=#{u_account}&type=J"))
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
{
author: (paper_node>"Authors").text,
@@ -398,7 +418,13 @@ def sync_conference_data
end
end
redirect_to request.referer
respond_to do |format|
format.html { redirect_to request.referer }
format.json { render json: {"success"=>true}.to_json}
end
end
def sync_book_data
@@ -407,10 +433,13 @@ def sync_book_data
@user = User.find("#{params[:user_id]}")
# teachers.each do |hash|
if @user.sid.present?
ntu_seq = @user.sid
# if @user.sid.present?
if @user.user_id.present?
# ntu_seq = @user.sid
u_account = @user.user_id
books_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
# open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=Book&account=#{u_account}"))
@books = books_xml.xpath("//Book").map do |book_node|
{
author: (book_node>"Authors").text,
@@ -442,24 +471,32 @@ def sync_book_data
end
end
end
redirect_to request.referer
respond_to do |format|
format.html { redirect_to request.referer }
format.json { render json: {"success"=>true}.to_json}
end
end
def sync_conference_data_auto
@user = User.all
@user.each do |user|
@conference_data = WritingConference.where(create_user_id: "#{user.id}")
@conference_data.delete_all
# @user = User.find("#{params[:user_id]}")
# teachers.each do |hash|
if user.sid.present?
ntu_seq = user.sid
conference_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=C"))
#open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
@conference_papers = conference_xml.xpath("//Paper").map do |cp_node|
if user.user_id.present?
next if !user.email.include? "ntu.edu.tw"
u_account = user.user_id
@conference_xml = nil
begin
timeout(60) do
@conference_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=paper&account=#{u_account}&type=C"))
end
rescue Timeout::Error
next
end
@conference_papers = @conference_xml.xpath("//Paper").map do |cp_node|
{
author: (cp_node>"Authors").text,
year: (cp_node>"PublishYear").text,
@@ -472,6 +509,8 @@ end
}
end
if @conference_papers.present?
WritingConference.delete_all(conditions:{create_user_id: user.id})
@conference_papers.each do |b|
@conference_paper = WritingConference.new
I18n.locale = :zh_tw
@@ -509,27 +548,28 @@ end
@conference_paper.save!
end
else
puts "No conference by Teacher"
end
end
end
end
end
def sync_journal_paper_data_auto
@user = User.all
@user.each do |user|
@journal_data = WritingJournal.where(create_user_id: "#{user_id}")
@journal_data.delete_all
# @user = User.find("#{params[:user_id]}")
# teachers.each do |hash|
if user.sid.present?
ntu_seq = user.sid
paper_xml = Nokogiri::XML( \
#open("http://versatile.management.ntu.edu.tw/publication1/journal/#{ntuseq}.xml"))
open("http://ann.cc.ntu.edu.tw/Achv/xmlPaper.asp?Seq=#{ntu_seq}&type=J"))
@journal_papers = paper_xml.xpath("//Paper").map do |paper_node|
if user.user_id.present?
next if !user.email.include? "ntu.edu.tw"
u_account = user.user_id
@paper_xml = nil
begin
timeout(60) do
@paper_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=paper&account=#{u_account}&type=J"))
end
rescue Timeout::Error
next
end
@journal_papers = @paper_xml.xpath("//Paper").map do |paper_node|
{
author: (paper_node>"Authors").text,
year: (paper_node>"PublishYear").text,
@@ -545,6 +585,9 @@ def sync_journal_paper_data_auto
}
end
if @journal_papers.present?
WritingJournal.delete_all(conditions:{create_user_id: user.id})
@journal_papers.each do |b|
@journal_paper = WritingJournal.new
I18n.locale = :zh_tw
@@ -585,7 +628,7 @@ def sync_journal_paper_data_auto
@journal_paper.save!
end
end
puts "Sync "+u_account+"\r\n"
end
end
end
@@ -593,16 +636,20 @@ end
def sync_book_data_auto
@user = User.all
@user.each do |user|
@books_data = WritingBook.where(create_user_id: "#{user_id}")
@books_data.delete_all
# @user = User.find("#{params[:user_id]}")
# teachers.each do |hash|
if user.sid.present?
ntu_seq = user.sid
books_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlBook.asp?Seq=#{ntu_seq}"))
@books = books_xml.xpath("//Book").map do |book_node|
if user.user_id.present?
next if !user.email.include? "ntu.edu.tw"
u_account = user.user_id
@books_xml = nil
begin
timeout(60) do
@books_xml = Nokogiri::XML( \
open("http://ann.cc.ntu.edu.tw/Achv/xmlData_useMail.asp?item=Book&account=#{u_account}"))
end
rescue Timeout::Error
next
end
@books = @books_xml.xpath("//Book").map do |book_node|
{
author: (book_node>"Authors").text,
year: (book_node>"PublishYear").text,
@@ -612,7 +659,11 @@ def sync_book_data_auto
book_title: (book_node>"BookTitle").text
}
end
if @books.present?
WritingBook.delete_all(conditions:{create_user_id: user.id})
@books.each do |b|
@book = WritingBook.new
I18n.locale = :zh_tw
@@ -680,73 +731,4 @@ end
@bulletin.save!
end
end
# def get_page_data
# f = File.open("/home/rwub/orbit-db/ntu_mb/pages/management_pages.xml")
# page_xml = Nokogiri::XML(f)
# #open("http://versatile.management.ntu.edu.tw/publication1/conference/#{ntuseq}.xml"))
# @pages = page_xml.xpath("//management-page").map do |cp_node|
# {
# menu_title: (cp_node>"menu-title").text,
# content: (cp_node>"content").text
# }
# end
# if @pages.present?
# @i=0
# @pages.each do |b|
# get_variables_for_new
# @page = Page.new
# @page.parent = "4f45f3b9e9d02c5db900005d"
# @page.design = "50ac424983e75219d2000021"
# @page.theme_id = "50ac424a83e75219d2000025"
# @page.menu_enabled_for= ["en", "zh_tw", ""]
# @page.enabled_for= ["en", "zh_tw", ""]
# @page.is_published = false
# if b[:menu_title].blank?
# @page.title = 'No Title Present'
# @i += 1
# @page.name = "#{@i}Page"
# else
# @i += 1
# @page.title = b[:menu_title]
# @page.name = "#{@i}Page"
# end
# if b[:content].blank?
# @page.content = "No Content Present"
# else
# @page.content = b[:content]
# end
# @page.save!
# end
# else
# puts "No Page Data"
# end
# end
# def get_variables_for_new
# @designs = Design.all.entries
# @themes = Design.first.themes
# @module_apps = ModuleApp.for_frontend_select
# @app_frontend_urls = nil
# @categories = nil
# @tags = nil
# @page_frontend_data_counts = nil
# @frontend_styles = nil
# @selected={
# :design => @designs.first,
# :theme=> @themes.first,
# :module_app=>nil,#@module_apps.first
# :app_frontend_url=> nil, #@module_apps.first
# :category=>nil,
# :tag=>nil,
# :page_frontend_data_count=>nil,
# :frontend_style => nil
# }
# end
end
+3 -3
View File
@@ -19,7 +19,7 @@ class SessionsController < Devise::SessionsController
if !resource.blank?
resource_name = resource.class.to_s.downcase
sign_in(resource_name, resource)
session[:user_id_type] = "myntumb"
session[:user_id_type] = "myntucoph"
redirect_to after_sign_in_path_for(resource)
else
flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員<br />Sorry, you don't have the account or authority to login. Please contact the website administrator."
@@ -30,8 +30,8 @@ class SessionsController < Devise::SessionsController
def destroy
@user_id_type = session[:user_id_type]
sign_out
if @user_id_type == "myntumb"
redirect_to "https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignout1.0&wreply=https://management.ntu.edu.tw"
if @user_id_type == "myntucoph"
redirect_to "https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignout1.0&wreply=https://cophlogin.ntu.edu.tw"
else
redirect_to root_path
end
@@ -0,0 +1 @@
<p>Successfully Imported Announcement Data!</p>
@@ -0,0 +1 @@
<p>Successfully Book Data!</p>
@@ -0,0 +1 @@
<p>Successfully Conference Data!</p>
@@ -0,0 +1 @@
<p>Successfully Journal Paper Data!</p>
@@ -0,0 +1 @@
<p>Successfully Imported Page Data!</p>
@@ -0,0 +1 @@
<p>Successfully Imported Teacher Data!</p>
@@ -0,0 +1 @@
<p>Book Data Synced Successfully!</p>
@@ -0,0 +1 @@
<p>Conference Paper Data Synced Successfully!</p>
@@ -0,0 +1 @@
<p>Journal Paper Data Synced Successfully!</p>
+1 -1
View File
@@ -11,7 +11,7 @@
<h3 class="login-logo"><%= t(:login) %></h3>
<div class="other-sign-in">
<% @request_hosts = request.host_with_port.split(".") %>
<a class="btn btn-primary" type="submit" href="https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignin1.0&wtrealm=https://management.ntu.edu.tw/saml_login&wctx=<%= @request_hosts[0] %>">使用計中帳號登入</a>
<a class="btn btn-primary" type="submit" href="https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignin1.0&wtrealm=https://cophlogin.ntu.edu.tw/saml_login&wctx=<%= @request_hosts[0] %>">使用計中帳號登入</a>
<p>or</p>
</div>
<div class="form-block">
+1 -1
View File
@@ -58,7 +58,7 @@
<%= form_for :user, url: user_session_path, html: {class: 'container'} do |f| %>
<div class="other-sign-in">
<% @request_hosts = request.host_with_port.split(".") %>
<a class="btn btn-primary" type="submit" href="https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignin1.0&wtrealm=https://management.ntu.edu.tw/saml_login&wctx=<%= @request_hosts[0] %>">使用計中帳號登入</a>
<a class="btn btn-primary" type="submit" href="https://adfs.ntu.edu.tw/adfs/ls/?wa=wsignin1.0&wtrealm=https://cophlogin.ntu.edu.tw/saml_login&wctx=<%= @request_hosts[0] %>">使用計中帳號登入</a>
<p>or</p>
</div>
<div class="input-prepend">
-4
View File
@@ -24,9 +24,5 @@
<body>
<%= render 'layouts/orbit_bar' %>
<%= yield %>
<!--<div id="sign-footer">
<p>Rulingcom</p>
</div>
-->
</body>
</html>
Regular → Executable
+1 -1
View File
@@ -351,8 +351,8 @@ en:
brief_intro : "Brief Intro."
complete_list : "Complete List"
frontend_page : "Frontend Page"
phone_number: "Phone Number"
sync_data: "Synchronize"
phone_number: "Phone Number"
picture: Picture
placeholder: Field Hint
plugins: Plugins
Regular → Executable
+1 -1
View File
@@ -354,8 +354,8 @@ zh_tw:
brief_intro : "摘要"
complete_list : "完整列表"
frontend_page : "前台呈現"
phone_number: "電話"
sync_data: "同步資料"
phone_number: "電話"
picture: 圖片
placeholder: 欄位提示文字
plugins: 學術資訊
Regular → Executable
View File
File mode changed.
+1 -4
View File
@@ -7,15 +7,12 @@ Orbit::Application.routes.draw do
resources :passwords, :except => [:index, :show, :destroy]
match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
end
devise_scope :user do
get 'user_login' => 'sessions#create'
match 'user_logout' => 'sessions#destroy'
end
match "saml_login" => 'saml_logins#index'
mount Resque::Server, :at => "/admin/resque"
mount Rack::GridFS::Endpoint.new(:db => Mongoid.database,:lookup=>:path), :at => "gridfs"
+58
View File
@@ -0,0 +1,58 @@
#encoding: utf-8
namespace :teacher do
task :import, [:department,:category] => :environment do |t, args|
department = "#{args.department}"
teacher_role = Role.where(:key=>"teacher").first
role_fulltime = RoleStatus.where(:key=>"1.fulltime").first
role_adjunct = RoleStatus.where(:key=>"2.adjunct").first
role_category = RoleCategory.where(:key=>"#{args.category}").first
@teacher = []
CSV.foreach("#{Rails.root}/#{department}.csv") do |row|
@teacher.push(row)
end
@teacher.each do |teacher|
sex = "unknown"
if teacher[2]=="男"
sex = "male"
elsif teacher[2]=="女"
sex = "female"
end
role_status = ""
if teacher[3].include? "兼任"
role_status = role_adjunct
else
role_status = role_fulltime
end
if teacher[1].blank?
teacher[1] = " "
end
user_data = {
:user_id => teacher[5].split("@")[0],
:password => "password",
:first_name_translations =>{"zh_tw"=>teacher[0].split(teacher[0][0])[1],"en"=>teacher[1].split(" ")[1]},
:last_name_translations => {"zh_tw"=>teacher[0][0],"en"=>teacher[1].split(" ")[0]},
:roles => [teacher_role],
:role_statuses => [role_status],
:role_categorys => [role_category],
:office_tel => teacher[4],
:email => teacher[5],
:confirmation_token => nil,
:confirmed_at => Time.now,
:approved => true,
:sex => sex
}
if User.where(:email=>teacher[5]).count == 0
user = User.new(user_data)
user.save
else
user = User.where(:email=>teacher[5]).first
user.update_attributes(user_data)
end
end
end
end
@@ -1,30 +0,0 @@
<% show_office_field.attribute_fields.where(:disabled=>false).asc(:_id).each do |rf| %>
<%
if !@member.get_attribute_value(rf).blank?
if !@member.get_attribute_value(rf)['val'].blank?
@rodata = @member.get_attribute_value(rf)['val']
elsif !@member.get_attribute_value(rf)[I18n.locale].blank?
@rodata = @member.get_attribute_value(rf)[I18n.locale]
else
@rodata = nil
end
if !@rodata.blank? and !@member.get_attribute_value(rf).get_value_by_locale(I18n.locale).blank?
%>
<tr>
<% if (rf.title == "Office" || rf.title == "研究室")%>
<td><%= rf.title %></td>
<td><%= nl2br(show_attribute_value(@member.get_attribute_value(rf).get_value_by_locale(I18n.locale))) rescue '' %></td>
</tr>
<%end%>
</tr>
<% end -%>
<% end -%>
<% end -%>
@@ -1,30 +0,0 @@
<% show_research_field.attribute_fields.where(:disabled=>false).asc(:_id).each do |rf| %>
<%
if !@member.get_attribute_value(rf).blank?
if !@member.get_attribute_value(rf)['val'].blank?
@rodata = @member.get_attribute_value(rf)['val']
elsif !@member.get_attribute_value(rf)[I18n.locale].blank?
@rodata = @member.get_attribute_value(rf)[I18n.locale]
else
@rodata = nil
end
if !@rodata.blank? and !@member.get_attribute_value(rf).get_value_by_locale(I18n.locale).blank?
%>
<tr>
<% if (rf.title == "Research Field"|| rf.title == "研究領域")%>
<td><%= rf.title %></td>
<td><%= nl2br(show_attribute_value(@member.get_attribute_value(rf).get_value_by_locale(I18n.locale))) rescue '' %></td>
</tr>
<%end%>
</tr>
<% end -%>
<% end -%>
<% end -%>
@@ -80,7 +80,7 @@
<div class="o-members-pic"><%= show_avatar(member) %></div>
<ul class="o-members-info">
<li><b class="o-members-label"><%= t("users.name")%></b><%= link_to member.name, panel_member_front_end_member_list_path(member.id), {:class => "o-members-link"} %></li>
<% @job_title = @member_lists.get_member_list_attribute_value(member.id,@job_title_field.id).get_value_by_locale(I18n.locale)
<% @job_title = @member_lists.get_member_list_attribute_value(member.id,@job_title_field.id).get_value_by_locale(I18n.locale) rescue ""
if @job_title != 'NoData' and !@job_title.blank?
%>
<li><b class="o-members-label"><%= @job_title_field.title %></b><%= @job_title %></li>
@@ -92,6 +92,16 @@ orbitDesktop.prototype.initializePersonalBook = function(target,url,cache){ // t
width: $(".overview").width() - 20
});
}
this.initializePersonalBook.syncComplete = function(){
o.notify("Sync Complete","success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}
this.initializePersonalBook.syncComplete = function(){
o.notify("Sync Complete","success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}
this.initializePersonalBook.coAuthorformCallback = function(data){
if(data.success){
@@ -7,7 +7,7 @@ class Panel::PersonalBook::Desktop::PersonalBooksController < ApplicationControl
page ||= 1
@per_column = 5
@userid = current_user.id
case @view_by
when "abstract"
@per_column = 1
@@ -70,4 +70,4 @@ class Panel::PersonalBook::Desktop::PersonalBooksController < ApplicationControl
def books_window
render :layout => false
end
end
end
+4 -13
View File
@@ -84,22 +84,13 @@ class WritingBook
def create_link
title = []
title << self.authors if self.authors.present?
# title << self.paper_title if self.paper_title.present?
# title = ["#{self.extracted_chapters}"] if self.extracted_chapters.present?
title << self.paper_title if self.paper_title.present?
title << self.book_title if self.book_title.present?
title << self.publisher if self.publisher.present?
title << self.isbn if self.isbn.present?
if !self.publish_date.nil?
pd = self.publish_date.strftime("%Y-%m-%d").split('-')
title << pd[0]+"/"+pd[1]
elsif !self.year.blank?
title << self.year
end
title << self.pages if self.pages.present?
# title << "(#{self.journal_level_types.collect{|x| x.title}.join(', ')})"
title.join(', ')
title.join(', ')
end
protected
@@ -57,6 +57,9 @@
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><a href="<%= admin_import_data_sync_book_data_path(:user_id=>@userid) %>" class="icons-cycle" ajax-remote="get" response-type="json" callback-method="syncComplete" > Sync Books</a></div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
@@ -67,4 +70,4 @@
<%= publication_record w, @view_by%>
<% end %>
</ul>
</div>
</div>
File mode changed.
@@ -42,7 +42,10 @@ orbitDesktop.prototype.initializeConferencePapers = function(target,url,cache){
this.initializeConferencePapers.cancelpaper = function(){
o.highlight_sub_menu_item(0);
}
this.initializeConferencePapers.syncComplete = function(){
o.notify("Sync Complete","success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
var new_id = $(this).prev().attr('value');
@@ -4,7 +4,7 @@ class Panel::PersonalConference::Desktop::ConferencePagesController < Applicatio
@writing_conferences = WritingConference.where(create_user_id: current_user.id)
page = params[:page]
page ||= 1
@userid = current_user.id
if @view_by.nil?
@writing_conferences = @writing_conferences.asc(:paper_title)
else
+3 -13
View File
@@ -84,23 +84,13 @@ class WritingConference
end
def create_link
title = []
title << self.authors if self.authors.present?
if !self.publication_date.nil?
pd = self.publication_date.strftime("%Y-%m-%d").split('-')
title << pd[0]
elsif !self.year.blank?
title << self.year
end
title << self.paper_title if self.paper_title.present?
title = ["#{self.paper_title}"]
title << self.conference_title if self.conference_title.present?
title << self.sponsor if self.sponsor.present?
title << self.location if self.location.present?
title << "#{period_start_date}-#{period_end_date}" if (self.period_start_date.present? && self.period_end_date.present?)
# title << "(#{self.conference_paper_types.collect{|x| x.title}.join(', ')})"
title.join(', ')
title.join(', ')
end
protected
@@ -58,6 +58,10 @@
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><a href="<%= admin_import_data_sync_conference_data_path(:user_id => @userid) %>" class="icons-cycle" ajax-remote="get" response-type="json" callback-method="syncComplete" > Sync Conference Papers</a></div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
File mode changed.
@@ -33,6 +33,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
}
this.initializeJournalPapers.paperDelete = function(data,dom){
var parent = dom.parent().parent().parent();
// console.log(parent);
if(data.success){
parent.hide("slide",function(){parent.remove();});
o.notify(data.msg,"success");
@@ -42,6 +43,10 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
this.initializeJournalPapers.cancelpaper = function(){
o.highlight_sub_menu_item(0);
}
this.initializeJournalPapers.syncComplete = function(){
o.notify("Sync Complete","success");
o.sub_menu_item($("div[content-type=menu] a").eq(0));
}
var uploadFiles = function(){
$('#add_plugin_file a.add').click(function(){
@@ -7,7 +7,7 @@ class Panel::PersonalJournal::Desktop::JournalPagesController < ApplicationContr
page ||= 1
@per_column = 5
@userid = current_user.id
case @view_by
when "abstract"
@per_column = 1
@@ -81,6 +81,7 @@ module Panel::PersonalJournal::Desktop::JournalPagesHelper
"ajax-remote" => "delete",
"confirm-message" => t("sure?"),
"callback-method" => "paperDelete",
"response-type" => "json",
"delete-item" => "true",
:class => "journal_paper_delete admbg2 admtxt",
:href => panel_personal_journal_desktop_journal_page_path(publication))
+5 -15
View File
@@ -90,23 +90,13 @@ class WritingJournal
end
def create_link
title = []
title << self.authors if self.authors.present?
if !self.publication_date.nil?
pd = self.publication_date.strftime("%Y-%m-%d").split('-')
title << pd[0]
elsif !self.year.blank?
title << self.year
end
title << self.paper_title if self.paper_title.present?
title = ["#{self.paper_title}"]
title << self.journal_title if self.journal_title.present?
title << self.vol_no if (self.vol_no.present? && self.vol_no != "0")
title << self.issue_no if (self.issue_no.present? && self.issue_no != "0")
title << "pp"+self.form_to_start+"-"+self.form_to_end if (self.form_to_start.present? && self.form_to_start != "0")
title << ( !self.journal_level_types.blank? ? "(#{self.journal_level_types.collect{|x| x.title}.join(', ')})" : nil)
title.join(', ')
title << "Volume No: "+self.vol_no if (self.vol_no.present? && self.vol_no != "0")
title << "From Page: "+self.form_to_start if (self.form_to_start.present? && self.form_to_start != "0")
title << "To Page: "+self.form_to_end if (self.form_to_end.present? && self.form_to_end != "0")
title.join(', ')
end
def new_writing_journal_files=(var)
@@ -58,6 +58,9 @@
</ul>
</div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><a href="<%= admin_import_data_sync_journal_paper_data_path(:user_id => @userid) %>" class="icons-cycle" ajax-remote="get" response-type="json" callback-method="syncComplete" > Sync Journal Papers</a></div>
</div>
<div class="hh1 hp sdm">
<div class="sdm_t hh1"><span class="icon-question-sign"></span></div>
</div>
@@ -68,4 +71,4 @@
<%= publication_record w, @view_by%>
<% end %>
</ul>
</div>
</div>
@@ -77,6 +77,7 @@
</tbody>
</table>
<% if is_admin? %>
<div class="bottomnav clearfix">
<div class="action pull-right">
<%= link_to content_tag(:i, nil, :class => 'icon-plus') + t('personal_plugins.sync_data'), admin_import_data_sync_journal_paper_data_path(:user_id => @user.id), :class => 'btn btn-primary' %>
@@ -87,6 +88,7 @@
<%= paginate @writing_journals, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>
</div>
</div>
<% end %>
<div id="dialog" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="Delete item" aria-hidden="true">
<div class="modal-header">