Log In to Orbit
-- - <% end %>
diff --git a/app/assets/stylesheets/basic/global.css b/app/assets/stylesheets/basic/global.css
index 4f92e52..d320eb9 100644
--- a/app/assets/stylesheets/basic/global.css
+++ b/app/assets/stylesheets/basic/global.css
@@ -730,7 +730,7 @@ legend {
.sign-in .checkbox {
position: absolute;
text-align: left;
- bottom: 37px;
+ bottom: 47px;
}
.sign-in .switchboard {
color: #08C;
@@ -785,4 +785,4 @@ legend {
#main-wrap .wrap-inner {
padding: 20px 0;
}
-}
\ No newline at end of file
+}
diff --git a/app/assets/stylesheets/basic/orbit_bar.css.erb b/app/assets/stylesheets/basic/orbit_bar.css.erb
index 082e63d..27fc7de 100644
--- a/app/assets/stylesheets/basic/orbit_bar.css.erb
+++ b/app/assets/stylesheets/basic/orbit_bar.css.erb
@@ -92,6 +92,34 @@
#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 {
diff --git a/app/controllers/admin/import_data_controller.rb b/app/controllers/admin/import_data_controller.rb
new file mode 100644
index 0000000..68a4b85
--- /dev/null
+++ b/app/controllers/admin/import_data_controller.rb
@@ -0,0 +1,752 @@
+# encoding: utf-8
+
+require 'net/http'
+require 'open-uri'
+
+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")
+
+ #params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
+ #uri.query = URI.encode_www_form(params)
+ res = Net::HTTP.get_response(uri)
+
+ @teacher_data = Hash.from_xml(res.body)
+ @teachers = @teacher_data["objects"]
+ @i = 5000
+ @teachers.each do |hash|
+ # @roles = Role.skip(1).first
+ @roles = Role.all
+ @teacher = User.new
+ I18n.locale = :zh_tw
+ if !hash['teacher_zh_tw'].blank?
+ @teacher.first_name = hash['teacher_zh_tw']
+ elsif hash['teacher_zh_tw'].blank? && !hash['teacher_en'].blank?
+ @teacher.first_name = hash['teacher_en']
+ elsif hash['teacher_zh_tw'].blank? && hash['teacher_en'].blank?
+ @teacher.first_name = "Please Fill the Name"
+ end
+
+ I18n.locale = :en
+ if !hash['teacher_en'].blank?
+ @teacher.first_name = hash['teacher_en']
+ elsif hash['teacher_en'].blank? && !hash['teacher_zh_tw'].blank?
+ @teacher.first_name = hash['teacher_zh_tw']
+ elsif hash['teacher_en'].blank? && hash['teacher_zh_tw'].blank?
+ @teacher.first_name = "Please Fill the Name"
+ end
+
+ #@teacher.first_name = hash['teacher_en']
+ @teacher.ntu_seq = hash['ntu_seq']
+ @teacher.sid = hash['ntu_seq']
+ @teacher.role_ids = ["#{@roles.skip(1).first.id}"]
+ @teacher.password = "testpass"
+ @i += 10
+ if !hash['email'].blank?
+ @user = User.where(email: "#{hash['email']}")
+ if @user.length == 0
+ @teacher.email = hash['email']
+ elsif @user.length > 0
+ @teacher.email = "#{@i}duplicate@ntu.edu.tw"
+ end
+ else
+ @teacher.email = "#{@i}@ntu.edu.tw"
+ end
+
+ if hash['teacher_zh_tw'].blank? && hash['teacher_en'].blank?
+ @teacher.user_id = "defaultuser"
+ elsif hash['teacher_en'].blank?
+ @teacher.user_id = hash['teacher_zh_tw']
+ elsif hash['teacher_zh_tw']
+ @teacher.user_id = hash['teacher_en']
+ end
+ @teacher.save!
+ end
+ end
+
+ def get_book_data
+ uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
+ params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
+ uri.query = URI.encode_www_form(params)
+ res = Net::HTTP.get_response(uri)
+
+ 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|
+ {
+ author: (book_node>"Authors").text,
+ year: (book_node>"PublishYear").text,
+ title: (book_node>"DocTitle").text,
+ remarks: (book_node>"Remarks").text,
+ publisher: (book_node>"Publisher").text,
+ book_title: (book_node>"BookTitle").text
+ }
+ end
+ if @books.present?
+ @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]
+ I18n.locale = :en
+ @book.authors = b[:author]
+ @book.paper_title = b[:title]
+ @book.book_title = b[:book_title]
+ @book.note = b[:remarks]
+ @book.publisher = b[:publisher]
+ @book.year = b[:year]
+ @book.create_user_id = hash.id
+ @book.save
+ end
+ else
+ puts "No books by Teacher"
+ end
+ end
+ end
+ end
+
+ def get_conference_data
+ uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
+ params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
+ uri.query = URI.encode_www_form(params)
+ res = Net::HTTP.get_response(uri)
+
+ teachers = User.all
+
+ teachers.each do |hash|
+ if hash.ntu_seq.present?
+ ntu_seq = hash.ntu_seq
+ 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|
+ {
+ author: (cp_node>"Authors").text,
+ year: (cp_node>"PublishYear").text,
+ title: (cp_node>"PaperTitle").text,
+ conference: (cp_node>"PublishOn").text,
+ date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
+ location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
+ conference_title: (cp_node>"PublishOn").text,
+ remarks: (cp_node>"Remarks").text
+ }
+ end
+ if @conference_papers.present?
+ @conference_papers.each do |b|
+ @conference_paper = WritingConference.new
+ I18n.locale = :zh_tw
+ @conference_paper.authors = b[:author]
+ if b[:title].blank?
+ @conference_paper.paper_title = "No Title Present"
+ else
+ @conference_paper.paper_title = b[:title]
+ end
+ if b[:conference_title].blank?
+ @conference_paper.conference_title = "No Title Present"
+ else
+ @conference_paper.conference_title = b[:conference_title]
+ end
+
+ @conference_paper.note = b[:remarks]
+ I18n.locale = :en
+ @conference_paper.authors = b[:author]
+ if b[:title].blank?
+ @conference_paper.paper_title = "No Title Present"
+ else
+ @conference_paper.paper_title = b[:title]
+ end
+ if b[:conference_title].blank?
+ @conference_paper.conference_title = "No Title Present"
+ else
+ @conference_paper.conference_title = b[:conference_title]
+ end
+ @conference_paper.note = b[:remarks]
+
+ @conference_paper.location = b[:location]
+ @conference_paper.year = b[:year]
+ @conference_paper.create_user_id = hash.id
+
+ @conference_paper.save!
+ end
+ else
+ puts "No conference by Teacher"
+ end
+ end
+ end
+ end
+
+
+ def get_journal_paper_data
+ uri = URI("http://ann.cc.ntu.edu.tw/Achv/xmlTeacherData.asp")
+ params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
+ uri.query = URI.encode_www_form(params)
+ res = Net::HTTP.get_response(uri)
+
+ teachers = User.all
+
+ teachers.each do |hash|
+ if hash.ntu_seq.present?
+ ntu_seq = hash.ntu_seq
+ 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|
+ {
+ author: (paper_node>"Authors").text,
+ year: (paper_node>"PublishYear").text,
+ title: (paper_node>"PaperTitle").text,
+ journal: (paper_node>"PublishOn").text,
+ volume:(paper_node>"Volume").text,
+ volumeno:(paper_node>"VolumeNo").text,
+ beginpage:(paper_node>"BeginPage").text,
+ endpage:(paper_node>"EndPage").text,
+ subgroup:(paper_node>"subgroup").text,
+ remarks: (paper_node>"Remarks").text,
+ cate: ((paper_node>"subgroup")>"Group").text
+ }
+ end
+ if @journal_papers.present?
+ @journal_papers.each do |b|
+ @journal_paper = WritingJournal.new
+ I18n.locale = :zh_tw
+ @journal_paper.authors = b[:author]
+ if b[:title].blank?
+ @journal_paper.paper_title = "No Title Present"
+ else
+ @journal_paper.paper_title = b[:title]
+ end
+ @journal_paper.journal_title = b[:journal]
+ @journal_paper.note = b[:remarks]
+ I18n.locale = :en
+ @journal_paper.authors = b[:author]
+ if b[:title].blank?
+ @journal_paper.paper_title = "No Title Present"
+ else
+ @journal_paper.paper_title = b[:title]
+ end
+ @journal_paper.journal_title = b[:journal]
+ @journal_paper.note = b[:remarks]
+ @journal_paper.year = b[:year]
+ @journal_paper.vol_no = b[:volumeno]
+ @journal_paper.form_to_start = b[:beginpage]
+ @journal_paper.form_to_end = b[:endpage]
+ if !b[:cate].blank?
+ @level_type = JournalLevelType.where(:key => b[:cate])
+ if @level_type.present?
+ @journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
+ end
+ end
+
+ @journal_paper.create_user_id = hash.id
+ @journal_paper.save!
+ end
+ else
+ puts "No journal paper by Teacher"
+ end
+ end
+ end
+ end
+
+def sync_conference_data
+ @conference_data = WritingConference.where(create_user_id: "#{params[: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|
+ {
+ author: (cp_node>"Authors").text,
+ year: (cp_node>"PublishYear").text,
+ title: (cp_node>"PaperTitle").text,
+ conference: (cp_node>"PublishOn").text,
+ date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
+ location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
+ conference_title: (cp_node>"PublishOn").text,
+ remarks: (cp_node>"Remarks").text
+ }
+ end
+ if @conference_papers.present?
+ @conference_papers.each do |b|
+ @conference_paper = WritingConference.new
+ I18n.locale = :zh_tw
+ @conference_paper.authors = b[:author]
+ if b[:title].blank?
+ @conference_paper.paper_title = "No Title Present"
+ else
+ @conference_paper.paper_title = b[:title]
+ end
+ if b[:conference_title].blank?
+ @conference_paper.conference_title = "No Title Present"
+ else
+ @conference_paper.conference_title = b[:conference_title]
+ end
+
+ @conference_paper.note = b[:remarks]
+ I18n.locale = :en
+ @conference_paper.authors = b[:author]
+ if b[:title].blank?
+ @conference_paper.paper_title = "No Title Present"
+ else
+ @conference_paper.paper_title = b[:title]
+ end
+ if b[:conference_title].blank?
+ @conference_paper.conference_title = "No Title Present"
+ else
+ @conference_paper.conference_title = b[:conference_title]
+ end
+ @conference_paper.note = b[:remarks]
+
+ @conference_paper.location = b[:location]
+ @conference_paper.year = b[:year]
+ @conference_paper.create_user_id = @user.id
+
+ @conference_paper.save!
+ end
+ else
+ puts "No conference by Teacher"
+ end
+ end
+
+ redirect_to request.referer
+ 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
+ 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|
+ {
+ author: (paper_node>"Authors").text,
+ year: (paper_node>"PublishYear").text,
+ title: (paper_node>"PaperTitle").text,
+ journal: (paper_node>"PublishOn").text,
+ volume:(paper_node>"Volume").text,
+ volumeno:(paper_node>"VolumeNo").text,
+ beginpage:(paper_node>"BeginPage").text,
+ endpage:(paper_node>"EndPage").text,
+ subgroup:(paper_node>"subgroup").text,
+ remarks: (paper_node>"Remarks").text,
+ cate: ((paper_node>"subgroup")>"Group").text
+ }
+ end
+ if @journal_papers.present?
+ @journal_papers.each do |b|
+ @journal_paper = WritingJournal.new
+ I18n.locale = :zh_tw
+ @journal_paper.authors = b[:author]
+
+ if b[:title].blank?
+ @journal_paper.paper_title = "No Title Present"
+ else
+ @journal_paper.paper_title = b[:title]
+ end
+
+ @journal_paper.journal_title = b[:journal]
+ @journal_paper.note = b[:remarks]
+ I18n.locale = :en
+ @journal_paper.authors = b[:author]
+
+ if b[:title].blank?
+ @journal_paper.paper_title = "No Title Present"
+ else
+ @journal_paper.paper_title = b[:title]
+ end
+
+ @journal_paper.journal_title = b[:journal]
+ @journal_paper.note = b[:remarks]
+ @journal_paper.year = b[:year]
+ @journal_paper.vol_no = b[:volumeno]
+ @journal_paper.form_to_start = b[:beginpage]
+ @journal_paper.form_to_end = b[:endpage]
+
+ if !b[:cate].blank?
+ @level_type = JournalLevelType.where(:key => b[:cate])
+ if @level_type.present?
+ @journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
+ end
+ end
+
+ @journal_paper.create_user_id = @user.id
+ @journal_paper.save!
+ end
+ end
+
+ end
+ redirect_to request.referer
+ end
+
+def sync_book_data
+ @books_data = WritingBook.where(create_user_id: "#{params[: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|
+ {
+ author: (book_node>"Authors").text,
+ year: (book_node>"PublishYear").text,
+ title: (book_node>"DocTitle").text,
+ remarks: (book_node>"Remarks").text,
+ publisher: (book_node>"Publisher").text,
+ book_title: (book_node>"BookTitle").text
+ }
+ end
+ if @books.present?
+ @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]
+ I18n.locale = :en
+ @book.authors = b[:author]
+ @book.paper_title = b[:title]
+ @book.book_title = b[:book_title]
+ @book.note = b[:remarks]
+ @book.publisher = b[:publisher]
+ @book.year = b[:year]
+ @book.create_user_id = @user.id
+ @book.save
+ end
+ end
+ end
+ redirect_to request.referer
+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|
+ {
+ author: (cp_node>"Authors").text,
+ year: (cp_node>"PublishYear").text,
+ title: (cp_node>"PaperTitle").text,
+ conference: (cp_node>"PublishOn").text,
+ date: Date::MONTHNAMES[(cp_node>"PublishMonth").text.to_i],
+ location: "#{(cp_node>"Country").text} #{(cp_node>"location").text}",
+ conference_title: (cp_node>"PublishOn").text,
+ remarks: (cp_node>"Remarks").text
+ }
+ end
+ if @conference_papers.present?
+ @conference_papers.each do |b|
+ @conference_paper = WritingConference.new
+ I18n.locale = :zh_tw
+ @conference_paper.authors = b[:author]
+ if b[:title].blank?
+ @conference_paper.paper_title = "No Title Present"
+ else
+ @conference_paper.paper_title = b[:title]
+ end
+ if b[:conference_title].blank?
+ @conference_paper.conference_title = "No Title Present"
+ else
+ @conference_paper.conference_title = b[:conference_title]
+ end
+
+ @conference_paper.note = b[:remarks]
+ I18n.locale = :en
+ @conference_paper.authors = b[:author]
+ if b[:title].blank?
+ @conference_paper.paper_title = "No Title Present"
+ else
+ @conference_paper.paper_title = b[:title]
+ end
+ if b[:conference_title].blank?
+ @conference_paper.conference_title = "No Title Present"
+ else
+ @conference_paper.conference_title = b[:conference_title]
+ end
+ @conference_paper.note = b[:remarks]
+
+ @conference_paper.location = b[:location]
+ @conference_paper.year = b[:year]
+ @conference_paper.create_user_id = user.id
+
+ @conference_paper.save!
+ end
+ else
+ puts "No conference by Teacher"
+ 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|
+ {
+ author: (paper_node>"Authors").text,
+ year: (paper_node>"PublishYear").text,
+ title: (paper_node>"PaperTitle").text,
+ journal: (paper_node>"PublishOn").text,
+ volume:(paper_node>"Volume").text,
+ volumeno:(paper_node>"VolumeNo").text,
+ beginpage:(paper_node>"BeginPage").text,
+ endpage:(paper_node>"EndPage").text,
+ subgroup:(paper_node>"subgroup").text,
+ remarks: (paper_node>"Remarks").text,
+ cate: ((paper_node>"subgroup")>"Group").text
+ }
+ end
+ if @journal_papers.present?
+ @journal_papers.each do |b|
+ @journal_paper = WritingJournal.new
+ I18n.locale = :zh_tw
+ @journal_paper.authors = b[:author]
+
+ if b[:title].blank?
+ @journal_paper.paper_title = "No Title Present"
+ else
+ @journal_paper.paper_title = b[:title]
+ end
+
+ @journal_paper.journal_title = b[:journal]
+ @journal_paper.note = b[:remarks]
+ I18n.locale = :en
+ @journal_paper.authors = b[:author]
+
+ if b[:title].blank?
+ @journal_paper.paper_title = "No Title Present"
+ else
+ @journal_paper.paper_title = b[:title]
+ end
+
+ @journal_paper.journal_title = b[:journal]
+ @journal_paper.note = b[:remarks]
+ @journal_paper.year = b[:year]
+ @journal_paper.vol_no = b[:volumeno]
+ @journal_paper.form_to_start = b[:beginpage]
+ @journal_paper.form_to_end = b[:endpage]
+
+ if !b[:cate].blank?
+ @level_type = JournalLevelType.where(:key => b[:cate])
+ if @level_type.present?
+ @journal_paper.journal_level_type_ids = ["#{@level_type.first.id}"]
+ end
+ end
+
+ @journal_paper.create_user_id = user.id
+ @journal_paper.save!
+ end
+ end
+
+ end
+ end
+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|
+ {
+ author: (book_node>"Authors").text,
+ year: (book_node>"PublishYear").text,
+ title: (book_node>"DocTitle").text,
+ remarks: (book_node>"Remarks").text,
+ publisher: (book_node>"Publisher").text,
+ book_title: (book_node>"BookTitle").text
+ }
+ end
+ if @books.present?
+ @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]
+ I18n.locale = :en
+ @book.authors = b[:author]
+ @book.paper_title = b[:title]
+ @book.book_title = b[:book_title]
+ @book.note = b[:remarks]
+ @book.publisher = b[:publisher]
+ @book.year = b[:year]
+ @book.create_user_id = user.id
+ @book.save
+ end
+ end
+ end
+ end
+end
+
+
+ def get_announcement_data
+ uri = URI("https://localhost:8000/announcements.xml")
+
+ #params = {"UnitName" => "管理學院".encode('big5-uao'), "account" => "manage"}
+ #uri.query = URI.encode_www_form(params)
+ res = Net::HTTP.get_response(uri)
+
+ @announcement_data = Hash.from_xml(res.body)
+ @announcements = @announcement_data["objects"]
+ @announcements.each do |hash|
+ @bulletin = Bulletin.new
+
+ I18n.locale = :zh_tw
+ if hash['announcement_title_zh_tw'].blank?
+ @bulletin.title = hash['announcement_title_en']
+ @bulletin.text = hash['announcement_content_zh_tw']
+ elsif hash['announcement_title_zh_tw'].blank? && hash['announcement_title_en'].blank?
+ @bulletin.title = "Please Fill the Name"
+ @bulletin.text = hash['announcement_content_zh_tw']
+ else
+ @bulletin.title = hash['announcement_title_zh_tw']
+ @bulletin.text = hash['announcement_content_zh_tw']
+ end
+
+ I18n.locale = :en
+ if hash['announcement_title_zh_tw'].blank? && hash['announcement_title_en'].blank?
+ @bulletin.title = "Please Fill the Name"
+ @bulletin.text = hash['announcement_content_en']
+
+ elsif hash['announcement_title_en'].blank?
+ @bulletin.title = hash['announcement_zh_tw']
+ @bulletin.text = hash['announcement_content_en']
+
+ elsif hash['announcement_title_zh_tw'].blank?
+ @bulletin.title = hash['announcement_title_en']
+ @bulletin.text = hash['announcement_content_en']
+ end
+ @bulletin.category_id = "51d2a16438178423c2000001"
+ @bulletin.is_pending = true
+
+ @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
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
new file mode 100644
index 0000000..3e5a5ed
--- /dev/null
+++ b/app/controllers/sessions_controller.rb
@@ -0,0 +1,40 @@
+# encoding: utf-8
+
+class SessionsController < Devise::SessionsController
+ prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
+
+
+ def create
+ @site = Site.first
+
+ private_key = OpenSSL::PKey::RSA.new(@site.private_key)
+ wresult = private_key.private_decrypt(request.params['wresult'])
+
+ @ids = wresult.split("@")
+
+ login_uid = @ids[0]
+
+ resource = User.first(conditions:{user_id: login_uid})
+
+ if !resource.blank?
+ resource_name = resource.class.to_s.downcase
+ sign_in(resource_name, resource)
+ session[:user_id_type] = "myntumb"
+ redirect_to after_sign_in_path_for(resource)
+ else
+ flash[:error] = "很抱歉,您無此權限或帳號登入本站,請洽本站管理員
Sorry, you don't have the account or authority to login. Please contact the website administrator."
+ redirect_to :root
+ end
+ end
+
+ 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"
+ else
+ redirect_to root_path
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb
index 1b77fce..7722b9f 100644
--- a/app/views/devise/sessions/new.html.erb
+++ b/app/views/devise/sessions/new.html.erb
@@ -1,59 +1,62 @@
- Log In to Orbit
-
-
- <% end %>
or
+