* 'master' of https://github.com/Rulingcom/orbit: (102 commits)
  fixed fileview in english mode
  all sections and sections megerd
  Remove test
  Change the design for the whole site form designs index
  fixed fileview in english mode
  all sections and sections megerd
  Redirect to designs after buying template Randomise buy counts
  fixed empty db bug
  make factory girl file clean
  stupid fix
  section fixed and some other fixes
  try to fix problem
  fixed bug
  scroll fixed...
  fixed bug about co-author-relation
  fixed bug about co-author-relation
  fixed edit and new page of co-author
  view update
  current version
  Add images to store
  ...
This commit is contained in:
Rueshyna 2012-12-19 15:06:57 +08:00
commit fdae7e4a2c
152 changed files with 4763 additions and 709 deletions

View File

@ -79,7 +79,6 @@ group :test, :development do
gem 'faker' gem 'faker'
gem "sunspot-rails-tester" gem "sunspot-rails-tester"
gem 'spork'
gem 'database_cleaner' #Strategies for cleaning databases. Can be used to ensure a clean state for testing. gem 'database_cleaner' #Strategies for cleaning databases. Can be used to ensure a clean state for testing.
gem "rspec", "~> 2.0" gem "rspec", "~> 2.0"
gem "rspec-rails", "~> 2.0" gem "rspec-rails", "~> 2.0"
@ -89,7 +88,7 @@ group :test, :development do
gem "delorean" gem "delorean"
gem "watchr" gem "watchr"
gem "spork" gem "spork"
# gem "capybara" gem "capybara"
# gem 'yard' # gem 'yard'
# gem "bluecloth" # gem "bluecloth"
end end

BIN
app/assets/images/ar1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

BIN
app/assets/images/f1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
app/assets/images/f2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
app/assets/images/f3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
app/assets/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
app/assets/images/ui_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

View File

@ -63,6 +63,10 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
}) })
$(".bt-cancel").click(function(){ $(".bt-cancel").click(function(){
$("div[container=true]").html(prev_data); $("div[container=true]").html(prev_data);
o.tinyscrollbar_ext({
main: '.tinycanvas',
fill: '.list_t'
})
}) })
} }
}) })
@ -116,7 +120,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
li; li;
$.each(journalData,function(i,journal){ $.each(journalData,function(i,journal){
$.each(journal.papers,function(j,paper){ $.each(journal.papers,function(j,paper){
li = $('<li class="list_t_item"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+journal.title+'</div><div class="list_t_des">'+paper.title+'</div><a class="journal_paper_edit" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete" href="'+paper.url_delete+'">Delete</a></li>'); li = $('<li class="list_t_item"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+journal.title+'</div><div class="list_t_des">'+paper.title+'</div><div class="list_item_function"><a class="journal_paper_edit admbg2 admtxt" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete admbg2 admtxt" href="'+paper.url_delete+'">Delete</a></div></li>');
column.find("ul").append(li); column.find("ul").append(li);
if(counter%5==0){ if(counter%5==0){
$("#journal_p div#paper_list div.overview").append(column); $("#journal_p div#paper_list div.overview").append(column);
@ -136,18 +140,23 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
$.each(journalData,function(i,journal){ $.each(journalData,function(i,journal){
$.each(journal.papers,function(j,paper){ $.each(journal.papers,function(j,paper){
li = null; li = null;
li = $('<li class="list_t_item"></li>'); li = $('<li class="list_t_item file_view"></li>');
li.append('<div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+journal.title+'</div>'); li.append('<div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+journal.title+'</div><div class="list_t_des"></div>');
var file_list = li.find('.list_t_des');
$.each(paper.files,function(k,file){ $.each(paper.files,function(k,file){
var thistitle = file.title; var thistitle = file.title;
if(!file.title) if(!thistitle)
thistitle = "Untitled File"; thistitle = "";
var img = $('<div class="list_t_des"><a href="'+file.url+'" target="_blank" ><img src="'+file.icon+'" />'+thistitle+'</a></div>'); thistitle = ( thistitle.length > 8 )? thistitle.substring(0,8)+'...' : thistitle;
li.append(img); if(!file.title){
thistitle = "Untitled File";
}
var img = $('<a class="file" href="'+file.url+'" target="_blank" ><img src="'+file.icon+'" /><span class="filetitle">'+thistitle+'</span></a>');
file_list.append(img);
}) })
li.append('<a class="journal_paper_edit" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete" href="'+paper.url_delete+'">Delete</a>'); li.append('<div class="list_item_function"><a class="journal_paper_edit admbg2 admtxt" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete admbg2 admtxt" href="'+paper.url_delete+'">Delete</a></div>');
column.find("ul").append(li); column.find("ul").append(li);
if(counter%5==0){ if(counter%3==0){
$("#journal_p div#paper_list div.overview").append(column); $("#journal_p div#paper_list div.overview").append(column);
column = $('<div class="g_col list_t"><ul></ul></div>'); column = $('<div class="g_col list_t"><ul></ul></div>');
} }
@ -164,7 +173,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
li; li;
$.each(journalData,function(i,journal){ $.each(journalData,function(i,journal){
$.each(journal.papers,function(j,paper){ $.each(journal.papers,function(j,paper){
li = $('<li class="list_t_item"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+paper.title+'</div><div class="list_t_des">'+paper.keywords+'</div><a class="journal_paper_edit" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete" href="'+paper.url_delete+'">Delete</a></li>'); li = $('<li class="list_t_item"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+paper.title+'</div><div class="list_t_des">'+paper.keywords+'</div><div class="list_item_function"><a class="journal_paper_edit admbg2 admtxt" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete admbg2 admtxt" href="'+paper.url_delete+'">Delete</a></div></li>');
column.find("ul").append(li); column.find("ul").append(li);
if(counter%5==0){ if(counter%5==0){
$("#journal_p div#paper_list div.overview").append(column); $("#journal_p div#paper_list div.overview").append(column);
@ -184,7 +193,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
li; li;
$.each(journalData,function(i,journal){ $.each(journalData,function(i,journal){
$.each(journal.papers,function(j,paper){ $.each(journal.papers,function(j,paper){
li = $('<li class="list_t_item"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+paper.title+'</div><a class="journal_paper_edit" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete" href="'+paper.url_delete+'">Delete</a></li>'); li = $('<li class="list_t_item"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+paper.title+'</div><div class="list_item_function"><a class="journal_paper_edit admbg2 admtxt" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete admbg2 admtxt" href="'+paper.url_delete+'">Delete</a></div></li>');
column.find("ul").append(li); column.find("ul").append(li);
if(counter%5==0){ if(counter%5==0){
$("#journal_p div#paper_list div.overview").append(column); $("#journal_p div#paper_list div.overview").append(column);
@ -203,7 +212,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
li; li;
$.each(journalData,function(i,journal){ $.each(journalData,function(i,journal){
$.each(journal.papers,function(j,paper){ $.each(journal.papers,function(j,paper){
li = $('<li class="list_t_item" style="height:auto;"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+paper.title+'</div><div class="list_t_des">'+paper.abstract+'</div><a class="journal_paper_edit" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete" href="'+paper.url_delete+'">Delete</a></li>'); li = $('<li class="list_t_item" style="height:auto;"><div class="list_item_action"><a href="" class="icon-check-empty"></a><a href="" class="icon-star-empty"></a></div><div class="list_t_title">'+paper.title+'</div><div class="list_t_des">'+paper.abstract+'</div><div class="list_item_function"><a class="journal_paper_edit admbg2 admtxt" href="'+paper.url_edit+'">Edit</a> <a class="journal_paper_delete admbg2 admtxt" href="'+paper.url_delete+'">Delete</a></div></li>');
column.find("ul").append(li); column.find("ul").append(li);
$("#journal_p div#paper_list div.overview").append(column); $("#journal_p div#paper_list div.overview").append(column);
column = $('<div class="g_col list_t"><ul></ul></div>'); column = $('<div class="g_col list_t"><ul></ul></div>');
@ -238,10 +247,9 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
this.initializeJournalPapers.journal = function(){ // to open add pages in journal papers page this.initializeJournalPapers.journal = function(){ // to open add pages in journal papers page
var bindHandlers = function(){ // to bind handlers for add page var bindHandlers = function(){ // to bind handlers for add page
o.simple_drop_down(); o.simple_drop_down();
o.tinyscrollbar_ext({ o.tinyscrollbar_ext({
main: '.tinycanvas', main: '.tinycanvas',
fill: '.s_grid_con' fill: '.g_col'
}) })
} }
bindHandlers(); bindHandlers();
@ -261,9 +269,9 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
o.tinyscrollbar_ext({ o.tinyscrollbar_ext({
main: '.tinycanvas', main: '.tinycanvas',
fill: '.s_grid_con' fill: '.g_col'
}) })
$("a.bt-edit").click(function(){ $("div[container=true]").unbind(".editcoauthor").on("click.editcoauthor", "a.bt-edit", function(){
$.ajax({ $.ajax({
url : $(this).attr("href"), url : $(this).attr("href"),
type : "get", type : "get",
@ -276,12 +284,34 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
}) })
$(".bt-cancel").click(function(){ $(".bt-cancel").click(function(){
$("div[container=true]").html(prev_data); $("div[container=true]").html(prev_data);
o.tinyscrollbar_ext({
main: '.tinycanvas',
fill: '.g_col'
})
}) })
} }
}) })
return false; return false;
}) })
$("div[container=true]").unbind(".editype").on("click.edittype", "a.bt-edit-type", function(){
var parent = $(this).parent().parent();
parent.find('.list_item_function').hide();
$.ajax({
url : $(this).attr("href"),
type : "get",
success : function(data){
var prev_data = parent.find(".form_space").html();
parent.find(".form_space").html(data);
$(".bt-cancel-type").click(function(){
parent.find(".form_space").html(prev_data);
parent.find('.list_item_function').show();
});
}
})
return false;
})
$("div[container=true]").unbind(".delete").on("click.delete","a.bt-delete",function(){ $("div[container=true]").unbind(".delete").on("click.delete","a.bt-delete",function(){
var delurl = $(this).attr("href"); var delurl = $(this).attr("href");
var parent = $(this).parent().parent(); var parent = $(this).parent().parent();
o.confirm({ o.confirm({
@ -316,7 +346,8 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
fill: '.s_grid_con' fill: '.s_grid_con'
}) })
$(".bt-cancel").click(function(){ $(".bt-cancel").click(function(){
$("div[container=true]").html(prev_data); o.sub_menu_item($("div[content-type=menu] a[custom-load=coauthor]"));
}) })
} }
}) })
@ -335,6 +366,10 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
}) })
$(".bt-cancel").click(function(){ $(".bt-cancel").click(function(){
$("div[container=true]").html(prev_data); $("div[container=true]").html(prev_data);
o.tinyscrollbar_ext({
main: '.tinycanvas',
fill: '.g_col'
})
}) })
} }
}) })
@ -346,7 +381,15 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
this.initializeJournalPapers.coauthorRelationForm = function(data){ this.initializeJournalPapers.coauthorRelationForm = function(data){
if(data.success){ if(data.success){
o.notify(data.msg,"success"); o.notify(data.msg,"success");
$("#co_author_relation_table tbody").prepend(data.newvalue); $("#co_author_relation_table").html(data.newvalue);
}else{
o.notify(data.msg,"alert");
}
}
this.initializeJournalPapers.coauthorRelationEditForm = function(data){
if(data.success){
o.notify(data.msg,"success");
$("#co_author_relation_table").html(data.newvalue);
}else{ }else{
o.notify(data.msg,"alert"); o.notify(data.msg,"alert");
} }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
$('#feature .holder ul').cycle({
fx: 'scrollDown',
pager: '#feature-nav ul',
pause: 1,
pagerAnchorBuilder: function(idx, slide) {
// return selector string for existing anchor
return '#feature-nav ul li:eq(' + idx + ') a';
}
});

View File

@ -233,6 +233,21 @@ var orbitDesktop = function(dom){
if(o.data_method != "") if(o.data_method != "")
window.o[o.data_method](target,url,cache); window.o[o.data_method](target,url,cache);
} }
try{
if(!customload)
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
else{
if(submenuitem)
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"));
else
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
}
}catch(EX){}
})
}else{
$(o.contentHolder).html(o.desktopData[o.currentface]);
try{
if(!customload) if(!customload)
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]")); o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
else{ else{
@ -241,18 +256,7 @@ var orbitDesktop = function(dom){
else else
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]")); o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
} }
}catch(EX){}
})
}else{
$(o.contentHolder).html(o.desktopData[o.currentface]);
if(!customload)
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
else{
if(submenuitem)
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[custom-load="+submenuitem+"]"));
else
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
}
cache = true; cache = true;
if(typeof o.data_method != "undefined"){ if(typeof o.data_method != "undefined"){
if(o.data_method != "") if(o.data_method != "")
@ -565,7 +569,6 @@ var orbitDesktop = function(dom){
loadApps(); loadApps();
}; };
this.initializeSectionsManager = function(target,url,cache){ // this is init function for section manager this.initializeSectionsManager = function(target,url,cache){ // this is init function for section manager
var elementParent,element,slabel; var elementParent,element,slabel;
var bindHandlers = function(){ // this is bind handler for section manager page var bindHandlers = function(){ // this is bind handler for section manager page
var groupWrapperWidth = 0; var groupWrapperWidth = 0;
@ -634,6 +637,7 @@ var orbitDesktop = function(dom){
} }
} }
z++; z++;
$("div#group_wrapper").append($group); $("div#group_wrapper").append($group);
} }
var yy=1,y=0; var yy=1,y=0;
@ -641,6 +645,7 @@ var orbitDesktop = function(dom){
$.each(apps,function(i,app){ $.each(apps,function(i,app){
$li = $('<li class="element to_drop w1 hh2 hp vp" data-category="'+app.data_category+'" data-content="'+app.data_content+'" id="'+app._id+'"><div class="appicon"><img src="'+o.iconPath+app.data_content+'.png" class="" width="30" /></div><h1 class="appname thmtxth">'+app.title+'</h1></li>'); $li = $('<li class="element to_drop w1 hh2 hp vp" data-category="'+app.data_category+'" data-content="'+app.data_content+'" id="'+app._id+'"><div class="appicon"><img src="'+o.iconPath+app.data_content+'.png" class="" width="30" /></div><h1 class="appname thmtxth">'+app.title+'</h1></li>');
$("ul#section"+yy).append($li); $("ul#section"+yy).append($li);
}) })
if(y==1){ if(y==1){

View File

@ -26,7 +26,7 @@ var orbitDesktopAPI = function(){
break; break;
} }
$notify.find("img#note_img").attr("src",o.notifyImgPath+img); $notify.find("img#note_img").attr("src",o.notifyImgPath+img);
$notify.find(".note_message").text(msg); $notify.find(".note_message").html(msg);
n_height = $notify.outerHeight(); n_height = $notify.outerHeight();
if(!time)time=5000; else time=time*1000; if(!time)time=5000; else time=time*1000;
$notify $notify

View File

@ -0,0 +1,9 @@
$(document).ready(function(){
$('#screen-shot .holder')
.before('<div id="scr-nav"/>')
.cycle({
pager: '#scr-nav',
fx: 'scrollLeft',
pause: 1
});
});

View File

@ -26,7 +26,7 @@ time, mark, audio, video {
#container input, #container textarea, #container select, #container input:focus, #container textarea:focus { #container input, #container textarea, #container select, #container input:focus, #container textarea:focus {
border-radius: 0; border-radius: 0;
box-shadow: none; box-shadow: none;
font: inherit; font-family: inherit;
} }
/* HTML5 display-role reset for older browsers */ /* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, article, aside, details, figcaption, figure,
@ -126,10 +126,13 @@ a:focus { outline: none; }
.ini_input { .ini_input {
margin: 0; margin: 0;
padding: 0; padding: 0;
border: none; border: 0;
} }
.ini_input:focus { outline: none; } .ini_input:focus { outline: none; }
#search_app { position: relative; background-color: #fff; } #search_app {
position: relative;
background-color: #fff;
}
#search_app .form { #search_app .form {
position: absolute; position: absolute;
left: 0; left: 0;
@ -139,6 +142,7 @@ a:focus { outline: none; }
height: 28px; height: 28px;
line-height: 28px; line-height: 28px;
background: none; background: none;
border: 0;
} }
#search_app .submit { #search_app .submit {
position: absolute; position: absolute;
@ -289,7 +293,7 @@ a:focus { outline: none; }
position: relative; position: relative;
z-index: 9; z-index: 9;
} }
.toolbar .sdm, .toolbar .fn_g { display: inline-block; } .toolbar .sdm, .toolbar .fn_g { display: inline-block; vertical-align: top; }
.toolbar .sdm_o { top: 36px; background-color: #f0f0f0; } .toolbar .sdm_o { top: 36px; background-color: #f0f0f0; }
.toolbar button { .toolbar button {
border: none; border: none;
@ -300,7 +304,10 @@ a:focus { outline: none; }
font-size: 15px; font-size: 15px;
vertical-align: top; vertical-align: top;
} }
.toolbar .fn_btn {
display: inline-block;
vertical-align: top;
}
/* Setting Page */ /* Setting Page */
.theme_list {} .theme_list {}
@ -344,6 +351,7 @@ a:focus { outline: none; }
font-size: 15px; font-size: 15px;
line-height: 36px; line-height: 36px;
text-align: center; text-align: center;
border: 0;
} }
/* theme color opacity */ /* theme color opacity */
@ -452,7 +460,7 @@ a:focus { outline: none; }
height: 100%; height: 100%;
left: 0; left: 0;
top: 0; top: 0;
z-index: 9; z-index: 10;
} }
#orbitdiag .tile { background-color: #000; } #orbitdiag .tile { background-color: #000; }
.diag_holder { background-color: #000; } .diag_holder { background-color: #000; }
@ -535,7 +543,7 @@ a:focus { outline: none; }
.s_form input[type=text], .s_form input[type=password], .s_form textarea{ .s_form input[type=text], .s_form input[type=password], .s_form textarea{
outline: solid 3px #f6f6f6; outline: solid 3px #f6f6f6;
border: solid 1px #eee; border: solid 1px #eee;
font-size: 18px; font-size: 15px;
font-family: Arial !important; font-family: Arial !important;
margin: 0; margin: 0;
padding: 6px; padding: 6px;
@ -578,14 +586,14 @@ a:focus { outline: none; }
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
right: 5px; right: 5px;
top: 4px; top: 5px;
display: block; display: block;
background-color: #fff; background-color: #fff;
} }
.s_form.s_grid_con { width: 416px; } .s_form.s_grid_con { width: 416px; }
.s_form .s_grid_row { width: 410px; } .s_form .s_grid_row { width: 410px; }
.s_form .s_grid_row .s_grid:first-child { margin-left: 0; } .s_form .s_grid_row .s_grid:first-child { margin-left: 0; }
.s_form input[type=text].s_grid, .s_form input[type=passowrd].s_grid, .s_form textarea.s_grid, .s_form label.s_grid { float: none; display: inline-block; margin-left: 10px; } .s_form input[type=text].s_grid, .s_form input[type=passowrd].s_grid, .s_form textarea.s_grid, .s_form label.s_grid, .s_form select.s_grid { /*float: none; display: inline-block;*/ margin-left: 10px; }
.s_form input[type=text].s_grid_1, .s_form input[type=passowrd].s_grid_1, .s_form textarea.s_grid_1 { width: 46px; } .s_form input[type=text].s_grid_1, .s_form input[type=passowrd].s_grid_1, .s_form textarea.s_grid_1 { width: 46px; }
.s_form input[type=text].s_grid_2, .s_form input[type=passowrd].s_grid_2, .s_form textarea.s_grid_2 { width: 116px; } .s_form input[type=text].s_grid_2, .s_form input[type=passowrd].s_grid_2, .s_form textarea.s_grid_2 { width: 116px; }
.s_form input[type=text].s_grid_3, .s_form input[type=passowrd].s_grid_3, .s_form textarea.s_grid_3 { width: 186px; } .s_form input[type=text].s_grid_3, .s_form input[type=passowrd].s_grid_3, .s_form textarea.s_grid_3 { width: 186px; }
@ -598,7 +606,30 @@ a:focus { outline: none; }
.s_form select.s_grid_4 { width: 270px; } .s_form select.s_grid_4 { width: 270px; }
.s_form select.s_grid_5 { width: 340px; } .s_form select.s_grid_5 { width: 340px; }
.s_form select.s_grid_6 { width: 410px; } .s_form select.s_grid_6 { width: 410px; }
.s_form label.s_grid { line-height: 34px; }
.s_form select.s_grid {
height: 26px;
margin-top: 4px;
margin-bottom: 4px;
}
.s_form textarea.full_height {
height: 436px;
}
.s_form .s_table {
width: 100%;
}
.s_form .s_table th, .s_form .s_table td {
padding: 6px 0;
}
.s_form .s_table th {
text-align: left;
}
.s_form .s_table td {
vertical-align: middle;
}
.s_form .s_table thead th {
border-bottom: solid 1px #eee;
}
#group_wrapper {} #group_wrapper {}
@ -616,7 +647,7 @@ a:focus { outline: none; }
.list_t_title { .list_t_title {
font-size: 15px; font-size: 15px;
font-family: Arial; font-family: Arial;
margin-bottom: 10px; margin-bottom: 6px;
color: #333; color: #333;
} }
.list_t_des { .list_t_des {
@ -624,7 +655,7 @@ a:focus { outline: none; }
line-height: 1.5em; line-height: 1.5em;
color: #999; color: #999;
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
margin-bottom: 10px; margin-bottom: 4px;
} }
/* Connection Page */ /* Connection Page */
@ -684,6 +715,13 @@ a:focus { outline: none; }
float: left; float: left;
margin-left: -30px; margin-left: -30px;
} }
#paper_list .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
.list_item_action a { .list_item_action a {
display: block; display: block;
width: 20px; width: 20px;
@ -696,6 +734,29 @@ a:focus { outline: none; }
.list_item_action .icon-check-empty { color: #999; font-size: 20px; } .list_item_action .icon-check-empty { color: #999; font-size: 20px; }
.list_item_action .icon-check { color: #333; font-size: 20px; } .list_item_action .icon-check { color: #333; font-size: 20px; }
#paper_list .list_t_item.file_view {
height: 148px;
}
#paper_list .file_view .file {
display: inline-block;
width: 62px;
height: 50px;
text-align: center;
}
#paper_list .file_view .file:hover {
background-color: #ddd;
}
#paper_list .file_view .file img {
width: 24px;
display: block;
margin: 0 auto;
margin-top: 4px;
}
#paper_list .file_view .filetitle {
font-size: 11px;
-webkit-text-size-adjust: none;
}
/* Journal Paper Add */ /* Journal Paper Add */
#paper_add .s_grid_con { #paper_add .s_grid_con {
float: left; float: left;
@ -708,6 +769,122 @@ a:focus { outline: none; }
#paper_add .f_w { width: 336px; } #paper_add .f_w { width: 336px; }
#paper_add label { margin-right: 0; } #paper_add label { margin-right: 0; }
/* Journal Journal list */
#journal_list .g_col {
width: 416px;
}
#journal_list .g_col {
float: left;
height: 456px;
margin-left: 12px;
padding-left: 12px;
border-left: solid 1px #EEE;
}
#journal_list .g_col:first-child {
margin-left: 0;
padding-left: 0;
border: none;
}
#journal_list .g_col .list_t_item {
padding-left: 30px;
height: 86px;
}
#journal_list .list_item_action {
font-size: 12px;
float: left;
margin-left: -30px;
}
#journal_list .list_item_action i {
color: #999;
font-size: 20px;
display: block;
width: 20px;
height: 20px;
line-height: 20px;
margin: 1px 1px 6px 1px;
}
#journal_list .list_t_desc {
font-family: Arial, sans-serif;
font-size: 12px;
color: #999;
}
/* Journal Co-Author */
#co_author {}
#co_author .list_t_item {
height: 110px;
}
#co_author .list_item_function {}
#co_author .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
#co_author .g_col:first-child {
margin-left: 0;
padding-left: 10px;
border: none;
}
#co_author .g_col {
width: 300px;
height: 456px;
margin-left: 12px;
padding-left: 12px;
border-left: solid 1px #EEE;
}
#co_author .info {
font-family: Arial, sans-serif;
}
#co_author .info li {
margin-bottom: 8px;
color: #999;
}
#co_author .info .name {
font-size: 18px;
line-height: 24px;
color: #333;
}
/* Journal Co-Author Relationship*/
#co_author_relation_table .s_grid_con {
float: left;
width: 370px;
height: 456px;
margin-left: 12px;
padding-left: 12px;
border-left: solid 1px #EEE;
}
#co_author_relation_table .s_grid_con:first-child {
margin-left: 0;
padding-left: 0;
border: 0;
}
#co_author_relation_table .s_grid_row {
width: auto;
height: 64px;
}
#co_author_relation_table .edit_co_author_relation {
/*margin-left: -10px;*/
}
#co_author_relation_table .list_item_function a {
display: inline-block;
padding: 4px;
font-family: Arial, sans-serif;
font-size: 11px;
-webkit-text-size-adjust: none;
}
#co_author_relation_table .form_space {
margin-bottom: 10px;
font-size: 18px;
font-family: Arial, sans-serif;
}
/* Journal New Co-Author */
#new_co_author label {
margin-right: 0;
}
/* App */ /* App */
.app_frame { .app_frame {
margin: 48px 96px 48px 156px; margin: 48px 96px 48px 156px;

View File

@ -0,0 +1,111 @@
/* list page */
header {
background-image: url(<%= asset_path "mheader_bg.jpg"%>);
}
#toolbar {
background-image: url(<%= asset_path "mfilter_bg.jpg"%>);
border: solid 1px #8b8b8b;
box-shadow: inset 0 -1px 0 #9a9a9a;
}
#feature {
border: solid 1px #ccc;
padding: 3px;
background-color: #fff;
margin-bottom: 30px;
}
#feature ul {
margin: 0;
padding: 0;
list-style: none;
height: 220px;
}
#feature .holder {
width: 740px;
height: 220px;
overflow: hidden;
}
#feature-nav {
float: right;
}
#feature-nav li {
margin-top: 9px;
position: relative;
}
#feature-nav li:first-child {
margin-top: 0;
}
#feature-nav li a {
display: block;
}
#feature-nav li a:hover:after, #feature-nav li.activeSlide a:after {
content: '';
display: block;
border-top: 30px solid transparent;
border-bottom: 30px solid transparent;
border-right: 30px solid #fff;
position: absolute;
left: -30px;
top: 4px;
}
#feature-nav li a:hover, #feature-nav li.activeSlide {
outline: solid 9px #fff;
position: relative;
z-index: 99;
box-shadow: 0 10px 3px rgba(0,0,0,0.2);
}
#item-list ul {
margin: 0 -11px;
}
#item-list li {
width: 312px;
margin: 0 11px 35px 11px;
}
#item-list li a {
border: solid 1px #ccc;
background-color: #fff;
}
#item-list .item-thumb {
width: 144px;
height: 144px;
border: solid 3px #fff;
float: left;
}
#item-list .item-info {
width: 154px;
height: 144px;
padding: 3px;
float: right;
position: relative;
}
#item-list .item-name {
color: #000;
padding: 8px;
display: inline-block;
}
#item-list .item-price {
right: 10px;
bottom: 10px;
border-radius: 3px;
}
.fn .label {
color: #eee;
}
/* content page */
#content {
background: #fff url(<%= asset_path "mside_bg.png"%>) 0 0 repeat-y;
padding: 20px 0;
}
.user-list {
background-color: #fff;
}
.user-list li:first-child {
border-top: 0;
}
.user-list li {
color: #333;
border-top: solid 1px #f1f1f1;
padding: 8px;
padding-left: 20px;
background: url(<%= asset_path "ar1.png"%>) 10px 14px no-repeat;
}

375
app/assets/stylesheets/normalize.css vendored Normal file
View File

@ -0,0 +1,375 @@
/*! normalize.css v2.0.1 | MIT License | git.io/normalize */
/* ==========================================================================
HTML5 display definitions
========================================================================== */
/*
* Corrects `block` display not defined in IE 8/9.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
display: block;
}
/*
* Corrects `inline-block` display not defined in IE 8/9.
*/
audio,
canvas,
video {
display: inline-block;
}
/*
* Prevents modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/*
* Addresses styling for `hidden` attribute not present in IE 8/9.
*/
[hidden] {
display: none;
}
/* ==========================================================================
Base
========================================================================== */
/*
* 1. Sets default font family to sans-serif.
* 2. Prevents iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
-ms-text-size-adjust: 100%; /* 2 */
}
/*
* Removes default margin.
*/
body {
margin: 0;
}
/* ==========================================================================
Links
========================================================================== */
/*
* Addresses `outline` inconsistency between Chrome and other browsers.
*/
a:focus {
outline: thin dotted;
}
/*
* Improves readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* ==========================================================================
Typography
========================================================================== */
/*
* Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
* Safari 5, and Chrome.
*/
h1 {
font-size: 2em;
}
/*
* Addresses styling not present in IE 8/9, Safari 5, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/*
* Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/*
* Addresses styling not present in Safari 5 and Chrome.
*/
dfn {
font-style: italic;
}
/*
* Addresses styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/*
* Corrects font family set oddly in Safari 5 and Chrome.
*/
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
}
/*
* Improves readability of pre-formatted text in all browsers.
*/
pre {
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
/*
* Sets consistent quote types.
*/
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
/*
* Addresses inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/*
* Prevents `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* ==========================================================================
Embedded content
========================================================================== */
/*
* Removes border when inside `a` element in IE 8/9.
*/
img {
border: 0;
}
/*
* Corrects overflow displayed oddly in IE 9.
*/
svg:not(:root) {
overflow: hidden;
}
/* ==========================================================================
Figures
========================================================================== */
/*
* Addresses margin not present in IE 8/9 and Safari 5.
*/
figure {
margin: 0;
}
/* ==========================================================================
Forms
========================================================================== */
/*
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/*
* 1. Corrects color not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/*
* 1. Corrects font family not being inherited in all browsers.
* 2. Corrects font size not being inherited in all browsers.
* 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
*/
button,
input,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 2 */
margin: 0; /* 3 */
}
/*
* Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
button,
input {
line-height: normal;
}
/*
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Corrects inability to style clickable `input` types in iOS.
* 3. Improves usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/*
* Re-set default cursor for disabled elements.
*/
button[disabled],
input[disabled] {
cursor: default;
}
/*
* 1. Addresses box sizing set to `content-box` in IE 8/9.
* 2. Removes excess padding in IE 8/9.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/*
* 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/*
* Removes inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/*
* Removes inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/*
* 1. Removes default vertical scrollbar in IE 8/9.
* 2. Improves readability and alignment in all browsers.
*/
textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}
/* ==========================================================================
Tables
========================================================================== */
/*
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}

View File

@ -143,6 +143,7 @@
display: inline-block; display: inline-block;
line-height: 22px; line-height: 22px;
padding: 0 10px; padding: 0 10px;
vertical-align: top;
} }
#orbit-bar .nav img.member-img { #orbit-bar .nav img.member-img {
display: inline-block; display: inline-block;

View File

@ -0,0 +1,386 @@
@import url(http://fonts.googleapis.com/css?family=Lato:300,400,700);
body {
font-family: Lato, 微軟正黑體, 新細明體, sans-serif;
font-size: 80%;
margin: 0;
padding: 0;
background-color: #f0f0f0;
}
.wrapper {
width: 980px;
margin: 0 auto;
}
#main-menu ul, #item-list ul, .item-extra-info, .user-list, .option-list {
margin: 0;
padding: 0;
list-style: none;
}
header {
/*background-color: #e0e0e0;
background-position: center 60px;
background-repeat: no-repeat;
height: 200px;*/
}
#orbit-logo {
margin: 0;
height: 62px;
}
#orbit-logo a {
display: inline-block;
width: 150px;
height: 32px;
overflow: hidden;
text-indent: -9999px;
background: url(<%= asset_path "logo.png"%>) 0 0 no-repeat;
margin-top: 14px;
}
#orbit-logo span {
font-size: 10px;
color: #cdcdcd;
font-weight: normal;
display: inline-block;
vertical-align: middle;
margin: -4px 0 0 16px;
-webkit-text-size-adjust: none;
}
#main-menu {
background: url(<%= asset_path "topnav_bg.png"%>) 0 0 repeat-x;
}
#main-menu ul {
float: right;
}
#main-menu li {
float: left;
margin-left: 24px;
line-height: 62px;
}
#main-menu li a {
display: inline-block;
line-height: normal;
color: #b2b2b2;
font-size: 14px;
text-transform: uppercase;
text-decoration: none;
}
#main-menu li a:hover, #main-menu li a.active {
color: #fff;
}
#main-menu .demo a {
background-color: #c51c09;
color: #fff;
border: solid 2px #ea311d;
border-radius: 5px;
padding: 4px 8px;
font-weight: normal;
}
#page-title {
margin: 0;
padding: 36px 0 0 16px;
font-size: 3em;
text-shadow: 0 2px 0 #fff;
}
#page-title .sub {
font-weight: 300;
color: #b2b2b2;
}
#search-form {
float: right;
margin: 50px 16px 0 0;
}
#search-form input {
display: block;
margin: 0;
padding: 7px 12px;
outline: 0;
border: 0;
width: 230px;
height: 16px;
line-height: 16px;
color: #333;
font-family: inherit;
box-shadow: inset 0 1px 0 #999, inset 0 -1px 0 #eee;
border-radius: 15px;
background-color: #cecece;
}
#toolbar {
margin: 35px 0;
height: 50px;
background-color: #fff;
background-repeat: repeat-x;
border: solid 1px #e0e0e0;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #c9c9c9;
position: relative;
z-index: 9;
}
.ui {
background: #F2F2F2 url(<%= asset_path "ui_bg.png" %>) left center repeat-x;
height: 28px;
line-height: 28px;
border: solid 1px #e0e0e0;
border-radius: 3px;
cursor: pointer;
}
.controller, .btn {
padding: 0 8px;
text-decoration: none;
display: block;
height: 28px;
line-height: 28px;
color: #333;
}
.controller:hover, .btn:hover {
background: none;
background-color: #fff;
position: relative;
z-index: 99;
}
.fn {
display: inline-block;
vertical-align: top;
font-size: 14px;
margin: 10px 0 10px 16px;
}
.fn .label {
display: inline-block;
vertical-align: top;
line-height: 28px;
color: #999;
margin-right: 8px;
font-size: 1em;
font-weight: normal;
text-shadow: none;
background: none;
}
.option-default {
font-weight: bold;
}
.option-list {
/*display: none;*/
position: absolute;
top: 28px;
left: -1px;
background-color: #fff;
border: solid 1px #e0e0e0;
width: 180px;
}
.option-list li {
border-top: solid 1px #eee;
}
.option-list li:first-child {
border-top: 0;
}
.option-list a {
color: #666;
text-decoration: none;
}
.option-list a:hover {
color: #333;
background-color: #f6f6f6;
}
.drop-menu {
position: relative;
display: inline-block;
}
.drop-menu:after {
display: table;
width: 100%;
content: '';
}
.drop-menu .arrow {
display: inline-block;
background: url(<%= asset_path "dropdown_ad.png"%>) 0 0 no-repeat;
width: 16px;
height: 18px;
vertical-align: top;
margin: 5px 0 0 8px;
}
.drop-menu:hover {
border-radius: 3px 3px 0 0;
}
.drop-menu:hover .controller {
border-bottom: solid 1px #fff;
background-color: #fff;
position: relative;
z-index: 99;
}
.drop-menu:hover .option-list {
display: block;
border-radius: 0 4px 4px 4px;
}
.drop-menu .option-list {
display: none;
}
.drop-menu .option-list li a {
display: block;
line-height: normal;
padding: 8px;
}
.drop-menu .option-default {
display: inline-block;
}
.select {
display: inline-block;
}
.select .option-list {
position: static;
display: inline-block;
border: 0;
width: auto;
background-color: transparent;
}
.select .option-list li {
display: inline-block;
border-top: 0;
vertical-align: top;
}
.select .option-list li a {
display: block;
text-decoration: none;
color: #333;
}
#item-list ul {}
#item-list li {
float: left;
}
#item-list li a {
display: block;
overflow: hidden;
position: relative;
}
#item-list li a:hover {}
.item-thumb {
display: block;
background: #ccc url(<%= asset_path "thumb_default.png"%>) center center no-repeat;
}
#item-list .item-info {
position: relative;
display: block;
}
#item-list .item-name {
font-size: 1.25em;
font-weight: normal;
}
#item-list .item-price {
position: absolute;
right: 0;
bottom: 0;
background-color: #c51c09;
height: 24px;
line-height: 24px;
color: #fff;
padding: 0 8px;
}
/* content page */
#content h3 {
font-size: 1.5em;
text-transform: capitalize;
}
#content .side, #content .main {
padding: 0 20px;
}
#content .side {
float: left;
}
#content .main {
float: right;
width: 676px;
}
#item-info .item-thumb {
width: 210px;
height: 210px;
border: solid 5px #fff;
}
#item-info .item-name {
font-size: 2.16em;
text-shadow: 0 2px 0 #fff;
}
#item-info .item-extra-info {
margin: 20px 0;
}
#item-info .item-extra-info li {
border-top: solid 1px #E0E0E0;
padding-top: 12px;
margin-top: 12px;
}
#item-info .item-extra-info li:first-child {
border-top: 0;
padding: 0;
margin: 0;
}
#item-info .item-extra-info .title {
color: #666;
display: inline-block;
/*width: 70px;*/
margin-right: 12px;
}
#item-info .item-extra-info .count {
font-size: 1.5em;
color: #000;
}
#screen-shot {
padding: 5px;
background-color: #fff;
}
#screen-shot .holder {
overflow: hidden;
height: 450px;
}
#screen-shot .preview {
width: 670px;
height: 450px;
}
#scr-nav {
text-align: center;
height: 30px;
line-height: 30px;
}
#scr-nav a {
display: inline-block;
width: 12px;
height: 12px;
margin: 0 6px;
overflow: hidden;
text-indent: -999px;
background-color: #aaa;
border-radius: 6px;
box-shadow: inset 0 1px 0 rgba(0,0,0,0.4);
}
#scr-nav a.activeSlide, #scr-nav a:hover {
background-color: #e7230d;
}
#download {
display: block;
text-align: center;
text-decoration: none;
text-transform: capitalize;
font-size: 1.5em;
color: #fff;
line-height: 2.2em;
text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
border-radius: 5px;
box-shadow: inset 0 -2px 0 rgba(0,0,0,0.2);
background: #dd200b;
background: -moz-linear-gradient(top, #dd200b 0%, #c51c09 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#dd200b), color-stop(100%,#c51c09));
background: -webkit-linear-gradient(top, #dd200b 0%,#c51c09 100%);
background: -o-linear-gradient(top, #dd200b 0%,#c51c09 100%);
background: -ms-linear-gradient(top, #dd200b 0%,#c51c09 100%);
background: linear-gradient(to bottom, #dd200b 0%,#c51c09 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dd200b', endColorstr='#c51c09',GradientType=0 );
}
footer {
background-color: #fff;
text-align: center;
font-size: 12px;
color: #999;
padding: 16px 0;
margin-top: 35px;
}
footer p {
margin: 0;
}

View File

@ -0,0 +1,110 @@
/* list page */
header {
background-image: url(<%= asset_path "theader_bg.jpg"%>);
}
#toolbar {
background-image: url(<%= asset_path "tfilter_bg.jpg"%>);
}
#item-list li {
width: 25%;
}
#item-list li a {
width: 220px;
height: 220px;
background: url(<%= asset_path "tlist_tap.png"%>) center top no-repeat;
padding-top: 16px;
margin: 0 auto 35px auto;
background-color: #fff;
box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
#item-list li a:hover .item-info {
visibility: visible;
opacity: 1;
}
#item-list .item-thumb {
width: 210px;
height: 210px;
border: solid 5px #fff;
}
#item-list .item-info {
visibility: hidden;
opacity: 0;
position: absolute;
bottom: 5px;
left: 5px;
width: 190px;
height: 60px;
padding: 10px;
background-color: #000;
background-color: rgba(0,0,0,0.7);
-webkit-transition: opacity 0.3s ease;
-moz-transition: opacity 0.3s ease;
transition: opacity 0.3s ease;
}
#item-list .item-name {
color: #fff;
}
#item-list .item-price {
right: 10px;
bottom: 0;
border-radius: 3px 3px 0 0;
}
.color-tag {
display: inline-block;
vertical-align: middle;
width: 24px;
height: 24px;
border-radius: 2px;
box-shadow: inset 0 1px 1px rgba(0,0,0,0.6);
}
.btn .color-tag {
margin: 2px -6px;
vertical-align: baseline;
}
.red {
background-color: #ef202a;
}
.yellow {
background-color: #feba29;
}
.green {
background-color: #2ca53b;
}
.blue {
background-color: #019cef;
}
.purple{
background-color: #d402e7;
}
.white {
background-color: #fff;
}
.gray {
background-color: #969696;
}
.black {
background-color: #222;
}
#color-filter .btn:hover {
background-color: #aaa;
border-color: #9a9a9a;
background-image: linear-gradient(bottom, rgb(204,204,204) 0%, rgb(172,172,172) 100%);
background-image: -o-linear-gradient(bottom, rgb(204,204,204) 0%, rgb(172,172,172) 100%);
background-image: -moz-linear-gradient(bottom, rgb(204,204,204) 0%, rgb(172,172,172) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(204,204,204) 0%, rgb(172,172,172) 100%);
background-image: -ms-linear-gradient(bottom, rgb(204,204,204) 0%, rgb(172,172,172) 100%);
}
#color-filter .btn:hover .color-tag {
box-shadow: inset 0 1px 1px rgba(0,0,0,0.6), inset 0 -1px 0 rgba(255,255,255,0.6);
}
#color-filter .option-default:hover {
background-color: #f6f6f6;
background-image: none;
border-color: #e0e0e0;
}
/* content page */
#item-info .item-thumb, #screen-shot {
box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

View File

@ -8,6 +8,9 @@ class Admin::InfosController < ApplicationController
def index def index
@attributes = Info.all.entries @attributes = Info.all.entries
@roles = Role.excludes('disabled' => true)
render :template => 'admin/attributes/index' render :template => 'admin/attributes/index'
end end
@ -22,7 +25,7 @@ class Admin::InfosController < ApplicationController
def edit def edit
@attribute = Info.find(params[:id]) @attribute = Info.find(params[:id])
@attribute_fields_upper_object = [@attribute] # @attribute_fields_upper_object = [@attribute]
render :template => 'admin/attributes/edit' render :template => 'admin/attributes/edit'
end end
@ -49,10 +52,20 @@ class Admin::InfosController < ApplicationController
end end
def add_attribute_field def add_attribute_field
attribute = Info.find(params[:info_id]) rescue nil attribute = Info.find(params[:info_id]) rescue nil
@attribute_field_counter = attribute.attribute_fields.count @attribute_field_counter = attribute.attribute_fields.count
@attribute_field = attribute.attribute_fields.build @attribute_field = attribute.attribute_fields.build
@attribute_field.save @attribute_field.save
@attribute_field[:af_count] = @attribute_field_counter
@attribute = Info.find(params[:info_id])
respond_to do |format|
format.js { render 'admin/attributes/add_attribute_field' }
end
end end
protected protected

View File

@ -9,6 +9,18 @@ class Admin::PurchasesController < ApplicationController
@purchases = Purchase.all.entries @purchases = Purchase.all.entries
end end
def buy_template
original_file, zip_name = download_template(params[:id])
temp_file = Tempfile.new("temp_file_zip")
temp_file.binmode
temp_file.write original_file
temp_file.rewind
unzip_design(temp_file, zip_name)
temp_file.close
temp_file.unlink
redirect_to admin_designs_url
end
def download def download
@purchase = Purchase.first(:conditions => {:id => params[:id]}) @purchase = Purchase.first(:conditions => {:id => params[:id]})
download_purchase(@purchase, request.env['REQUEST_URI'].split('admin')[0].chop) download_purchase(@purchase, request.env['REQUEST_URI'].split('admin')[0].chop)
@ -183,4 +195,66 @@ class Admin::PurchasesController < ApplicationController
end end
def download_template(id)
uri = URI.parse("http://#{APP_CONFIG['store_ip']}/download/design/#{id}")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
[response.body, (response['content-disposition'].split('filename=')[1].gsub(/[\\\"]|.zip/, '') rescue '')]
end
def unzip_design(input_file, zip_name)
temp_file = Tempfile.new("temp_file")
temp_file.write(input_file.read.force_encoding('UTF-8'))
temp_file.rewind
Zip::ZipFile.open(temp_file) { |zip_file|
design = Design.new.from_json(zip_file.read("#{zip_name}/info.json"))
Dir.mktmpdir('f_path') { |dir|
themes_entries = []
javascripts_entries = []
images_entries = []
screenshots_entries = []
zip_file.entries.each do |entry|
case (path = entry.to_s)
when /\A(#{zip_name})\/(default\.css)\z/ #for default css
design.build_css_default(:file => get_temp_file(zip_file, dir, entry))
when /\A(#{zip_name})\/(reset\.css)\z/ #for reset css
design.build_css_reset(:file => get_temp_file(zip_file, dir, entry))
when /\A(#{zip_name})\/(layout\.html)\z/ #for layout html
design.build_layout(:file => get_temp_file(zip_file, dir, entry))
when /\A(#{zip_name})\/(thumb((\.jpg)|(\.png)|(\.gif)))\z/ #for thumb
design.build_thumb(:file => get_temp_file(zip_file, dir, entry))
when /\A(#{zip_name})\/(themes)\/.*(\.css)\z/ #for themes css
themes_entries << entry
when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/ #for js
javascripts_entries << entry
when /\A(#{zip_name})\/(images)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img
images_entries << entry
when /\A(#{zip_name})\/(screenshots)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img
screenshots_entries << entry
end
end
['themes', 'javascripts', 'images', 'screenshots'].each do |type|
eval("#{type}_entries").each do |entry|
eval("design.#{type}").build(:file => get_temp_file(zip_file, dir, entry))
end
end
}
design.zip_file = input_file
design.save
}
temp_file.close
temp_file.unlink
end
def get_temp_file(zip_file, dir, entry)
filename = File.basename(entry.to_s)
temp_file = File.new(dir + '/' + filename, 'w+')
temp_file.write (zip_file.read entry ).force_encoding('UTF-8')
temp_file
end
end end

View File

@ -57,6 +57,24 @@ class Admin::SitesController < ApplicationController
end end
def change_design
design = Design.find(params[:site_id]) rescue nil
update_design(design) if design
render :nothing => true
end
protected
def update_design(design)
@site.design = design
if @site.save
theme_id = design.themes.first.id
Page.all.each do |page|
page.update_attributes({design_id: design.id, theme_id: (theme_id unless page.root?)})
end
end
end
private private
def get_site def get_site

View File

@ -3,9 +3,29 @@ class Admin::TemplateStoreController < ApplicationController
layout "new_admin" layout "new_admin"
def index def index
@templates = JSON.parse(get_templates)
end end
def show def show
@template = JSON.parse(get_template(params[:id])) rescue nil
end
protected
def get_template(id)
uri = URI.parse("http://#{APP_CONFIG['store_ip']}/store/design/#{id}")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
response.body
end
def get_templates
uri = URI.parse("http://#{APP_CONFIG['store_ip']}/store/designs")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
response.body
end end
end end

View File

@ -8,18 +8,38 @@ class Desktop::CoAuthorRelationsController < ApplicationController
end end
end end
def edit
@co_author_relation = CoAuthorRelation.find(params[:id])
respond_to do |format|
format.html { render :layout => false}
end
end
def new def new
@new_relation = CoAuthorRelation.new @co_author_relation = CoAuthorRelation.new
end end
def create def create
@new_relation = CoAuthorRelation.new(params[:co_author_relation]) @co_author_relation = CoAuthorRelation.new(params[:co_author_relation])
@co_author_relations = CoAuthorRelation.all
if @new_relation.save if @co_author_relation.save
newv = render_to_string :partial=>"show_form", :object=>@new_relation newv = render_to_string partial: "show_form", object: @co_author_relations
render json: {success:true, msg: "New Relation successfully saved!","newvalue"=>newv}.to_json render json: {success: true, msg: "New Relation successfully saved!", newvalue: newv}.to_json
else else
error_msg = @new_relation.errors.full_messages.join("<br />") error_msg = @co_author_relation.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json
end
end
def update
@co_author_relation = CoAuthorRelation.find(params[:id])
if @co_author_relation.update_attributes(params[:co_author_relation])
@co_author_relations = CoAuthorRelation.all
newv = render_to_string partial: "show_form", object: @co_author_relations
render json: {success: true, msg: "New Relation successfully updated!", newvalue: newv}.to_json
else
error_msg = @co_author.errors.full_messages.join("<br />")
render json: {success: false, msg: error_msg}.to_json render json: {success: false, msg: error_msg}.to_json
end end
end end
@ -27,7 +47,17 @@ class Desktop::CoAuthorRelationsController < ApplicationController
def destroy def destroy
@co_author_relation = CoAuthorRelation.find(params[:id]) @co_author_relation = CoAuthorRelation.find(params[:id])
@co_author_relation.destroy @co_author_relation.destroy
reset_co_author_relation
render :json => {success: true, msg: "deleted successfully!"} render :json => {success: true, msg: "deleted successfully!"}
end end
private
def reset_co_author_relation
co_author = CoAuthor.where(co_author_relations_id: @co_author_relation.id)
co_author.map do |c|
c.update_attributes(co_author_relations_id: nil)
end
end
end end

View File

@ -1,6 +1,8 @@
class Desktop::CoAuthorsController < ApplicationController class Desktop::CoAuthorsController < ApplicationController
def index def index
@co_authors = CoAuthor.where(name_id: current_user.id) nils, not_nils = CoAuthor.where(name_id: current_user.id)\
.asc(:co_author).partition{|p| p.email.nil?}
@co_authors = not_nils + nils
@co_author_relations = CoAuthorRelation.all @co_author_relations = CoAuthorRelation.all
respond_to do |format| respond_to do |format|
@ -8,15 +10,6 @@ class Desktop::CoAuthorsController < ApplicationController
end end
end end
def show
@co_author = CoAuthor.find(params[:id])
respond_to do |format|
format.html { redirect_to desktop_co_authors_url, :layout => false }
format.json { render json: @co_author }
end
end
def new def new
@co_author = CoAuthor.new @co_author = CoAuthor.new
@co_author_relations = CoAuthorRelation.all @co_author_relations = CoAuthorRelation.all

View File

@ -1,5 +1,4 @@
class Desktop::JournalListsController < ApplicationController class Desktop::JournalListsController < ApplicationController
def index def index
level_types = JournalLevelType.all level_types = JournalLevelType.all
all_journal_lists = WritingJournal.where(create_user_id: current_user.id) all_journal_lists = WritingJournal.where(create_user_id: current_user.id)
@ -7,8 +6,7 @@ class Desktop::JournalListsController < ApplicationController
[ j.journal_title, [ j.journal_title,
j.journal_level_type_ids.map do |type| j.journal_level_type_ids.map do |type|
level_types.find(type).title level_types.find(type).title
end.join(",") end]
].join(" -- ")
end end
@journal_lists = all_journal_lists.uniq @journal_lists = all_journal_lists.uniq

View File

@ -1,6 +1,4 @@
class Desktop::JournalPagesController < ApplicationController class Desktop::JournalPagesController < ApplicationController
#before_filter :check_for_cancel, :only => [:create, :update]
def index def index
@writing_journal = WritingJournal.where(create_user_id: current_user.id) @writing_journal = WritingJournal.where(create_user_id: current_user.id)
@level_types = JournalLevelType.all @level_types = JournalLevelType.all
@ -10,9 +8,6 @@ class Desktop::JournalPagesController < ApplicationController
end end
end end
def show
end
def new def new
@writing_journal = WritingJournal.new @writing_journal = WritingJournal.new
@level_types = JournalLevelType.all @level_types = JournalLevelType.all
@ -109,10 +104,4 @@ class Desktop::JournalPagesController < ApplicationController
render json: JSON.pretty_generate(data) render json: JSON.pretty_generate(data)
end end
private
def check_for_cancel
if params[:commit] == "Cancel"
end
end
end end

View File

@ -19,7 +19,7 @@ class DesktopController< ApplicationController
render :layout => false render :layout => false
end end
def sections def allsections
render :layout => false render :layout => false
end end

View File

@ -8,62 +8,27 @@ class Design
field :title, :type => String field :title, :type => String
field :version, :type => String field :version, :type => String
mount_uploader :zip_file, AssetUploader
has_one :site
has_one :css_default, as: :css, :autosave => true, :dependent => :destroy has_one :css_default, as: :css, :autosave => true, :dependent => :destroy
has_one :layout, :autosave => true, :dependent => :destroy has_one :layout, :autosave => true, :dependent => :destroy
has_one :css_reset, :autosave => true, :dependent => :destroy has_one :css_reset, :autosave => true, :dependent => :destroy
has_one :thumb, :autosave => true, :dependent => :destroy
has_many :images, as: :imgs, :autosave => true, :dependent => :destroy has_many :images, as: :imgs, :autosave => true, :dependent => :destroy
has_many :javascripts, as: :js, :autosave => true, :dependent => :destroy has_many :javascripts, as: :js, :autosave => true, :dependent => :destroy
has_many :pages has_many :pages
has_many :screenshots, :autosave => true, :dependent => :destroy
has_many :themes, :autosave => true, :dependent => :destroy has_many :themes, :autosave => true, :dependent => :destroy
accepts_nested_attributes_for :images, :allow_destroy => true accepts_nested_attributes_for :images, :allow_destroy => true
accepts_nested_attributes_for :javascripts, :allow_destroy => true accepts_nested_attributes_for :javascripts, :allow_destroy => true
accepts_nested_attributes_for :screenshots, :allow_destroy => true
accepts_nested_attributes_for :themes, :allow_destroy => true accepts_nested_attributes_for :themes, :allow_destroy => true
validates_presence_of :author, :title validates_presence_of :author, :title
after_save :parse_css_for_images after_save :parse_css_for_images
def new_files=(*attrs)
attrs[0].map do |key,items_ary| #Loop by JSs,Themes,Imgs
self.files=([items_ary, key])
end
end
# def javascripts=(*attrs)
# self.files = (attrs << 'javascripts')
# end
#
# def themes=(*attrs)
# self.files = (attrs << 'themes')
# end
#
# def images=(*attrs)
# self.files = (attrs << 'images')
# end
# Update or create the attribute records
def files=(attrs)
case attrs.last
when 'layout'
files = self.layout.build
else
files = eval(attrs.last)
end
attrs[0].each do |a|
if a[:id].blank? && !a[:file].blank?
files.build(:file => a[:file], :to_save => true)
else
files.each do |file|
if file.id.to_s == a[:id]
file.to_destroy = a[:to_destroy]
end
end
end
end
end
protected protected

View File

@ -0,0 +1,3 @@
class Screenshot < Image
belongs_to :design
end

View File

@ -0,0 +1,3 @@
class Thumb < Image
belongs_to :design
end

View File

@ -11,7 +11,6 @@ class Section
def initialize_group def initialize_group
self.groups.build self.groups.build
self.groups.build
end end
end end

View File

@ -26,6 +26,7 @@ class Site
field :footer, localize: true field :footer, localize: true
field :sub_menu, localize: true field :sub_menu, localize: true
belongs_to :design
has_many :site_metas, :autosave => true, :dependent => :destroy has_many :site_metas, :autosave => true, :dependent => :destroy
def generate_keys def generate_keys

View File

@ -4,6 +4,7 @@ class AttributeField
include ::AttributeFieldsHelper include ::AttributeFieldsHelper
field :key field :key
field :af_count
field :markup ,:default=>"text_field" field :markup ,:default=>"text_field"
field :option_list ,:type => Hash,:default => {} field :option_list ,:type => Hash,:default => {}
field :markup_options,:type => Hash field :markup_options,:type => Hash

View File

@ -3,6 +3,7 @@
class ImageUploader < CarrierWave::Uploader::Base class ImageUploader < CarrierWave::Uploader::Base
require 'mime/types' require 'mime/types'
require 'carrierwave/processing/mini_magick'
include Sprockets::Helpers::RailsHelper include Sprockets::Helpers::RailsHelper
process :set_content_type process :set_content_type
@ -61,15 +62,21 @@ class ImageUploader < CarrierWave::Uploader::Base
# def filename # def filename
# "something.jpg" if original_filename # "something.jpg" if original_filename
# end # end
def cache_dir
"#{Rails.root}/tmp/uploads"
end
def manipulate! def manipulate!
cache_stored_file! if !cached? cache_stored_file! if !cached?
#raise File.extname(current_path.to_s).to_s
image = ::MiniMagick::Image.open(current_path) image = ::MiniMagick::Image.open(current_path)
image = yield(image) # image = yield(image)
image.write(current_path) # image.write(current_path)
::MiniMagick::Image.open(current_path) # ::MiniMagick::Image.open(current_path)
rescue # rescue
nil # nil
end end
end end

View File

@ -0,0 +1 @@
$('<%= j render :partial => 'shared/attribute_field/attribute_field', :collection => [@attribute_field] %>').appendTo('#attribute_field_list').hide().fadeIn();

View File

@ -18,13 +18,14 @@
</div> </div>
</div> </div>
</div> </div>
<% @attribute_fields_upper_object.each do |attribute|%> <div class="map-block back attributes">
<div class="map-block back attributes"> <h4><span><%= @attribute.title+ t(:attributes)%></span></h4>
<h4><span><%= attribute.title+ t(:attributes)%></span></h4> <div id="attribute_field_list">
<%= render :partial=>"shared/attribute_field/attribute_field",:collection=>attribute.attribute_fields%> <%= render :partial=>"shared/attribute_field/attribute_field",:collection=>@attribute.attribute_fields%>
</div> </div>
<% end %> </div>
</div> </div>
<div class="form-actions form-fixed pagination-right"> <div class="form-actions form-fixed pagination-right">
<%= link_to content_tag(:i,t(:add_attribute_field),:class=>"icon-plus icon-white"),admin_info_add_attribute_field_path(@attribute),:class=>"btn btn-primary",:remote => true%> <%= link_to content_tag(:i,t(:add_attribute_field),:class=>"icon-plus icon-white"),admin_info_add_attribute_field_path(@attribute),:class=>"btn btn-primary",:remote => true%>

View File

@ -1,6 +1,6 @@
<tr class="with_action"> <tr class="with_action">
<td><%= check_box_tag 'to_delete[]', design.id, false, :class => "checkbox_in_list" %></td> <td class="span1"><%= check_box_tag 'to_delete[]', design.id, false, :class => "checkbox_in_list" %></td>
<td> <td class="span2">
<%= design.title %> <%= design.title %>
<div class="quick-edit"> <div class="quick-edit">
<ul class="nav nav-pills hide"> <ul class="nav nav-pills hide">
@ -9,6 +9,7 @@
</ul> </ul>
</div> </div>
</td> </td>
<td><%= design.author %></td> <td class="span1"><%= radio_button_tag 'design_default', design.id, (@site.design.id.to_s.eql?(design.id.to_s) ? true : false), :class => 'design_default', :rel => admin_sites_path %></td>
<td><%= design.intro %></td> <td class="span7"><%= design.intro %></td>
<td class="span2"><%= design.author %></td>
</tr> </tr>

View File

@ -1,12 +1,24 @@
<thead> <thead>
<tr> <tr>
<th class="span1 strong"></th> <th class="span1 strong"></th>
<th class="span7"></th>
<th class="span2"></th> <th class="span2"></th>
<th class="span1"></th>
<th class="span7"></th>
<th class="span2"></th> <th class="span2"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tbody id="tbody_designs" class="sort-holder"> <tbody id="tbody_designs" class="sort-holder">
<%= render :partial => 'design', :collection => @designs %> <%= render :partial => 'design', :collection => @designs %>
</tbody> </tbody>
<% content_for :page_specific_javascript do %>
<script>
$(document).ready(function(){
$(document).on('change', '.design_default', function(){
$(this).attr('value');
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/change_design');
});
});
</script>
<% end %>

View File

@ -1,4 +1,5 @@
<%= render_sort_bar(true, delete_admin_designs_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]), <%= render_sort_bar(true, delete_admin_designs_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]),
['title', 'title','span7', :title], ['title', 'title','span2', :title],
['author', 'author', 'span2', :author], ['', '', 'span1', :default],
['intro', 'intro', 'span2', :intro]).html_safe %> ['intro', 'intro', 'span7', :intro],
['author', 'author', 'span2', :author]).html_safe %>

View File

@ -18,7 +18,7 @@
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><%= t(javascripts) %> <b class="caret"></b></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown"><%= t(:javascripts) %> <b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<% @design.javascripts.each do |js| %> <% @design.javascripts.each do |js| %>
<li><a href="#<%= dom_id js %>" data-toggle="tab"><%= js.name %></a></li> <li><a href="#<%= dom_id js %>" data-toggle="tab"><%= js.name %></a></li>

View File

@ -3,56 +3,85 @@
<% end %> <% end %>
<% content_for :page_specific_css do %> <% content_for :page_specific_css do %>
<%= stylesheet_link_tag 'modulestore' %> <%= stylesheet_link_tag 'normalize' %>
<%= stylesheet_link_tag 'bootstrap-responsive' %>
<%= stylesheet_link_tag 'rulingorbit' %>
<%= stylesheet_link_tag 'module-store' %>
<% end %> <% end %>
<% content_for :page_specific_javascript do %> <% content_for :page_specific_javascript do %>
<%= javascript_include_tag 'lib/jquery.cycle.all.latest.js' %> <%= javascript_include_tag "jquery.cycle" %>
<script type="text/javascript"> <%= javascript_include_tag "modules" %>
// Banner slideshow
$(function() {
$('.slide').cycle({
fx: 'scrollRight',
speed: 600,
timeout: 4000,
slideExpr: 'img',
next: '.next',
prev: '.prev'
});
});
</script>
<% end %> <% end %>
<div class="md-bg"> <div class="wrapper">
<div class="modulestore md-store"> <div id="toolbar">
<div class="header"> <div class="filter fn">
<h1 class="home"><a href="modulestore">Orbit Module Store</a></h1> <span class="label">Price</span>
<div class="slide-wrap"> <div class="drop-menu ui">
<div class="slide-feature"></div> <a href="" class="controller">
<div class="slide"> <span class="option-default">All</span>
<div class="slide-nav"> <span class="arrow down"></span>
<a class="prev" href="#">&lsaquo;</a> </a>
<a class="next" href="#">&rsaquo;</a> <ul class="option-list">
</div> <li><a class="option-item" href="">All</a></li>
<a href="#"><img src="<%= asset_path 'modulestore/slide01.jpg' %>"></a> <li><a class="option-item" href="">3000</a></li>
<a href="#"><img src="<%= asset_path 'modulestore/slide01.jpg' %>"></a> <li><a class="option-item" href="">4000</a></li>
<a href="#"><img src="<%= asset_path 'modulestore/slide01.jpg' %>"></a> <li><a class="option-item" href="">5000</a></li>
</div> </ul>
</div> </div>
</div>
<div class="filter fn">
<span class="label">Category</span>
<div class="drop-menu ui">
<a href="" class="controller">
<span class="option-default">All</span>
<span class="arrow down"></span>
</a>
<ul class="option-list">
<li><a class="option-item" href="">All</a></li>
<li><a class="option-item" href="">National Taiwan University</a></li>
<li><a class="option-item" href="">Category 1</a></li>
<li><a class="option-item" href="">Category 2</a></li>
<li><a class="option-item" href="">Category 3</a></li>
</ul>
</div>
</div>
<div class="filter fn">
<span class="label">Sort by</span>
<div class="drop-menu ui">
<a href="" class="controller">
<span class="option-default">Date</span>
<span class="arrow down"></span>
</a>
<ul class="option-list">
<li><a class="option-item" href="">Date</a></li>
<li><a class="option-item" href="">Popular</a></li>
<li><a class="option-item" href="">Recent Upload</a></li>
</ul>
</div>
</div>
</div> </div>
<div class="main"> <div id="feature" class="clearfix">
<div class="app-list row"> <div id="feature-nav">
<% 9.times do %> <ul>
<div class="app span3"> <li><a href=""><img class="item-thumb" src="<%= asset_path "f1.jpg"%>" alt="Thumbnail 1" width="228" height="67"></a></li>
<a href="module_store/show"> <li><a href=""><img class="item-thumb" src="<%= asset_path "f2.jpg"%>" alt="Thumbnail 2" width="228" height="67"></a></li>
<img src="<%= asset_path 'modulestore/app.jpg' %>" alt="App" /> <li><a href=""><img class="item-thumb" src="<%= asset_path "f3.jpg"%>" alt="Thumbnail 3" width="228" height="67"></a></li>
<div class="detail"> </ul>
<strong class="apptitle">Orange theme</strong> </div>
<em class="price">Free download</em> <div class="holder">
</div> <ul>
</a> <li><a href=""><img class="item-thumb" src="<%= asset_path "f1.jpg"%>" alt="Thumbnail 1" width="740" height="220"></a></li>
</div> <li><a href=""><img class="item-thumb" src="<%= asset_path "f2.jpg"%>" alt="Thumbnail 2" width="740" height="220"></a></li>
<% end %> <li><a href=""><img class="item-thumb" src="<%= asset_path "f3.jpg"%>" alt="Thumbnail 3" width="740" height="220"></a></li>
</div> </ul>
</div>
</div> </div>
<div id="item-list">
<ul class="clearfix">
<% 12.times do |i| %>
<li><a href="module_store/show?m=<%= i + 1 %>"><img src="/assets/module/thumb/mt<%= i + 1 %>.jpg" alt="" class="item-thumb"><span class="item-info"><b class="item-name">Module <%= i + 1 %></b><span class="item-price">Free</span></span></a></li>
<% end %>
</ul>
</div>
</div> </div>

View File

@ -3,95 +3,53 @@
<% end %> <% end %>
<% content_for :page_specific_css do %> <% content_for :page_specific_css do %>
<%= stylesheet_link_tag 'modulestore' %> <%= stylesheet_link_tag 'normalize' %>
<%= stylesheet_link_tag 'bootstrap-responsive' %>
<%= stylesheet_link_tag 'rulingorbit' %>
<%= stylesheet_link_tag 'module-store' %>
<% end %> <% end %>
<% content_for :page_specific_javascript do %> <% content_for :page_specific_javascript do %>
<%= javascript_include_tag 'lib/jquery.cycle.all.latest.js' %> <%= javascript_include_tag "jquery.cycle" %>
<script type="text/javascript"> <%= javascript_include_tag "rulingorbit" %>
$(function() {
$('.slide').cycle({
fx: 'scrollRight',
speed: 'fast',
timeout: 4000,
pager: '.detail-slide-nav',
pagerEvent: 'mouseover',
slideExpr: 'img'
});
});
</script>
<% end %> <% end %>
<div class="modulestore-detail md-store">
<div class="header">
<h1 class="home"><a href="modulestore.html">Orbit Module Store</a></h1> <div class="wrapper">
</div> <div id="toolbar">
<div class="main row-fluid clearfix"> <div class="fn"><a class="ui btn" href="/admin/module_store">Back to Store</a></div>
<div class="left-col span3"> </div>
<%= image_tag 'modulestore/app-icon.jpg', :class => "app-icon" %> <div id="content" class="clearfix">
<a href="#" class="price btn btn-primary">Free download</a> <div class="side">
<ul class="download-meta"> <div id="item-info">
<li><strong class="downloads">Download:<span> 257985 times</span></strong></li> <img src="/assets/module/thumb/mt<%= params[:m] %>.jpg" alt="" class="item-thumb">
<li> <h2 class="item-name">Module Name</h2>
<h3 class="who-are-using-this-apps">Who are using this apps?</h3> <a id="download" href="">free download</a>
<ul> <ul class="item-extra-info">
<li>NTU College of Liberal Arts</li> <li><span class="title">downloads</span><span class="count"><%= Random.new.rand(10..100) %></span></li>
<li>NTU Department of Mathematics</li> </ul>
<li>NCKU Graduate Institute of Communication Engineering</li> <h3>who use it?</h3>
<li>NCCU Graduate Institute of Biomedical Electronics and Bioinformatics</li> <ul class="user-list">
<li>NTHU Nano-Electro-Mechanical System Research Center</li> <li>Unversity 1</li>
</ul> <li>Unversity 2</li>
</li> <li>Unversity 3</li>
<li> <li>Unversity 4</li>
<h3 class="recommends">Who are using this also like</h3> <li>Unversity 5</li>
<ul class="recommend-thumbs"> </ul>
<li> </div>
<a href=""><%= image_tag 'modulestore/dropbox.jpg' %></a>
<a href=""><%= image_tag 'modulestore/screen-capture.jpg' %></a>
<a href=""><%= image_tag 'modulestore/deault-app-icon.jpg' %></a>
</li>
</ul>
</li>
</ul>
</div> </div>
<div class="main clearfix">
<div class="right-col span6"> <h3>description</h3>
<ul class="breadcrumb"> <div id="desc-holder" class="paragraph">Pixel Unions Jitensha defines storefront minimalism. Japanese for “bicycle,” Jitensha offers clean typography and easy usability, including full color, font, logo, and footer customization. With its painless social media and blog integration, Jitensha gorgeously accomodates every aspect of your business. Any questions before you launch? Dont hesitate to email us: Support@PixelUnion.net.</div>
<li><a href="Orbit_module_home.html">Home</a> <span class="divider">/</span></li> <h3>screen shot</h3>
<li class="active">Orbit</li> <div id="screen-shot">
</ul> <div class="holder">
<h2>Orbit app name here</h2> <img src="" alt="Thumbnail 1" class="preview item-thumb">
<h3>Description</h3> <img src="" alt="Thumbnail 2" class="preview item-thumb">
<p class="app-description"> <img src="" alt="Thumbnail 3" class="preview item-thumb">
Orbit Blog makes it easy to post text, photos and video onto your blog. <img src="" alt="Thumbnail 4" class="preview item-thumb">
<img src="" alt="Thumbnail 5" class="preview item-thumb">
We created Orbit blog to give you an easy way to share your thoughts about current events, what's going on in your life, or anything else you'd care to discuss with the world. We've developed a host of features to make blogging as simple and effective as possible:
* Free hosting for your images, video, and blog content
* Powerful Template Designer for customizing your blog's look and feel
* Drag and drop widget arrangements
* Hundreds of background images and of flexible default templates
* Built-in blog stats for realtime traffic data
* Easy, built-in monetization with AdSense
* Mobile support for blogging-on-the-go
* Use your custom URL for free
* Support for individual, team, and private blogs
* Post and comment notifications
* Gadget directory with hundreds of free widgets and add-ons
* Available in 4 languages
</p>
<div class="screenshots">
<h3>Screenshots</h3>
<div class="slide">
<div class="detail-slide-nav">
</div>
<a href="#"><%= image_tag 'modulestore/screenshot1.jpg' %></a>
<a href="#"><%= image_tag 'modulestore/screenshot2.jpg' %></a>
<a href="#"><%= image_tag 'modulestore/screenshot3.jpg' %></a>
<a href="#"><%= image_tag 'modulestore/screenshot4.jpg' %></a>
<a href="#"><%= image_tag 'modulestore/screenshot5.jpg' %></a>
</div> </div>
</div> </div>
<div> </div>
</div> </div>
</div> </div>

View File

@ -1,12 +1,12 @@
<div class="main2"> <div class="main2">
<h1><%= t('list.purchase') %></h1> <h1 class="list_title"><%= t('list.purchase') %></h1>
<table> <table class="table main-list">
<thead> <thead>
<tr> <tr>
<td><%= t(:title) %></td> <th><%= t(:title) %></th>
<td><%= t(:intro) %></td> <th><%= t(:intro) %></th>
<td><%= t(:author) %></td> <th><%= t(:author) %></th>
<td><%= t(:action) %></td> <th><%= t(:action) %></th>
</tr> </tr>
</thead> </thead>
<%# @purchases.each do |purchase| %> <%# @purchases.each do |purchase| %>
@ -15,7 +15,7 @@
<td><%= purchase.title %></td> <td><%= purchase.title %></td>
<td><%= purchase.intro %></td> <td><%= purchase.intro %></td>
<td><%= purchase.author %></td> <td><%= purchase.author %></td>
<td class="action"> <td>
<% if purchase.downloaded %> <% if purchase.downloaded %>
<%= t(:downloaded) %> <%= t(:downloaded) %>
<% else %> <% else %>
@ -25,4 +25,13 @@
</tr> </tr>
<%# end %> <%# end %>
</table> </table>
</div> </div>
<style type="text/css">
.list_title {
background: #eee;
font-weight: bold;
margin: 0;
padding: 20px 6px;
font-size: 18px;
}
</style>

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