Merge branch 'master' of https://github.com/Rulingcom/orbit
* '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 ...
3
Gemfile
|
@ -79,7 +79,6 @@ group :test, :development do
|
|||
gem 'faker'
|
||||
|
||||
gem "sunspot-rails-tester"
|
||||
gem 'spork'
|
||||
gem 'database_cleaner' #Strategies for cleaning databases. Can be used to ensure a clean state for testing.
|
||||
gem "rspec", "~> 2.0"
|
||||
gem "rspec-rails", "~> 2.0"
|
||||
|
@ -89,7 +88,7 @@ group :test, :development do
|
|||
gem "delorean"
|
||||
gem "watchr"
|
||||
gem "spork"
|
||||
# gem "capybara"
|
||||
gem "capybara"
|
||||
# gem 'yard'
|
||||
# gem "bluecloth"
|
||||
end
|
||||
|
|
After Width: | Height: | Size: 209 B |
After Width: | Height: | Size: 548 B |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 140 KiB |
After Width: | Height: | Size: 257 B |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 507 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 229 B |
|
@ -63,6 +63,10 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
})
|
||||
$(".bt-cancel").click(function(){
|
||||
$("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;
|
||||
$.each(journalData,function(i,journal){
|
||||
$.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);
|
||||
if(counter%5==0){
|
||||
$("#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(journal.papers,function(j,paper){
|
||||
li = null;
|
||||
li = $('<li class="list_t_item"></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 = $('<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><div class="list_t_des"></div>');
|
||||
var file_list = li.find('.list_t_des');
|
||||
$.each(paper.files,function(k,file){
|
||||
var thistitle = file.title;
|
||||
if(!file.title)
|
||||
if(!thistitle)
|
||||
thistitle = "";
|
||||
thistitle = ( thistitle.length > 8 )? thistitle.substring(0,8)+'...' : thistitle;
|
||||
if(!file.title){
|
||||
thistitle = "Untitled File";
|
||||
var img = $('<div class="list_t_des"><a href="'+file.url+'" target="_blank" ><img src="'+file.icon+'" />'+thistitle+'</a></div>');
|
||||
li.append(img);
|
||||
}
|
||||
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);
|
||||
if(counter%5==0){
|
||||
if(counter%3==0){
|
||||
$("#journal_p div#paper_list div.overview").append(column);
|
||||
column = $('<div class="g_col list_t"><ul></ul></div>');
|
||||
}
|
||||
|
@ -164,7 +173,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
li;
|
||||
$.each(journalData,function(i,journal){
|
||||
$.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);
|
||||
if(counter%5==0){
|
||||
$("#journal_p div#paper_list div.overview").append(column);
|
||||
|
@ -184,7 +193,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
li;
|
||||
$.each(journalData,function(i,journal){
|
||||
$.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);
|
||||
if(counter%5==0){
|
||||
$("#journal_p div#paper_list div.overview").append(column);
|
||||
|
@ -203,7 +212,7 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
li;
|
||||
$.each(journalData,function(i,journal){
|
||||
$.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);
|
||||
$("#journal_p div#paper_list div.overview").append(column);
|
||||
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
|
||||
var bindHandlers = function(){ // to bind handlers for add page
|
||||
o.simple_drop_down();
|
||||
|
||||
o.tinyscrollbar_ext({
|
||||
main: '.tinycanvas',
|
||||
fill: '.s_grid_con'
|
||||
fill: '.g_col'
|
||||
})
|
||||
}
|
||||
bindHandlers();
|
||||
|
@ -261,9 +269,9 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
|
||||
o.tinyscrollbar_ext({
|
||||
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({
|
||||
url : $(this).attr("href"),
|
||||
type : "get",
|
||||
|
@ -276,12 +284,34 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
})
|
||||
$(".bt-cancel").click(function(){
|
||||
$("div[container=true]").html(prev_data);
|
||||
o.tinyscrollbar_ext({
|
||||
main: '.tinycanvas',
|
||||
fill: '.g_col'
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
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(){
|
||||
|
||||
var delurl = $(this).attr("href");
|
||||
var parent = $(this).parent().parent();
|
||||
o.confirm({
|
||||
|
@ -316,7 +346,8 @@ orbitDesktop.prototype.initializeJournalPapers = function(target,url,cache){ //
|
|||
fill: '.s_grid_con'
|
||||
})
|
||||
$(".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(){
|
||||
$("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){
|
||||
if(data.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{
|
||||
o.notify(data.msg,"alert");
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
});
|
|
@ -233,6 +233,7 @@ var orbitDesktop = function(dom){
|
|||
if(o.data_method != "")
|
||||
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{
|
||||
|
@ -241,10 +242,12 @@ var orbitDesktop = function(dom){
|
|||
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)
|
||||
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
|
||||
else{
|
||||
|
@ -253,6 +256,7 @@ var orbitDesktop = function(dom){
|
|||
else
|
||||
o.sub_menu_item($(o.contentHolder).find("*[content-type=menu] a[load=true]"));
|
||||
}
|
||||
}catch(EX){}
|
||||
cache = true;
|
||||
if(typeof o.data_method != "undefined"){
|
||||
if(o.data_method != "")
|
||||
|
@ -565,7 +569,6 @@ var orbitDesktop = function(dom){
|
|||
loadApps();
|
||||
};
|
||||
this.initializeSectionsManager = function(target,url,cache){ // this is init function for section manager
|
||||
|
||||
var elementParent,element,slabel;
|
||||
var bindHandlers = function(){ // this is bind handler for section manager page
|
||||
var groupWrapperWidth = 0;
|
||||
|
@ -634,6 +637,7 @@ var orbitDesktop = function(dom){
|
|||
}
|
||||
}
|
||||
z++;
|
||||
|
||||
$("div#group_wrapper").append($group);
|
||||
}
|
||||
var yy=1,y=0;
|
||||
|
@ -641,6 +645,7 @@ var orbitDesktop = function(dom){
|
|||
|
||||
$.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>');
|
||||
|
||||
$("ul#section"+yy).append($li);
|
||||
})
|
||||
if(y==1){
|
||||
|
|
|
@ -26,7 +26,7 @@ var orbitDesktopAPI = function(){
|
|||
break;
|
||||
}
|
||||
$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();
|
||||
if(!time)time=5000; else time=time*1000;
|
||||
$notify
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
$(document).ready(function(){
|
||||
$('#screen-shot .holder')
|
||||
.before('<div id="scr-nav"/>')
|
||||
.cycle({
|
||||
pager: '#scr-nav',
|
||||
fx: 'scrollLeft',
|
||||
pause: 1
|
||||
});
|
||||
});
|
|
@ -26,7 +26,7 @@ time, mark, audio, video {
|
|||
#container input, #container textarea, #container select, #container input:focus, #container textarea:focus {
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
font: inherit;
|
||||
font-family: inherit;
|
||||
}
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
|
@ -126,10 +126,13 @@ a:focus { outline: none; }
|
|||
.ini_input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
border: 0;
|
||||
}
|
||||
.ini_input:focus { outline: none; }
|
||||
#search_app { position: relative; background-color: #fff; }
|
||||
#search_app {
|
||||
position: relative;
|
||||
background-color: #fff;
|
||||
}
|
||||
#search_app .form {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
|
@ -139,6 +142,7 @@ a:focus { outline: none; }
|
|||
height: 28px;
|
||||
line-height: 28px;
|
||||
background: none;
|
||||
border: 0;
|
||||
}
|
||||
#search_app .submit {
|
||||
position: absolute;
|
||||
|
@ -289,7 +293,7 @@ a:focus { outline: none; }
|
|||
position: relative;
|
||||
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 button {
|
||||
border: none;
|
||||
|
@ -300,7 +304,10 @@ a:focus { outline: none; }
|
|||
font-size: 15px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.toolbar .fn_btn {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Setting Page */
|
||||
.theme_list {}
|
||||
|
@ -344,6 +351,7 @@ a:focus { outline: none; }
|
|||
font-size: 15px;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* theme color opacity */
|
||||
|
@ -452,7 +460,7 @@ a:focus { outline: none; }
|
|||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 9;
|
||||
z-index: 10;
|
||||
}
|
||||
#orbitdiag .tile { 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{
|
||||
outline: solid 3px #f6f6f6;
|
||||
border: solid 1px #eee;
|
||||
font-size: 18px;
|
||||
font-size: 15px;
|
||||
font-family: Arial !important;
|
||||
margin: 0;
|
||||
padding: 6px;
|
||||
|
@ -578,14 +586,14 @@ a:focus { outline: none; }
|
|||
height: 30px;
|
||||
line-height: 30px;
|
||||
right: 5px;
|
||||
top: 4px;
|
||||
top: 5px;
|
||||
display: block;
|
||||
background-color: #fff;
|
||||
}
|
||||
.s_form.s_grid_con { width: 416px; }
|
||||
.s_form .s_grid_row { width: 410px; }
|
||||
.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_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; }
|
||||
|
@ -598,7 +606,30 @@ a:focus { outline: none; }
|
|||
.s_form select.s_grid_4 { width: 270px; }
|
||||
.s_form select.s_grid_5 { width: 340px; }
|
||||
.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 {}
|
||||
|
@ -616,7 +647,7 @@ a:focus { outline: none; }
|
|||
.list_t_title {
|
||||
font-size: 15px;
|
||||
font-family: Arial;
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 6px;
|
||||
color: #333;
|
||||
}
|
||||
.list_t_des {
|
||||
|
@ -624,7 +655,7 @@ a:focus { outline: none; }
|
|||
line-height: 1.5em;
|
||||
color: #999;
|
||||
font-family: Arial, sans-serif;
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
/* Connection Page */
|
||||
|
@ -684,6 +715,13 @@ a:focus { outline: none; }
|
|||
float: left;
|
||||
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 {
|
||||
display: block;
|
||||
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 { 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 */
|
||||
#paper_add .s_grid_con {
|
||||
float: left;
|
||||
|
@ -708,6 +769,122 @@ a:focus { outline: none; }
|
|||
#paper_add .f_w { width: 336px; }
|
||||
#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_frame {
|
||||
margin: 48px 96px 48px 156px;
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -143,6 +143,7 @@
|
|||
display: inline-block;
|
||||
line-height: 22px;
|
||||
padding: 0 10px;
|
||||
vertical-align: top;
|
||||
}
|
||||
#orbit-bar .nav img.member-img {
|
||||
display: inline-block;
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -8,6 +8,9 @@ class Admin::InfosController < ApplicationController
|
|||
|
||||
def index
|
||||
@attributes = Info.all.entries
|
||||
|
||||
@roles = Role.excludes('disabled' => true)
|
||||
|
||||
render :template => 'admin/attributes/index'
|
||||
end
|
||||
|
||||
|
@ -22,7 +25,7 @@ class Admin::InfosController < ApplicationController
|
|||
|
||||
def edit
|
||||
@attribute = Info.find(params[:id])
|
||||
@attribute_fields_upper_object = [@attribute]
|
||||
# @attribute_fields_upper_object = [@attribute]
|
||||
render :template => 'admin/attributes/edit'
|
||||
end
|
||||
|
||||
|
@ -49,10 +52,20 @@ class Admin::InfosController < ApplicationController
|
|||
end
|
||||
|
||||
def add_attribute_field
|
||||
|
||||
attribute = Info.find(params[:info_id]) rescue nil
|
||||
@attribute_field_counter = attribute.attribute_fields.count
|
||||
@attribute_field = attribute.attribute_fields.build
|
||||
@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
|
||||
|
||||
protected
|
||||
|
|
|
@ -9,6 +9,18 @@ class Admin::PurchasesController < ApplicationController
|
|||
@purchases = Purchase.all.entries
|
||||
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
|
||||
@purchase = Purchase.first(:conditions => {:id => params[:id]})
|
||||
download_purchase(@purchase, request.env['REQUEST_URI'].split('admin')[0].chop)
|
||||
|
@ -183,4 +195,66 @@ class Admin::PurchasesController < ApplicationController
|
|||
|
||||
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
|
|
@ -57,6 +57,24 @@ class Admin::SitesController < ApplicationController
|
|||
|
||||
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
|
||||
|
||||
def get_site
|
||||
|
|
|
@ -3,9 +3,29 @@ class Admin::TemplateStoreController < ApplicationController
|
|||
layout "new_admin"
|
||||
|
||||
def index
|
||||
@templates = JSON.parse(get_templates)
|
||||
end
|
||||
|
||||
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
|
|
@ -8,18 +8,38 @@ class Desktop::CoAuthorRelationsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@co_author_relation = CoAuthorRelation.find(params[:id])
|
||||
respond_to do |format|
|
||||
format.html { render :layout => false}
|
||||
end
|
||||
end
|
||||
|
||||
def new
|
||||
@new_relation = CoAuthorRelation.new
|
||||
@co_author_relation = CoAuthorRelation.new
|
||||
end
|
||||
|
||||
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
|
||||
newv = render_to_string :partial=>"show_form", :object=>@new_relation
|
||||
render json: {success:true, msg: "New Relation successfully saved!","newvalue"=>newv}.to_json
|
||||
if @co_author_relation.save
|
||||
newv = render_to_string partial: "show_form", object: @co_author_relations
|
||||
render json: {success: true, msg: "New Relation successfully saved!", newvalue: newv}.to_json
|
||||
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
|
||||
end
|
||||
end
|
||||
|
@ -27,7 +47,17 @@ class Desktop::CoAuthorRelationsController < ApplicationController
|
|||
def destroy
|
||||
@co_author_relation = CoAuthorRelation.find(params[:id])
|
||||
@co_author_relation.destroy
|
||||
reset_co_author_relation
|
||||
|
||||
render :json => {success: true, msg: "deleted successfully!"}
|
||||
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
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
class Desktop::CoAuthorsController < ApplicationController
|
||||
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
|
||||
|
||||
respond_to do |format|
|
||||
|
@ -8,15 +10,6 @@ class Desktop::CoAuthorsController < ApplicationController
|
|||
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
|
||||
@co_author = CoAuthor.new
|
||||
@co_author_relations = CoAuthorRelation.all
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
class Desktop::JournalListsController < ApplicationController
|
||||
|
||||
def index
|
||||
level_types = JournalLevelType.all
|
||||
all_journal_lists = WritingJournal.where(create_user_id: current_user.id)
|
||||
|
@ -7,8 +6,7 @@ class Desktop::JournalListsController < ApplicationController
|
|||
[ j.journal_title,
|
||||
j.journal_level_type_ids.map do |type|
|
||||
level_types.find(type).title
|
||||
end.join(",")
|
||||
].join(" -- ")
|
||||
end]
|
||||
end
|
||||
|
||||
@journal_lists = all_journal_lists.uniq
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
class Desktop::JournalPagesController < ApplicationController
|
||||
#before_filter :check_for_cancel, :only => [:create, :update]
|
||||
|
||||
def index
|
||||
@writing_journal = WritingJournal.where(create_user_id: current_user.id)
|
||||
@level_types = JournalLevelType.all
|
||||
|
@ -10,9 +8,6 @@ class Desktop::JournalPagesController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def new
|
||||
@writing_journal = WritingJournal.new
|
||||
@level_types = JournalLevelType.all
|
||||
|
@ -109,10 +104,4 @@ class Desktop::JournalPagesController < ApplicationController
|
|||
render json: JSON.pretty_generate(data)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def check_for_cancel
|
||||
if params[:commit] == "Cancel"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,7 +19,7 @@ class DesktopController< ApplicationController
|
|||
render :layout => false
|
||||
end
|
||||
|
||||
def sections
|
||||
def allsections
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
|
|
|
@ -8,63 +8,28 @@ class Design
|
|||
field :title, :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 :layout, :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 :javascripts, as: :js, :autosave => true, :dependent => :destroy
|
||||
has_many :pages
|
||||
has_many :screenshots, :autosave => true, :dependent => :destroy
|
||||
has_many :themes, :autosave => true, :dependent => :destroy
|
||||
|
||||
accepts_nested_attributes_for :images, :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
|
||||
|
||||
validates_presence_of :author, :title
|
||||
|
||||
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
|
||||
|
||||
def parse_css_for_images
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
class Screenshot < Image
|
||||
belongs_to :design
|
||||
end
|
|
@ -0,0 +1,3 @@
|
|||
class Thumb < Image
|
||||
belongs_to :design
|
||||
end
|
|
@ -11,7 +11,6 @@ class Section
|
|||
|
||||
def initialize_group
|
||||
self.groups.build
|
||||
self.groups.build
|
||||
end
|
||||
|
||||
end
|
|
@ -26,6 +26,7 @@ class Site
|
|||
field :footer, localize: true
|
||||
field :sub_menu, localize: true
|
||||
|
||||
belongs_to :design
|
||||
has_many :site_metas, :autosave => true, :dependent => :destroy
|
||||
|
||||
def generate_keys
|
||||
|
|
|
@ -4,6 +4,7 @@ class AttributeField
|
|||
include ::AttributeFieldsHelper
|
||||
|
||||
field :key
|
||||
field :af_count
|
||||
field :markup ,:default=>"text_field"
|
||||
field :option_list ,:type => Hash,:default => {}
|
||||
field :markup_options,:type => Hash
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
class ImageUploader < CarrierWave::Uploader::Base
|
||||
|
||||
require 'mime/types'
|
||||
require 'carrierwave/processing/mini_magick'
|
||||
include Sprockets::Helpers::RailsHelper
|
||||
|
||||
process :set_content_type
|
||||
|
@ -62,14 +63,20 @@ class ImageUploader < CarrierWave::Uploader::Base
|
|||
# "something.jpg" if original_filename
|
||||
# end
|
||||
|
||||
def cache_dir
|
||||
"#{Rails.root}/tmp/uploads"
|
||||
end
|
||||
|
||||
|
||||
def manipulate!
|
||||
cache_stored_file! if !cached?
|
||||
#raise File.extname(current_path.to_s).to_s
|
||||
image = ::MiniMagick::Image.open(current_path)
|
||||
image = yield(image)
|
||||
image.write(current_path)
|
||||
::MiniMagick::Image.open(current_path)
|
||||
rescue
|
||||
nil
|
||||
# image = yield(image)
|
||||
# image.write(current_path)
|
||||
# ::MiniMagick::Image.open(current_path)
|
||||
# rescue
|
||||
# nil
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
$('<%= j render :partial => 'shared/attribute_field/attribute_field', :collection => [@attribute_field] %>').appendTo('#attribute_field_list').hide().fadeIn();
|
|
@ -19,12 +19,13 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<% @attribute_fields_upper_object.each do |attribute|%>
|
||||
<div class="map-block back attributes">
|
||||
<h4><span><%= attribute.title+ t(:attributes)%></span></h4>
|
||||
<%= render :partial=>"shared/attribute_field/attribute_field",:collection=>attribute.attribute_fields%>
|
||||
<h4><span><%= @attribute.title+ t(:attributes)%></span></h4>
|
||||
<div id="attribute_field_list">
|
||||
<%= render :partial=>"shared/attribute_field/attribute_field",:collection=>@attribute.attribute_fields%>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<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%>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<tr class="with_action">
|
||||
<td><%= check_box_tag 'to_delete[]', design.id, false, :class => "checkbox_in_list" %></td>
|
||||
<td>
|
||||
<td class="span1"><%= check_box_tag 'to_delete[]', design.id, false, :class => "checkbox_in_list" %></td>
|
||||
<td class="span2">
|
||||
<%= design.title %>
|
||||
<div class="quick-edit">
|
||||
<ul class="nav nav-pills hide">
|
||||
|
@ -9,6 +9,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
<td><%= design.author %></td>
|
||||
<td><%= design.intro %></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 class="span7"><%= design.intro %></td>
|
||||
<td class="span2"><%= design.author %></td>
|
||||
</tr>
|
|
@ -1,8 +1,9 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th class="span1 strong"></th>
|
||||
<th class="span7"></th>
|
||||
<th class="span2"></th>
|
||||
<th class="span1"></th>
|
||||
<th class="span7"></th>
|
||||
<th class="span2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -10,3 +11,14 @@
|
|||
<tbody id="tbody_designs" class="sort-holder">
|
||||
<%= render :partial => 'design', :collection => @designs %>
|
||||
</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 %>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<%= render_sort_bar(true, delete_admin_designs_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]),
|
||||
['title', 'title','span7', :title],
|
||||
['author', 'author', 'span2', :author],
|
||||
['intro', 'intro', 'span2', :intro]).html_safe %>
|
||||
['title', 'title','span2', :title],
|
||||
['', '', 'span1', :default],
|
||||
['intro', 'intro', 'span7', :intro],
|
||||
['author', 'author', 'span2', :author]).html_safe %>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
<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">
|
||||
<% @design.javascripts.each do |js| %>
|
||||
<li><a href="#<%= dom_id js %>" data-toggle="tab"><%= js.name %></a></li>
|
||||
|
|
|
@ -3,56 +3,85 @@
|
|||
<% end %>
|
||||
|
||||
<% 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 %>
|
||||
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag 'lib/jquery.cycle.all.latest.js' %>
|
||||
<script type="text/javascript">
|
||||
// Banner slideshow
|
||||
$(function() {
|
||||
$('.slide').cycle({
|
||||
fx: 'scrollRight',
|
||||
speed: 600,
|
||||
timeout: 4000,
|
||||
slideExpr: 'img',
|
||||
next: '.next',
|
||||
prev: '.prev'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<%= javascript_include_tag "jquery.cycle" %>
|
||||
<%= javascript_include_tag "modules" %>
|
||||
<% end %>
|
||||
|
||||
<div class="md-bg">
|
||||
<div class="modulestore md-store">
|
||||
<div class="header">
|
||||
<h1 class="home"><a href="modulestore">Orbit Module Store</a></h1>
|
||||
<div class="slide-wrap">
|
||||
<div class="slide-feature"></div>
|
||||
<div class="slide">
|
||||
<div class="slide-nav">
|
||||
<a class="prev" href="#">‹</a>
|
||||
<a class="next" href="#">›</a>
|
||||
</div>
|
||||
<a href="#"><img src="<%= asset_path 'modulestore/slide01.jpg' %>"></a>
|
||||
<a href="#"><img src="<%= asset_path 'modulestore/slide01.jpg' %>"></a>
|
||||
<a href="#"><img src="<%= asset_path 'modulestore/slide01.jpg' %>"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="app-list row">
|
||||
<% 9.times do %>
|
||||
<div class="app span3">
|
||||
<a href="module_store/show">
|
||||
<img src="<%= asset_path 'modulestore/app.jpg' %>" alt="App" />
|
||||
<div class="detail">
|
||||
<strong class="apptitle">Orange theme</strong>
|
||||
<em class="price">Free download</em>
|
||||
</div>
|
||||
<div class="wrapper">
|
||||
<div id="toolbar">
|
||||
<div class="filter fn">
|
||||
<span class="label">Price</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="">3000</a></li>
|
||||
<li><a class="option-item" href="">4000</a></li>
|
||||
<li><a class="option-item" href="">5000</a></li>
|
||||
</ul>
|
||||
</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 id="feature" class="clearfix">
|
||||
<div id="feature-nav">
|
||||
<ul>
|
||||
<li><a href=""><img class="item-thumb" src="<%= asset_path "f1.jpg"%>" alt="Thumbnail 1" width="228" height="67"></a></li>
|
||||
<li><a href=""><img class="item-thumb" src="<%= asset_path "f2.jpg"%>" alt="Thumbnail 2" width="228" height="67"></a></li>
|
||||
<li><a href=""><img class="item-thumb" src="<%= asset_path "f3.jpg"%>" alt="Thumbnail 3" width="228" height="67"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="holder">
|
||||
<ul>
|
||||
<li><a href=""><img class="item-thumb" src="<%= asset_path "f1.jpg"%>" alt="Thumbnail 1" width="740" height="220"></a></li>
|
||||
<li><a href=""><img class="item-thumb" src="<%= asset_path "f2.jpg"%>" alt="Thumbnail 2" width="740" height="220"></a></li>
|
||||
<li><a href=""><img class="item-thumb" src="<%= asset_path "f3.jpg"%>" alt="Thumbnail 3" width="740" height="220"></a></li>
|
||||
</ul>
|
||||
</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 %>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
|
@ -3,95 +3,53 @@
|
|||
<% end %>
|
||||
|
||||
<% 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 %>
|
||||
|
||||
<% content_for :page_specific_javascript do %>
|
||||
<%= javascript_include_tag 'lib/jquery.cycle.all.latest.js' %>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('.slide').cycle({
|
||||
fx: 'scrollRight',
|
||||
speed: 'fast',
|
||||
timeout: 4000,
|
||||
pager: '.detail-slide-nav',
|
||||
pagerEvent: 'mouseover',
|
||||
slideExpr: 'img'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<%= javascript_include_tag "jquery.cycle" %>
|
||||
<%= javascript_include_tag "rulingorbit" %>
|
||||
<% end %>
|
||||
<div class="modulestore-detail md-store">
|
||||
<div class="header">
|
||||
<h1 class="home"><a href="modulestore.html">Orbit Module Store</a></h1>
|
||||
</div>
|
||||
<div class="main row-fluid clearfix">
|
||||
<div class="left-col span3">
|
||||
<%= image_tag 'modulestore/app-icon.jpg', :class => "app-icon" %>
|
||||
<a href="#" class="price btn btn-primary">Free download</a>
|
||||
<ul class="download-meta">
|
||||
<li><strong class="downloads">Download:<span> 257985 times</span></strong></li>
|
||||
<li>
|
||||
<h3 class="who-are-using-this-apps">Who are using this apps?</h3>
|
||||
<ul>
|
||||
<li>NTU College of Liberal Arts</li>
|
||||
<li>NTU Department of Mathematics</li>
|
||||
<li>NCKU Graduate Institute of Communication Engineering</li>
|
||||
<li>NCCU Graduate Institute of Biomedical Electronics and Bioinformatics</li>
|
||||
<li>NTHU Nano-Electro-Mechanical System Research Center</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="recommends">Who are using this also like</h3>
|
||||
<ul class="recommend-thumbs">
|
||||
<li>
|
||||
<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>
|
||||
|
||||
|
||||
<div class="wrapper">
|
||||
<div id="toolbar">
|
||||
<div class="fn"><a class="ui btn" href="/admin/module_store">Back to Store</a></div>
|
||||
</div>
|
||||
<div id="content" class="clearfix">
|
||||
<div class="side">
|
||||
<div id="item-info">
|
||||
<img src="/assets/module/thumb/mt<%= params[:m] %>.jpg" alt="" class="item-thumb">
|
||||
<h2 class="item-name">Module Name</h2>
|
||||
<a id="download" href="">free download</a>
|
||||
<ul class="item-extra-info">
|
||||
<li><span class="title">downloads</span><span class="count"><%= Random.new.rand(10..100) %></span></li>
|
||||
</ul>
|
||||
<h3>who use it?</h3>
|
||||
<ul class="user-list">
|
||||
<li>Unversity 1</li>
|
||||
<li>Unversity 2</li>
|
||||
<li>Unversity 3</li>
|
||||
<li>Unversity 4</li>
|
||||
<li>Unversity 5</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="right-col span6">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="Orbit_module_home.html">Home</a> <span class="divider">/</span></li>
|
||||
<li class="active">Orbit</li>
|
||||
</ul>
|
||||
<h2>Orbit app name here</h2>
|
||||
<h3>Description</h3>
|
||||
<p class="app-description">
|
||||
Orbit Blog makes it easy to post text, photos and video onto your blog.
|
||||
|
||||
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 class="main clearfix">
|
||||
<h3>description</h3>
|
||||
<div id="desc-holder" class="paragraph">Pixel Union’s 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? Don’t hesitate to email us: Support@PixelUnion.net.</div>
|
||||
<h3>screen shot</h3>
|
||||
<div id="screen-shot">
|
||||
<div class="holder">
|
||||
<img src="" alt="Thumbnail 1" class="preview item-thumb">
|
||||
<img src="" alt="Thumbnail 2" class="preview item-thumb">
|
||||
<img src="" alt="Thumbnail 3" class="preview item-thumb">
|
||||
<img src="" alt="Thumbnail 4" class="preview item-thumb">
|
||||
<img src="" alt="Thumbnail 5" class="preview item-thumb">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,12 +1,12 @@
|
|||
<div class="main2">
|
||||
<h1><%= t('list.purchase') %></h1>
|
||||
<table>
|
||||
<h1 class="list_title"><%= t('list.purchase') %></h1>
|
||||
<table class="table main-list">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><%= t(:title) %></td>
|
||||
<td><%= t(:intro) %></td>
|
||||
<td><%= t(:author) %></td>
|
||||
<td><%= t(:action) %></td>
|
||||
<th><%= t(:title) %></th>
|
||||
<th><%= t(:intro) %></th>
|
||||
<th><%= t(:author) %></th>
|
||||
<th><%= t(:action) %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<%# @purchases.each do |purchase| %>
|
||||
|
@ -15,7 +15,7 @@
|
|||
<td><%= purchase.title %></td>
|
||||
<td><%= purchase.intro %></td>
|
||||
<td><%= purchase.author %></td>
|
||||
<td class="action">
|
||||
<td>
|
||||
<% if purchase.downloaded %>
|
||||
<%= t(:downloaded) %>
|
||||
<% else %>
|
||||
|
@ -26,3 +26,12 @@
|
|||
<%# end %>
|
||||
</table>
|
||||
</div>
|
||||
<style type="text/css">
|
||||
.list_title {
|
||||
background: #eee;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 20px 6px;
|
||||
font-size: 18px;
|
||||
}
|
||||
</style>
|