personal-journal/app/controllers/desktop/journal_papers_controller.rb

170 lines
4.1 KiB
Ruby

class Desktop::JournalPapersController < DesktopAdminController
def menu
[
{
"title" => "List",
"layout" => "list",
"data" => get_paper_list
},
{
"title" => "Add/Edit",
"layout" => "form",
"data" => {"form" => form_data,"form_url" => "/something/"} }
]
end
def form_data
[
{
"type" => "text",
"id" => "text",
"label" => {
"en" => "Title English",
"zh_tw" => "Title Chinese"
},
"placeholder" => {
"en" => "Title English",
"zh_tw" => "Title Chinese"
},
"name" => "journal_papers[title]",
"multilanguage" => true
},
{
"type" => "checkbox",
"label" => "Check Box",
"name" => "journal_papers[checkbox]",
"option" => [{
"id" => "A",
"label" => {
"en" => "Check Box English",
"zh_tw" => "Check Box Chinese"
},
"value" => {
"en" => "A_en",
"zh_tw" => "A_zh_tw"
}
}, {
"id" => "B",
"label" => {
"en" => "Check Box English",
"zh_tw" => "Check Box Chinese"
},
"value" => {
"en" => "B_en",
"zh_tw" => "B_zh_tw"
}
}],
"multilanguage" => true
},
{
"type" => "radio",
"label" => "Radio",
"name" => "journal_papers[radio]",
"option" => [{
"id" => "C",
"label" => {
"en" => "Radio1 English",
"zh_tw" => "Radio1 Chinese"
},
"value" => {
"en" => "A_en",
"zh_tw" => "A_zh_tw"
}
}, {
"id" => "D",
"label" => {
"en" => "Radio2 English",
"zh_tw" => "Radio2 Chinese"
},
"value" => {
"en" => "B_en",
"zh_tw" => "B_zh_tw"
}
}],
"multilanguage" => true
},
{
"type" => "select",
"id" => "select",
"label" => "Select",
"name" => "journal_papers[select]",
"option" => [{
"text" => {
"en" => "Option1 English",
"zh_tw" => "Option1 Chinese"
},
"value" => {
"en" => "A_en",
"zh_tw" => "A_zh_tw"
},
"selected" => true
},{
"text" => {
"en" => "Option2 English",
"zh_tw" => "Option2 Chinese"
},
"value" => {
"en" => "B_en",
"zh_tw" => "B_zh_tw"
}
},{
"text" => {
"en" => "Option3 English",
"zh_tw" => "Option3 Chinese"
},
"value" => {
"en" => "C_en",
"zh_tw" => "C_zh_tw"
}
}],
"multilanguage" => true
},
{
"type" => "textarea",
"id" => "textarea",
"label" => {
"en" => "Textarea English",
"zh_tw" => "Textarea Chinese"
},
"name" => "journal_papers[textarea]",
"multilanguage" => true
},
{
"type" => "file",
"id" => "file",
"label" => {
"en" => "File English",
"zh_tw" => "File Chinese"
},
"name" => "journal_papers[file]",
"multilanguage" => true
}
]
end
def get_paper_list
user = OrbitHelper.current_user
user_profile = user.member_profile
journals = JournalPaper.where(:member_profile_id => user_profile.id)
journals = journals.collect do |j|
files = j.journal_paper_files.collect do |jpf|
{
"title" => jpf.title,
"description" => jpf.description,
"link" => jpf.journal_file.url,
"extension" => (jpf.journal_file.url.split(".").last rescue "")
}
end
{
"id" => j.id.to_s,
"paper_title" => j.paper_title,
"journal_title" => j.journal_title,
"keywords" => j.keywords,
"abstract" => j.abstract,
"files" => files
}
end
journals
end
end