Compare commits
18 Commits
update_man
...
master
Author | SHA1 | Date |
---|---|---|
Manson Wang | 095157c0ae | |
Spen | ee6dcf238f | |
Spen | bfebed7cb8 | |
Manson Wang | e903bd0c39 | |
Spen | 3cd196e2a3 | |
Manson Wang | 1eaa0f1801 | |
Manson Wang | 822c23e841 | |
Harry Bomrah | ab94c79fdb | |
Bernie Chiu | d19223c873 | |
Spen | 77c00ac72f | |
Manson Wang | 92f1f44e4b | |
Manson Wang | 332658d394 | |
Manson Wang | e947af4c34 | |
Saurabh Bhatia | 37e58cd780 | |
Saurabh Bhatia | 2931676ecf | |
Spen | e71a343718 | |
Saurabh Bhatia | a108426412 | |
Manson Wang | a154d16a7e |
|
@ -1,4 +1,3 @@
|
||||||
# Ruling Orbit
|
# Ruling Orbit
|
||||||
|
|
||||||
RulingSite-s Version 4.0 Beta
|
RulingSite-s Version 4.0 Beta
|
||||||
Update Manager!
|
|
||||||
|
|
|
@ -1,98 +1,108 @@
|
||||||
var ListCheck = function(element) {
|
|
||||||
this.element = $(element);
|
|
||||||
this.element.data('exists', true);
|
|
||||||
if(this.element.context.parentNode.tagName == "TD") {
|
|
||||||
this.elementWrap = $(this.element.context.parentNode);
|
|
||||||
this.elementWrap.addClass('listCheck');
|
|
||||||
} else if(this.element.context.parentNode.tagName == "TH") {
|
|
||||||
this.elementWrap = $(this.element.context.parentNode);
|
|
||||||
this.elementWrap.addClass('listCheckHead');
|
|
||||||
}
|
|
||||||
this.element.before('<i class="icon-check-empty" />');
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn.listCheck = function (callback) {
|
|
||||||
this.each(function (i) {
|
|
||||||
if(!$(this).data('exists')) {
|
|
||||||
new ListCheck(this);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
this.on(clickEvent, function(e) {
|
|
||||||
if($(this).prop('checked')) {
|
|
||||||
$(this).siblings('i').addClass('icon-check').removeClass('icon-check-empty').closest('tr').addClass('checkHit');
|
|
||||||
} else {
|
|
||||||
$(this).siblings('i').addClass('icon-check-empty').removeClass('icon-check').closest('tr').removeClass('checkHit');
|
|
||||||
};
|
|
||||||
if ($(this).closest('.listCheckHead').length) {
|
|
||||||
$('.listCheck .list-check').prop('checked', $(this).prop('checked'));
|
|
||||||
if($(this).prop('checked')) {
|
|
||||||
$('.listCheck i').addClass('icon-check').removeClass('icon-check-empty').closest('tr').addClass('checkHit');
|
|
||||||
} else {
|
|
||||||
$('.listCheck i').addClass('icon-check-empty').removeClass('icon-check').closest('tr').removeClass('checkHit');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var _isCheck = $('tbody .list-check').filter(':checked').length,
|
|
||||||
_defaultLength = $('tbody .list-check').length;
|
|
||||||
|
|
||||||
if(_isCheck > 0 && _isCheck < _defaultLength) {
|
|
||||||
$('.listCheckHead i').removeClass('icon-check-empty icon-check').addClass('icon-minus');
|
|
||||||
} else if(!_isCheck) {
|
|
||||||
$('.listCheckHead i').removeClass('icon-minus icon-check').addClass('icon-check-empty');
|
|
||||||
} else {
|
|
||||||
$('.listCheckHead i').removeClass('icon-check-empty icon-minus').addClass('icon-check');
|
|
||||||
}
|
|
||||||
_isCheck ? $('.list-active-btn').removeClass('disabled').data('actionable', true) : $('.list-active-btn').addClass('disabled').data('actionable', false);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
function clearCheck() {
|
|
||||||
$('.list-check').each(function() {
|
|
||||||
$(this).prop('checked', false);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
function actionSuccess(e) {
|
|
||||||
$("tbody .list-check").each(function() {
|
|
||||||
switch(e) {
|
|
||||||
case 'list-be-hide':
|
|
||||||
$(this).filter(':checked').closest('tr').addClass('checkHide');
|
|
||||||
break;
|
|
||||||
case 'list-be-show':
|
|
||||||
$(this).filter(':checked').closest('tr').removeClass('checkHide');
|
|
||||||
break;
|
|
||||||
case 'list-be-remove':
|
|
||||||
$(this).filter(':checked').closest('tr').fadeOut(300, function() {
|
|
||||||
$(this).remove();
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
$('.list-check').siblings('i').removeAttr('class').addClass('icon-check-empty').closest('tr').removeClass('checkHit');
|
|
||||||
});
|
|
||||||
clearCheck();
|
|
||||||
}
|
|
||||||
$(function() {
|
$(function() {
|
||||||
var $t = null,
|
var ListCheckData = {},
|
||||||
_data = null;
|
ListCheck = function(element) {
|
||||||
clearCheck();
|
this.element = $(element);
|
||||||
$('.list-check').listCheck();
|
this.element.data('exists', true);
|
||||||
$('.list-active-btn').data('actionable', false).on(clickEvent, function(e) {
|
if(this.element.context.parentNode.tagName == "TD") {
|
||||||
$t = $(this)
|
this.elementWrap = $(this.element.context.parentNode);
|
||||||
_data = $(this).data()
|
this.elementWrap.addClass('listCheck');
|
||||||
_data.actionable ? $('#dialog').modal('show') : "";
|
} else if(this.element.context.parentNode.tagName == "TH") {
|
||||||
e.preventDefault();
|
this.elementWrap = $(this.element.context.parentNode);
|
||||||
});
|
this.elementWrap.addClass('listCheckHead');
|
||||||
$('.delete-item').on(clickEvent, function() {
|
}
|
||||||
var _v = [];
|
this.element.before('<i class="icon-check-empty" />');
|
||||||
$("tbody .list-check").each(function() {
|
};
|
||||||
this.checked && _v.push("ids[]="+this.value)
|
|
||||||
|
$.fn.listCheck = function () {
|
||||||
|
$(this).each(function() {
|
||||||
|
var $this = $(this),
|
||||||
|
$el = $this.find('input[type="checkbox"]');
|
||||||
|
$el.each(function (i) {
|
||||||
|
if(!$(this).data('exists')) {
|
||||||
|
new ListCheck(this);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
$this.on(clickEvent, $el, function(e) {
|
||||||
|
if($(e.target).prop('checked')) {
|
||||||
|
$(e.target).siblings('i').addClass('icon-check').removeClass('icon-check-empty').closest('tr').addClass('checkHit');
|
||||||
|
} else {
|
||||||
|
$(e.target).siblings('i').addClass('icon-check-empty').removeClass('icon-check').closest('tr').removeClass('checkHit');
|
||||||
|
};
|
||||||
|
if($(e.target).closest('th').hasClass('listCheckHead')) {
|
||||||
|
$this.find('.listCheck input[type="checkbox"]').prop('checked', $(e.target).prop('checked'));
|
||||||
|
if($(e.target).prop('checked')) {
|
||||||
|
$this.find('.listCheck i').addClass('icon-check').removeClass('icon-check-empty').closest('tr').addClass('checkHit');
|
||||||
|
} else {
|
||||||
|
$this.find('.listCheck i').addClass('icon-check-empty').removeClass('icon-check').closest('tr').removeClass('checkHit');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var _isCheck = $this.find('tbody').find($el).filter(':checked').length,
|
||||||
|
_defaultLength = $this.find('tbody').find($el).length;
|
||||||
|
|
||||||
|
if(_isCheck > 0 && _isCheck < _defaultLength) {
|
||||||
|
$this.find('.listCheckHead i').removeClass('icon-check-empty icon-check').addClass('icon-minus');
|
||||||
|
} else if(!_isCheck) {
|
||||||
|
$this.find('.listCheckHead i').removeClass('icon-minus icon-check').addClass('icon-check-empty');
|
||||||
|
} else {
|
||||||
|
$this.find('.listCheckHead i').removeClass('icon-check-empty icon-minus').addClass('icon-check');
|
||||||
|
}
|
||||||
|
_isCheck ? $this.find('.list-active-btn').removeClass('disabled').data('actionable', true) : $this.find('.list-active-btn').addClass('disabled').data('actionable', false);
|
||||||
|
});
|
||||||
|
$this.on(clickEvent, '.list-active-btn', function(e) {
|
||||||
|
if(!$(this).hasClass('disabled')) {
|
||||||
|
ListCheckData.url = $(this).attr('rel');
|
||||||
|
ListCheckData.name = $this.find('tbody').find('input[type="checkbox"]').attr('name');
|
||||||
|
ListCheckData.action = $(this).data('checkAction');
|
||||||
|
ListCheckData.values = [];
|
||||||
|
ListCheckData.element = $this
|
||||||
|
$this.find('tbody').find('input[type="checkbox"]').each(function (i) {
|
||||||
|
this.checked && ListCheckData.values.push("ids[]=" + this.value);
|
||||||
|
});
|
||||||
|
console.log(ListCheckData.values.join("&"));
|
||||||
|
$('#dialog').modal('show');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
var _t = $t.attr("rel");
|
clearCheck($(this));
|
||||||
if(_t.indexOf("?") > -1) {
|
};
|
||||||
$.ajax(_t + "&" + _v.join("&")).done(function() {
|
|
||||||
actionSuccess(_data.checkAction)
|
function clearCheck(element) {
|
||||||
|
element.find('input[type="checkbox"]').each(function() {
|
||||||
|
$(this).prop('checked', false).siblings('i').addClass('icon-check-empty').removeClass('icon-check').closest('tr').removeClass('checkHit');
|
||||||
|
});
|
||||||
|
element.find('.list-active-btn').addClass('disabled');
|
||||||
|
};
|
||||||
|
|
||||||
|
function actionSuccess(e) {
|
||||||
|
ListCheckData.element.find('tbody').find('input[type="checkbox"]').each(function() {
|
||||||
|
switch(e) {
|
||||||
|
case 'list-be-hide':
|
||||||
|
$(this).filter(':checked').closest('tr').addClass('checkHide');
|
||||||
|
break;
|
||||||
|
case 'list-be-show':
|
||||||
|
$(this).filter(':checked').closest('tr').removeClass('checkHide');
|
||||||
|
break;
|
||||||
|
case 'list-be-remove':
|
||||||
|
$(this).filter(':checked').closest('tr').fadeOut(300, function() {
|
||||||
|
$(this).remove();
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
$('.list-check').siblings('i').removeAttr('class').addClass('icon-check-empty').closest('tr').removeClass('checkHit');
|
||||||
|
});
|
||||||
|
clearCheck(ListCheckData.element);
|
||||||
|
}
|
||||||
|
$('.list-check').listCheck();
|
||||||
|
$('.delete-item').on(clickEvent, function() {
|
||||||
|
if(ListCheckData.url.indexOf("?") > -1) {
|
||||||
|
$.ajax(ListCheckData.url + "&" + ListCheckData.values.join("&")).done(function() {
|
||||||
|
actionSuccess(ListCheckData.action);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$.ajax(_t + "?" + _v.join("&")).done(function() {
|
$.ajax(ListCheckData.url + "?" + ListCheckData.values.join("&")).done(function() {
|
||||||
actionSuccess(_data.checkAction)
|
actionSuccess(ListCheckData.action);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
$('#dialog').modal('hide');
|
$('#dialog').modal('hide');
|
||||||
|
|
|
@ -2,12 +2,19 @@ $(function() {
|
||||||
$(".post_preview").click(function(){
|
$(".post_preview").click(function(){
|
||||||
$("#main-wrap").after("<span id='show_preview'></span>");
|
$("#main-wrap").after("<span id='show_preview'></span>");
|
||||||
|
|
||||||
$.post($(this).attr('url'), $(".previewable").serialize() ,function(data){
|
var preview_url = $(this).attr('url');
|
||||||
$('#show_preview .modal').modal();
|
|
||||||
|
$("form.previewable").ajaxSubmit({
|
||||||
|
beforeSubmit: function(a,f,o){
|
||||||
|
o.dataType = 'script';
|
||||||
|
o.url = preview_url;
|
||||||
|
o.type = 'post';
|
||||||
|
},success: function(msg) {
|
||||||
|
$('#show_preview .modal').modal()
|
||||||
$('#show_preview .modal').height(function() {
|
$('#show_preview .modal').height(function() {
|
||||||
return $(window).height() * 0.7;
|
return $(window).height() * 0.7;
|
||||||
});
|
});
|
||||||
},'script');
|
}});
|
||||||
});
|
});
|
||||||
$(".preview_trigger").click(function(){
|
$(".preview_trigger").click(function(){
|
||||||
$("#main-wrap").after("<span id='show_preview'></span>");
|
$("#main-wrap").after("<span id='show_preview'></span>");
|
||||||
|
@ -38,10 +45,10 @@ $(function() {
|
||||||
// o.url = url.nodeValue;
|
// o.url = url.nodeValue;
|
||||||
// o.type = 'post';
|
// o.type = 'post';
|
||||||
// },success: function(msg) {
|
// },success: function(msg) {
|
||||||
// $('#show_preview .modal').modal()
|
// $('#show_preview .modal').modal()
|
||||||
// $('#show_preview .modal').height(function() {
|
// $('#show_preview .modal').height(function() {
|
||||||
// return $(window).height() * 0.7;
|
// return $(window).height() * 0.7;
|
||||||
// });
|
// });
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// });
|
// });
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
padding: 0 0 0 10px!important;
|
padding: 0 0 0 10px!important;
|
||||||
}
|
}
|
||||||
.listCheckHead .list-check,
|
.listCheckHead input[type="checkbox"],
|
||||||
.listCheck .list-check {
|
.listCheck input[type="checkbox"] {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
margin: -12px 0 0 -1px;
|
margin: -12px 0 0 -1px;
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||||
|
|
|
@ -1,9 +1,48 @@
|
||||||
class Admin::ModuleStoreController < OrbitBackendController
|
class Admin::ModuleStoreController < OrbitBackendController
|
||||||
|
|
||||||
|
@@store = STORE_CONFIG[:store_settings]["url"]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
@extensions = get_extensions
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
@extension = get_extension(params[:id]) rescue nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def download
|
||||||
|
#get extension related values
|
||||||
|
extension = get_extension(params[:id]) rescue nil
|
||||||
|
download_link = @@store + "/"+ extension["extension"]["extension"]["url"]
|
||||||
|
downloaded_file_name = extension["extension_filename"]
|
||||||
|
module_app_name = downloaded_file_name.split(/(.zip)/).first
|
||||||
|
|
||||||
|
#check if the directory exists or not
|
||||||
|
@module_status = Dir.exists?("#{Rails.root}/vendor/built_in_modules/#{module_app_name}")
|
||||||
|
if @module_status.eql?(true)
|
||||||
|
flash[:notice] = "This module is already installed"
|
||||||
|
else
|
||||||
|
download_extension(download_link, downloaded_file_name,module_app_name)
|
||||||
|
flash[:notice] = "This module has been successfully installed"
|
||||||
|
end
|
||||||
|
redirect_to admin_module_store_path
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def get_extensions
|
||||||
|
JSON.parse(open("#{@@store}/api/extensions").read)
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_extension(id)
|
||||||
|
JSON.parse(open("#{@@store}/api/extensions/#{id}").read)
|
||||||
|
end
|
||||||
|
|
||||||
|
def download_extension(download_link, downloaded_file_name,module_app_name)
|
||||||
|
puts %x(wget "#{download_link}")
|
||||||
|
puts %x(unzip "#{downloaded_file_name}")
|
||||||
|
puts %x(mv #{module_app_name} "#{Rails.root}/vendor/built_in_modules/")
|
||||||
|
puts %x(rm "#{downloaded_file_name}")
|
||||||
|
site_restart
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -36,6 +36,26 @@ class Admin::PagesController < Admin::ItemsController
|
||||||
@item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id )
|
@item.page_contexts.build(:create_user_id => current_user.id, :update_user_id => current_user.id )
|
||||||
end
|
end
|
||||||
if @item.update_attributes(params[:page])
|
if @item.update_attributes(params[:page])
|
||||||
|
unless params[:page]['frontend_field'].nil?
|
||||||
|
frontend_class = []
|
||||||
|
frontend_field_name = []
|
||||||
|
frontend_sat_to_link = []
|
||||||
|
|
||||||
|
params[:page]['frontend_field'].each do |field|
|
||||||
|
frontend_class << field['class']
|
||||||
|
frontend_field_name << field['field_name']
|
||||||
|
frontend_sat_to_link << field['sat_to_link']
|
||||||
|
end
|
||||||
|
|
||||||
|
@item['frontend_class'] = frontend_class
|
||||||
|
@item['frontend_field_name'] = frontend_field_name
|
||||||
|
@item['frontend_sat_to_link'] = frontend_sat_to_link
|
||||||
|
end
|
||||||
|
|
||||||
|
@item['tag'] = params[:page]['tag'] == nil ? [] : params[:page]['tag']
|
||||||
|
|
||||||
|
@item.save
|
||||||
|
|
||||||
render 'admin/items/reload_items'
|
render 'admin/items/reload_items'
|
||||||
else
|
else
|
||||||
@error = error_messages_for(@item)
|
@error = error_messages_for(@item)
|
||||||
|
|
|
@ -72,7 +72,10 @@ class Admin::SitesController < OrbitBackendController
|
||||||
end
|
end
|
||||||
|
|
||||||
def system_info
|
def system_info
|
||||||
|
@disk_free = `df -h /`.gsub("\n","<br/>").html_safe
|
||||||
|
@nginx_version = %x[/opt/nginx/sbin/nginx -v 2>&1].gsub("\n","<br/> ").html_safe
|
||||||
|
@mongo_version = `mongod --version`.split("\n")[0].html_safe
|
||||||
|
@linux_version = `lsb_release -d`.split(":")[1].html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
def search_engine
|
def search_engine
|
||||||
|
|
|
@ -1,22 +1,95 @@
|
||||||
|
require 'net/http'
|
||||||
|
require 'uri'
|
||||||
|
require 'fileutils'
|
||||||
|
require 'zip/zip'
|
||||||
class Admin::TemplateStoreController < OrbitBackendController
|
class Admin::TemplateStoreController < OrbitBackendController
|
||||||
|
|
||||||
|
|
||||||
@@store_domain = "http://store.tp.rulingcom.com"
|
@@store_domain = STORE_CONFIG[:store_settings]["url"]
|
||||||
def index
|
def index
|
||||||
@store = @@store_domain
|
@store = @@store_domain
|
||||||
|
@design_ids = Design.all.map{|d| d.template_store_id}
|
||||||
@templates = JSON.parse(get_templates)
|
@templates = JSON.parse(get_templates)
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@store = @@store_domain
|
@store = @@store_domain
|
||||||
|
@design_ids = Design.all.map{|d| d.template_store_id}
|
||||||
@template = JSON.parse(get_template(params[:id])) rescue nil
|
@template = JSON.parse(get_template(params[:id])) rescue nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def download_theme
|
def download_theme
|
||||||
render :json => {"success"=>true}.to_json
|
url = @@store_domain + params["url"]
|
||||||
|
url_base = url.split('/')[2]
|
||||||
|
url_path = '/'+url.split('/')[3..-1].join('/')
|
||||||
|
Net::HTTP.start(url_base) do |http|
|
||||||
|
open("public/#{params['slug']}.zip", "wb") do |file|
|
||||||
|
http.get(url_path) do |str|
|
||||||
|
file.write(str)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
upload_package("#{params['slug']}.zip", params["id"])
|
||||||
|
File.delete("public/#{params['slug']}.zip")
|
||||||
|
render :json => {"success"=>true,"url"=>@@store_domain + params["url"]}.to_json
|
||||||
end
|
end
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def upload_package(package_name,template_store_id)
|
||||||
|
|
||||||
|
temp_file = Tempfile.new("temp_file")
|
||||||
|
original_file = File.open("#{Rails.root}/public/#{package_name}")
|
||||||
|
temp_file.write(original_file.read.force_encoding('UTF-8'))
|
||||||
|
temp_file.rewind
|
||||||
|
filename = File.basename(original_file,".zip")
|
||||||
|
unzip_design(temp_file, filename, template_store_id)
|
||||||
|
temp_file.close
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def unzip_design(file, zip_name, template_store_id)
|
||||||
|
Zip::ZipFile.open(file) { |zip_file|
|
||||||
|
design = Design.new.from_json(zip_file.read("#{zip_name}/info.json"))
|
||||||
|
design.template_store_id = template_store_id
|
||||||
|
Dir.mktmpdir('f_path') { |dir|
|
||||||
|
themes_entries = []
|
||||||
|
javascripts_entries = []
|
||||||
|
images_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})\/(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
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
['themes', 'javascripts', 'images'].each do |type|
|
||||||
|
eval("#{type}_entries").each do |entry|
|
||||||
|
eval("design.#{type}").build(:file => get_temp_file(zip_file, dir, entry))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
design.save
|
||||||
|
}
|
||||||
|
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
|
||||||
|
|
||||||
def get_template(id)
|
def get_template(id)
|
||||||
uri = URI.parse("#{@@store_domain}/api/templates/#{id}")
|
uri = URI.parse("#{@@store_domain}/api/templates/#{id}")
|
||||||
http = Net::HTTP.new(uri.host, uri.port)
|
http = Net::HTTP.new(uri.host, uri.port)
|
||||||
|
@ -33,6 +106,4 @@ class Admin::TemplateStoreController < OrbitBackendController
|
||||||
response.body
|
response.body
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
|
@ -1,6 +1,7 @@
|
||||||
class OrbitBackendController < ApplicationController
|
class OrbitBackendController < ApplicationController
|
||||||
include OrbitCategory::Categorizing
|
include OrbitCategory::Categorizing
|
||||||
include OrbitCoreLib::Authorization
|
include OrbitCoreLib::Authorization
|
||||||
|
include OrbitCoreLib::PermissionUtility
|
||||||
include OrbitTag::Tagging
|
include OrbitTag::Tagging
|
||||||
include AdminHelper
|
include AdminHelper
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
|
|
|
@ -197,8 +197,8 @@ class PagesController < ApplicationController
|
||||||
else
|
else
|
||||||
model = params[:app_action].classify.constantize rescue nil
|
model = params[:app_action].classify.constantize rescue nil
|
||||||
if !model.nil?
|
if !model.nil?
|
||||||
item = model.find(params[:id])
|
item = model.where(:_id=>params[:id]).first
|
||||||
@item = Item.where(:category => [item.category_id.to_s]).first if !module_app.has_category.blank?
|
@item = Item.where(:category => [item.category_id.to_s]).first if !module_app.has_category.blank? and !item.blank?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -193,8 +193,8 @@ module ApplicationHelper
|
||||||
stylesheets = ''
|
stylesheets = ''
|
||||||
stylesheets << "<link href='#{asset_path 'orbit_bar_bootstrap'}' rel='stylesheet' type='text/css' />\n"
|
stylesheets << "<link href='#{asset_path 'orbit_bar_bootstrap'}' rel='stylesheet' type='text/css' />\n"
|
||||||
stylesheets << "<link href='#{page.design.css_reset.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.css_reset
|
stylesheets << "<link href='#{page.design.css_reset.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.css_reset
|
||||||
stylesheets << "<link href='#{asset_path 'banner_nav.css'}' rel='stylesheet' type='text/css' />\n"
|
# stylesheets << "<link href='#{asset_path 'banner_nav.css'}' rel='stylesheet' type='text/css' />\n"
|
||||||
stylesheets << "<link href='#{asset_path 'default_widget.css'}' rel='stylesheet' type='text/css' />\n"
|
# stylesheets << "<link href='#{asset_path 'default_widget.css'}' rel='stylesheet' type='text/css' />\n"
|
||||||
stylesheets << "<link href='#{page.design.css_default.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.css_default
|
stylesheets << "<link href='#{page.design.css_default.file.url}' rel='stylesheet' type='text/css' />\n" if page.design.css_default
|
||||||
theme = page.design.themes.detect{ |d| d.id == page.theme_id }
|
theme = page.design.themes.detect{ |d| d.id == page.theme_id }
|
||||||
stylesheets << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />\n" if theme
|
stylesheets << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />\n" if theme
|
||||||
|
|
|
@ -12,13 +12,13 @@ module OrbitBackendHelper
|
||||||
|
|
||||||
def show_form_status_field(object)
|
def show_form_status_field(object)
|
||||||
#by_object = (!object.is_expired? and object.is_pending?)
|
#by_object = (!object.is_expired? and object.is_pending?)
|
||||||
by_user = ((object.category.authed_users("approval_#{@module_app.key}").include?(current_user) rescue nil) or is_manager? or is_admin? or is_sub_manager?)
|
by_user = ((object.category.user_is_authorized_by_title?(current_user,"category_approval_#{@module_app.key}") rescue nil) or is_manager? or is_admin?)
|
||||||
by_user
|
by_user
|
||||||
end
|
end
|
||||||
|
|
||||||
def show_approval_link(object)
|
def show_approval_link(object)
|
||||||
by_object = (!object.is_expired? and object.is_pending?)
|
by_object = (!object.is_expired? and object.is_pending?)
|
||||||
by_user = ((object.category.authed_users("approval_#{@module_app.key}").include?(current_user) rescue nil) or is_manager? or is_admin? or is_sub_manager?)
|
by_user = ((object.category.user_is_authorized_by_title?(current_user,"category_approval_#{@module_app.key}") rescue nil) or is_manager? or is_admin?)
|
||||||
by_object and by_user
|
by_object and by_user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -271,17 +271,31 @@ module OrbitBackendHelper
|
||||||
# TODO: links to other actions
|
# TODO: links to other actions
|
||||||
# ===============================================================
|
# ===============================================================
|
||||||
def footer(args={})
|
def footer(args={})
|
||||||
|
|
||||||
|
if args[:link_name]
|
||||||
|
link_name = args[:link_name]
|
||||||
|
else
|
||||||
|
link_name = content_tag(:i, nil, :class => 'icon-plus') + ' ' + t(:add)
|
||||||
|
end
|
||||||
|
|
||||||
paginate = args.has_key?(:paginate) ? args[:paginate] : true
|
paginate = args.has_key?(:paginate) ? args[:paginate] : true
|
||||||
link = (is_manager? || is_sub_manager? rescue nil) && args.has_key?(:link) ? true : false
|
link = (is_manager? || is_sub_manager? rescue nil) && args.has_key?(:link) ? true : false
|
||||||
if paginate || link
|
if paginate || link
|
||||||
@index_footer = content_tag :div, class: "bottomnav clearfix" do
|
@index_footer = content_tag :div, class: "bottomnav clearfix" do
|
||||||
concat content_tag :div, link_to(content_tag(:i, nil, :class => 'icon-plus') + ' ' + t(:add), args[:link].blank? ? '#' : send(args[:link]), :class => (args[:link_class] || 'btn btn-primary'), data: args[:link_data]), class: "action pull-right" if link
|
concat content_tag :div, link_to(link_name, args[:link].blank? ? '#' : send(args[:link]), :class => (args[:link_class] || 'btn btn-primary'), data: args[:link_data]), class: "action pull-right" if link
|
||||||
concat content_tag :div, paginate(@objects, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]}), class: "pagination pagination-centered" if paginate
|
concat content_tag :div, paginate(@objects, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]}), class: "pagination pagination-centered" if paginate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_quick_link(quick, object, authorization, approvable)
|
def get_quick_link(quick, object, authorization, approvable)
|
||||||
|
|
||||||
|
if !quick[:link_option].blank?
|
||||||
|
link_option = ",#{quick[:link_option]}"
|
||||||
|
else
|
||||||
|
link_option = ""
|
||||||
|
end
|
||||||
|
|
||||||
case quick[:type]
|
case quick[:type]
|
||||||
when 'approval'
|
when 'approval'
|
||||||
if show_approval_link(object)
|
if show_approval_link(object)
|
||||||
|
@ -292,13 +306,13 @@ module OrbitBackendHelper
|
||||||
content_tag :li, link_to(t(quick[:translation] || :authorization_), eval("#{quick[:link]}"), class: "preview_trigger #{quick[:class]}")
|
content_tag :li, link_to(t(quick[:translation] || :authorization_), eval("#{quick[:link]}"), class: "preview_trigger #{quick[:class]}")
|
||||||
end
|
end
|
||||||
when 'edit'
|
when 'edit'
|
||||||
if authorization && approvable
|
if authorization && approvable || is_manager?
|
||||||
content_tag :li, link_to(t(quick[:translation] || :edit), quick[:link].nil? ? '#' : eval("#{quick[:link]}('#{object.id}')"), class: quick[:class], data: eval("#{quick[:data]}"))
|
content_tag :li, link_to(t(quick[:translation] || :edit), quick[:link].nil? ? '#' : eval("#{quick[:link]}('#{object.id}'#{link_option})"), class: quick[:class], data: eval("#{quick[:data]}"))
|
||||||
end
|
end
|
||||||
when 'delete'
|
when 'delete'
|
||||||
if show_delete_link(object)
|
if show_delete_link(object)
|
||||||
@delete_options = {title: quick[:title], warning: quick[:warning], cancel: quick[:cancel], submit: quick[:submit]}
|
@delete_options = {title: quick[:title], warning: quick[:warning], cancel: quick[:cancel], submit: quick[:submit]}
|
||||||
content_tag :li, link_to(t(quick[:translation] || :delete_), '#', rel: eval("#{quick[:link]}('#{object.id}')"), class: "delete #{quick[:class] || 'text-error'}")
|
content_tag :li, link_to(t(quick[:translation] || :delete_), '#', rel: eval("#{quick[:link]}('#{object.id}'#{link_option})"), class: "delete #{quick[:class] || 'text-error'}")
|
||||||
end
|
end
|
||||||
when 'detail'
|
when 'detail'
|
||||||
content_tag :li, link_to(t(quick[:translation] || :detail), '#', class: (quick[:class] || "detail-row"))
|
content_tag :li, link_to(t(quick[:translation] || :detail), '#', class: (quick[:class] || "detail-row"))
|
||||||
|
@ -307,7 +321,17 @@ module OrbitBackendHelper
|
||||||
content_tag :li, link_to(t(quick[:translation] || :rejected_reason) + ' ' + truncate(object.not_checked_reason, :length => 10), '#', rel: "tooltip", 'data-original-title' => (wrap_string_with(object.not_checked_reason, :line_width => 24)), class: "reject_info #{quick[:class]}")
|
content_tag :li, link_to(t(quick[:translation] || :rejected_reason) + ' ' + truncate(object.not_checked_reason, :length => 10), '#', rel: "tooltip", 'data-original-title' => (wrap_string_with(object.not_checked_reason, :line_width => 24)), class: "reject_info #{quick[:class]}")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
content_tag :li, link_to(t(quick[:translation]), eval("#{quick[:link]}('#{object.id}')"), class: quick[:class])
|
if quick[:define_link]
|
||||||
|
if quick[:condition_option]
|
||||||
|
if eval("#{quick[:condition_option]}")
|
||||||
|
content_tag :li, link_to(t(quick[:translation]), eval("#{quick[:define_link]}"), class: quick[:class])
|
||||||
|
end
|
||||||
|
else
|
||||||
|
content_tag :li, link_to(t(quick[:translation]), eval("#{quick[:define_link]}"), class: quick[:class])
|
||||||
|
end
|
||||||
|
else
|
||||||
|
content_tag :li, link_to(t(quick[:translation]), eval("#{quick[:link]}('#{object.id}')"), class: quick[:class])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -419,6 +443,10 @@ module OrbitBackendHelper
|
||||||
res << "<li class='active'>#{t(:search_engine)}</li>"
|
res << "<li class='active'>#{t(:search_engine)}</li>"
|
||||||
when 'site_info'
|
when 'site_info'
|
||||||
res << "<li class='active'>#{t(:site_info)}</li>"
|
res << "<li class='active'>#{t(:site_info)}</li>"
|
||||||
|
when 'update_manager'
|
||||||
|
res << "<li class='active'>#{t(:update_manager)}</li>"
|
||||||
|
when 'system_info'
|
||||||
|
res << "<li class='active'>#{t("site.system_preference")}</li>"
|
||||||
end
|
end
|
||||||
when 'items'
|
when 'items'
|
||||||
res << "<li class='active'>#{t(:structure)}</li>"
|
res << "<li class='active'>#{t(:structure)}</li>"
|
||||||
|
|
|
@ -2,28 +2,30 @@ class CronMail < ActionMailer::Base
|
||||||
default :from => "orbit_test@rulingcom.com"
|
default :from => "orbit_test@rulingcom.com"
|
||||||
|
|
||||||
def get_settings
|
def get_settings
|
||||||
# @@smtp_settings = {
|
@site = Site.first
|
||||||
# :address => "smtp.gmail.com",
|
@@smtp_settings = {
|
||||||
# :port => '587',
|
:enable_starttls_auto => @site['site_settings']['enable_starttls_auto'],
|
||||||
# :domain => "smtp.gmail.com",
|
:address => @site['site_settings']['address'],
|
||||||
# :authentication => "plain",
|
:port => @site['site_settings']['port'],
|
||||||
# :user_name => "redmine@rulingcom.com",
|
:domain => @site['site_settings']['domain'],
|
||||||
# :password => "rulingredmine",
|
:authentication => @site['site_settings']['authentication'],
|
||||||
# :tls => true,
|
:user_name => @site['site_settings']['user_name'],
|
||||||
# :enable_starttls_auto => true
|
:password => @site['site_settings']['password']
|
||||||
# }
|
|
||||||
@@smtp_settings = {
|
|
||||||
:address => @site['mail_settings']['address'],
|
|
||||||
:port => @site['mail_settings']['port'],
|
|
||||||
:domain => @site['mail_settings']['domain'],
|
|
||||||
:authentication => @site['mail_settings']['authentication'],
|
|
||||||
:user_name => @site['mail_settings']['user_name'],
|
|
||||||
:password => @site['mail_settings']['password'],
|
|
||||||
:tls => @site['mail_settings']['tls'],
|
|
||||||
:enable_starttls_auto => @site['mail_settings']['enable_starttls_auto']
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.smtp_settings
|
||||||
|
@site = Site.first
|
||||||
|
@@smtp_settings = {
|
||||||
|
:enable_starttls_auto => @site['site_settings']['enable_starttls_auto'],
|
||||||
|
:address => @site['site_settings']['address'],
|
||||||
|
:port => @site['site_settings']['port'],
|
||||||
|
:domain => @site['site_settings']['domain'],
|
||||||
|
:authentication => @site['site_settings']['authentication'],
|
||||||
|
:user_name => @site['site_settings']['user_name'],
|
||||||
|
:password => @site['site_settings']['password']
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def time_check(msg)
|
def time_check(msg)
|
||||||
get_settings
|
get_settings
|
||||||
|
|
|
@ -7,6 +7,7 @@ class Design
|
||||||
field :intro, :type => String
|
field :intro, :type => String
|
||||||
field :title, :type => String
|
field :title, :type => String
|
||||||
field :version, :type => String
|
field :version, :type => String
|
||||||
|
field :template_store_id, :type => String
|
||||||
|
|
||||||
mount_uploader :zip_file, AssetUploader
|
mount_uploader :zip_file, AssetUploader
|
||||||
|
|
||||||
|
|
|
@ -194,6 +194,7 @@ class ModuleApp
|
||||||
# authorization
|
# authorization
|
||||||
def update_auth_approval_users
|
def update_auth_approval_users
|
||||||
user_ids = self.auth_approvals.inject([]) do |users, auth|
|
user_ids = self.auth_approvals.inject([]) do |users, auth|
|
||||||
|
auth = auth.class.find(auth.id)
|
||||||
users += auth.authorized_users.map{|user| user.id}
|
users += auth.authorized_users.map{|user| user.id}
|
||||||
end
|
end
|
||||||
self.update_attribute(:auth_approval_users, user_ids.uniq)
|
self.update_attribute(:auth_approval_users, user_ids.uniq)
|
||||||
|
|
|
@ -42,7 +42,7 @@ class AvatarUploader < CarrierWave::Uploader::Base
|
||||||
# end
|
# end
|
||||||
|
|
||||||
version :thumb do
|
version :thumb do
|
||||||
process :resize_to_fit => [80, 80]
|
process :resize_to_fit => [200, 200]
|
||||||
end
|
end
|
||||||
|
|
||||||
# Add a white list of extensions which are allowed to be uploaded.
|
# Add a white list of extensions which are allowed to be uploaded.
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
|
|
||||||
<li title="<%= t('update_manager') %>"><%= link_to admin_site_update_manager_path(@site), :class => active_for_action('sites', 'update_manager') do %><span><i class="icon-refresh"></i></span><%end%></li>
|
<li title="<%= t('update_manager') %>"><%= link_to admin_site_update_manager_path(@site), :class => active_for_action('sites', 'update_manager') do %><span><i class="icon-refresh"></i></span><%end%></li>
|
||||||
|
|
||||||
<!-- <li title="System Info"><a href="/orbit_4.0.1/admin/system_info/index.shtml?sidebarNavList=8&subNavBlockList=0"><span><i class="icons-info-2"></i></span></a></li>
|
<li title="<%= t("site.system_preference") %>"><%= link_to admin_site_system_info_path(@site), :class => active_for_action('sites', 'system_info') do %><span><i class="icons-info-2"></i></span><%end%></li>
|
||||||
--> </ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="sub-nav-arrow"></div>
|
<div class="sub-nav-arrow"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -14,8 +14,14 @@
|
||||||
<%= javascript_include_tag 'lib/retina' %>
|
<%= javascript_include_tag 'lib/retina' %>
|
||||||
<%= javascript_include_tag 'lib/mudole_templates_status' %>
|
<%= javascript_include_tag 'lib/mudole_templates_status' %>
|
||||||
</head>
|
</head>
|
||||||
|
<!--
|
||||||
|
<% @extensions.each do |extension|%>
|
||||||
|
<%=link_to extension["title"], admin_module_store_show_path(extension["_slugs"][0])%>
|
||||||
|
<%end%> -->
|
||||||
|
|
||||||
<table id="mt-list" class="table main-list">
|
<%= flash[:notice] rescue nil%>
|
||||||
|
|
||||||
|
<table id="mt-list" class="table main-list">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="sort-header">
|
<tr class="sort-header">
|
||||||
<th class="first"><a href="#">Module Title</a></th>
|
<th class="first"><a href="#">Module Title</a></th>
|
||||||
|
@ -25,6 +31,38 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<% @extensions.each do |extension|%>
|
||||||
|
<tr>
|
||||||
|
<td class="detail-row">
|
||||||
|
<div class="module_icon pull-left">
|
||||||
|
<%= image_tag "module_icon.png"%>
|
||||||
|
</div>
|
||||||
|
<h5 class="mt_title"><span><%=link_to extension["title"], admin_module_store_show_path(extension["_slugs"][0])%></span></h5>
|
||||||
|
<p class="mt_dev muted"><%=extension["author"]%></p>
|
||||||
|
</td>
|
||||||
|
<td class="detail-row">2013/07/12</td>
|
||||||
|
<td>
|
||||||
|
<%= extension["description"].html_safe%> <%= link_to 'Read More', admin_module_store_show_path(extension["_slugs"][0]) %>
|
||||||
|
</td>
|
||||||
|
<!-- <td class="active"><button class="act btn btn-mini" type="button">Uninstall</button></td>
|
||||||
|
-->
|
||||||
|
<% download_link = STORE_CONFIG[:store_settings]["url"] + "/"+ extension["extension"]["extension"]["url"]
|
||||||
|
downloaded_file_name = extension["extension_filename"]
|
||||||
|
module_app_name = downloaded_file_name.split(/(.zip)/).first
|
||||||
|
@module_status = Dir.exists?("#{Rails.root}/vendor/built_in_modules/#{module_app_name}")
|
||||||
|
%>
|
||||||
|
<% if @module_status.eql?(true)%>
|
||||||
|
<td class="active">Installed</td>
|
||||||
|
<% else %>
|
||||||
|
<td class="active"><%= link_to 'Download', admin_module_store_download_path(:id => extension["_slugs"][0]), :class=>"act btn btn-mini btn-success" %></td>
|
||||||
|
<% end %>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<!--
|
||||||
<tr>
|
<tr>
|
||||||
<td class="detail-row">
|
<td class="detail-row">
|
||||||
<div class="module_icon pull-left">
|
<div class="module_icon pull-left">
|
||||||
|
@ -80,6 +118,5 @@
|
||||||
@detail
|
@detail
|
||||||
</td>
|
</td>
|
||||||
<td class="active"><button class="act btn btn-mini btn-info" type="button">Update</button></td>
|
<td class="active"><button class="act btn btn-mini btn-info" type="button">Update</button></td>
|
||||||
</tr>
|
</tr> -->
|
||||||
</tbody>
|
|
||||||
</table>
|
|
|
@ -22,7 +22,7 @@
|
||||||
<div class="side">
|
<div class="side">
|
||||||
<div id="item-info">
|
<div id="item-info">
|
||||||
<img src="/assets/module/thumb/mt<%= params[:m] %>.jpg" alt="" class="item-thumb">
|
<img src="/assets/module/thumb/mt<%= params[:m] %>.jpg" alt="" class="item-thumb">
|
||||||
<h2 class="item-name">Module Name</h2>
|
<h2 class="item-name"><%= @extension.first["title"] %></h2>
|
||||||
<a id="download" href="">free download</a>
|
<a id="download" href="">free download</a>
|
||||||
<ul class="item-extra-info">
|
<ul class="item-extra-info">
|
||||||
<li><span class="title">downloads</span><span class="count"><%= Random.new.rand(10..100) %></span></li>
|
<li><span class="title">downloads</span><span class="count"><%= Random.new.rand(10..100) %></span></li>
|
||||||
|
@ -38,16 +38,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main clearfix">
|
<div class="main clearfix">
|
||||||
<h3>description</h3>
|
<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>
|
<div id="desc-holder" class="paragraph"><%= @extension.first["description"].html_safe%></div>
|
||||||
<h3>screen shot</h3>
|
<h3>screen shot</h3>
|
||||||
<div id="screen-shot">
|
<div id="screen-shot">
|
||||||
<div class="holder">
|
<div class="holder">
|
||||||
<img src="" alt="Thumbnail 1" class="preview item-thumb">
|
<%= image_tag "#{STORE_CONFIG[:store_settings]["url"]}/#{@extension.first['preview']['preview']['url']}"%>
|
||||||
<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>
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
|
|
||||||
<li title="<%= t('update_manager') %>"><%= link_to admin_site_update_manager_path(@site), :class => active_for_action('sites', 'update_manager') do %><span><i class="icon-refresh"></i></span><%end%></li>
|
<li title="<%= t('update_manager') %>"><%= link_to admin_site_update_manager_path(@site), :class => active_for_action('sites', 'update_manager') do %><span><i class="icon-refresh"></i></span><%end%></li>
|
||||||
|
|
||||||
<!-- <li title="System Info"><a href="/orbit_4.0.1/admin/system_info/index.shtml?sidebarNavList=8&subNavBlockList=0"><span><i class="icons-info-2"></i></span></a></li>
|
<li title="<%= t("site.system_preference") %>"><%= link_to admin_site_system_info_path(@site), :class => active_for_action('sites', 'system_info') do %><span><i class="icons-info-2"></i></span><%end%></li>
|
||||||
--> </ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="sub-nav-arrow"></div>
|
<div class="sub-nav-arrow"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label muted"><%= t 'mail.domain' %></label>
|
<label class="control-label muted"><%= t 'mail.domain' %></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<%= f.text_field :port, :value => (@site['site_settings']['port'] rescue nil), :class=>"input-large", :placeholder=>"Domain" %>
|
<%= f.text_field :domain, :value => (@site['site_settings']['domain'] rescue nil), :class=>"input-large", :placeholder=>"Domain" %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label muted"><%= t 'mail.password' %></label>
|
<label class="control-label muted"><%= t 'mail.password' %></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<%= f.text_field :password, :value => (@site['site_settings']['password'] rescue nil), :class=>"input-large", :placeholder=>"Password" %>
|
<%= f.password_field :password, :value => (@site['site_settings']['password'] rescue nil), :class=>"input-large", :placeholder=>"Password" %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
<h1><%= I18n.t("site.system_preference") %></h1>
|
|
||||||
<ul class="nav nav-tabs" id="myTab">
|
|
||||||
<li class="active"><a href="#summary" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_summary") %></a></li>
|
|
||||||
<li><a href="#commits" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_commits") %></a></li>
|
|
||||||
<li><a href="#backups" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_backups") %></a></li>
|
|
||||||
<li><a href="#resque_logs" data-toggle="tab"><%= I18n.t("site.system_preference_.tab_logs") %></a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="tab-content">
|
|
||||||
<div class="tab-pane active in" id="summary">
|
|
||||||
<h2><%= I18n.t("site.system_preference_.summary.disk_space") %>:</h2>
|
|
||||||
<%= content_tag :p,@site.disk_space.gsub(/\n/,"<br />").html_safe if @site.disk_space %>
|
|
||||||
<h2><%= I18n.t("site.system_preference_.summary.code_update_at") %>: </h2>
|
|
||||||
<% @site.system_package_info.each do |index,value| %>
|
|
||||||
<h2><%= index.titleize %> <%= I18n.t("site.system_preference_.summary.version") %>:</h2>
|
|
||||||
<%= content_tag :p,value %>
|
|
||||||
<% end %>
|
|
||||||
<h2><%= I18n.t("site.system_preference_.summary.weekness_report") %>:<%= '' %></h2>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="commits">
|
|
||||||
<% if @git_commit_list_file %>
|
|
||||||
<% @git_commit_list_file.lines do |line|%>
|
|
||||||
<%= line %><br/>
|
|
||||||
<% end%>
|
|
||||||
<% else %>
|
|
||||||
<div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="backups">
|
|
||||||
<%if @db_backup_list_file %>
|
|
||||||
<% @db_backup_list_file.lines do |line|%>
|
|
||||||
<%=line %><br/>
|
|
||||||
<% end %>
|
|
||||||
<% else %>
|
|
||||||
<div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="resque_logs">
|
|
||||||
<%if @db_backup_list_file %>
|
|
||||||
<% @resque_logs_file.lines do |line|%>
|
|
||||||
<%=line %><br/>
|
|
||||||
<% end if @resque_logs_file%>
|
|
||||||
<%else %>
|
|
||||||
<div class="well"><%= I18n.t("site.system_preference_.summary.no_data") %></div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -48,7 +48,7 @@
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
$(document).on('click', 'li .onoff', function () {
|
$(document).on('click', 'li .map-block .onoff', function () {
|
||||||
$(this).parents("li").toggleClass("disabled");
|
$(this).parents("li").toggleClass("disabled");
|
||||||
if($(this).parents("li").attr("class").indexOf("disabled") > 0){
|
if($(this).parents("li").attr("class").indexOf("disabled") > 0){
|
||||||
$(this).text("<%= t('off_upcase') %>")
|
$(this).text("<%= t('off_upcase') %>")
|
||||||
|
|
|
@ -1,5 +1,126 @@
|
||||||
|
<%= stylesheet_link_tag "lib/wrap-nav" %>
|
||||||
|
<%= stylesheet_link_tag "lib/main-list" %>
|
||||||
|
<%= stylesheet_link_tag "lib/main-forms" %>
|
||||||
|
<%= stylesheet_link_tag "lib/fileupload.css" %>
|
||||||
|
<%= stylesheet_link_tag "lib/togglebox.css" %>
|
||||||
|
<%= stylesheet_link_tag "lib/list-check.css" %>
|
||||||
|
|
||||||
|
<%= javascript_include_tag "lib/site_set" %>
|
||||||
|
<%= javascript_include_tag "lib/list-check" %>
|
||||||
|
|
||||||
<% content_for :side_bar do %>
|
<% content_for :side_bar do %>
|
||||||
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :icon => 'icons-cog', :side_bar_content => 'admin/sites/side_bar'} %>
|
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :icon => 'icons-cog', :side_bar_content => 'admin/sites/side_bar'} %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
system_info.html.erb
|
<form class="form-horizontal main-forms">
|
||||||
|
<fieldset>
|
||||||
|
<div class="input-area">
|
||||||
|
<div class="nav-name"><strong><%= t("preferences.classification") %></strong></div>
|
||||||
|
<ul class="nav nav-pills language-nav">
|
||||||
|
<li class="active"><a href="#overview" data-toggle="tab"><%= t("site.system_preference_.tab_summary") %></a></li>
|
||||||
|
<li><a href="#mail-cron-logs" data-toggle="tab"><%= t("site.system_preference_.tab_send_reminders_log") %></a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<!-- Overview -->
|
||||||
|
<div id="overview" class="tab-pane fade in active">
|
||||||
|
<h3 class="muted"><%= t("site.system_preference_.summary.disk_space") %></h3>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
<%= @disk_free %>
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
<h3 class="muted">Nginx <%= t("site.system_preference_.summary.version") %></h3>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
<%= @nginx_version %>
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
</span>
|
||||||
|
<h3 class="muted">MongoDB <%= t("site.system_preference_.summary.version") %></h3>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
<%= @mongo_version %>
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
<h3 class="muted">Linux <%= t("site.system_preference_.summary.version") %></h3>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
<%= @linux_version %>
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Email Log -->
|
||||||
|
<div id="mail-cron-logs" class="tab-pane fade">
|
||||||
|
<ul class="nav nav-pills">
|
||||||
|
<li class="active">
|
||||||
|
<a href="#send-log" data-toggle="tab"><%= t(:email_log) %></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#waiting-sent" data-toggle="tab"><%= t(:email_queue) %></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane fade in active list-check" id="send-log">
|
||||||
|
<p class="">
|
||||||
|
<a href="#" class="btn list-active-btn disabled" data-check-action="list-be-remove" rel="/panel/announcement/back_end/bulletins/delete"><i class="icons-trash"></i></a>
|
||||||
|
</p>
|
||||||
|
<table class="table main-list table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<input type="checkbox" name="to_delete[]" value="b" />
|
||||||
|
</th>
|
||||||
|
<th><%= t(:sent_date) %></th>
|
||||||
|
<th><%= t(:subject) %></th>
|
||||||
|
<th><%= t(:mail_to) %></th>
|
||||||
|
<th><%= t(:mail_user) %></th>
|
||||||
|
<th><%= t(:mail_from_app) %></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane fade in list-check" id="waiting-sent">
|
||||||
|
<p class="">
|
||||||
|
<a href="#" class="btn list-active-btn disabled" data-check-action="list-be-remove" rel="/panel/announcement/back_end/bulletins/delete"><i class="icons-trash"></i></a>
|
||||||
|
</p>
|
||||||
|
<table class="table main-list table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<input type="checkbox" name="to_delete[]" value="b" />
|
||||||
|
</th>
|
||||||
|
<th><%= t(:sent_date) %></th>
|
||||||
|
<th><%= t(:subject) %></th>
|
||||||
|
<th><%= t(:mail_to) %></th>
|
||||||
|
<th><%= t(:mail_from_app) %></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div id="dialog" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="Delete item" aria-hidden="true">
|
||||||
|
<div class="modal-header">
|
||||||
|
<a class="close" data-dismiss="modal">×</a>
|
||||||
|
<h3><%= t(:sure?) %></h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<span class="text-warning text-center"><%= t(:this_action_can_not_be_restore) %></span>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn" data-dismiss="modal" aria-hidden="true"><%= t(:close) %></button>
|
||||||
|
<button class="delete-item btn btn-danger"><%= t(:delete_) %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -60,7 +60,11 @@
|
||||||
<span class="item-price">Free</span>
|
<span class="item-price">Free</span>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<%= link_to "Download", "javascript:void(0);", "data-url" => template['template']['template']['url'], :class=> 'btn btn-primary download-link' %>
|
<% if @design_ids.include?(template["_id"]["$oid"]) %>
|
||||||
|
<%= link_to "Installed", "javascript:void(0);", "data-url" => template['template']['template']['url'], :class=> 'btn btn-success download-link', "disabled"=>"disabled", "data-name"=>template['title'], "data-slug"=>template["_slugs"][0], "data-id"=>template["_id"]["$oid"] %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to "Download", "javascript:void(0);", "data-url" => template['template']['template']['url'], :class=> 'btn btn-primary download-link', "data-name"=>template['title'], "data-slug"=>template["_slugs"][0], "data-id"=>template["_id"]["$oid"] %>
|
||||||
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
@ -71,20 +75,20 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
(function(){
|
(function(){
|
||||||
$("a.download-link").on(clickEvent,function(){
|
$("a.download-link").on(clickEvent,function(){
|
||||||
var el = $(this),
|
if($(this).attr("disabled") == "disabled")return false;
|
||||||
downloadurl = $(this).data("url");
|
var el = $(this);
|
||||||
|
|
||||||
el.removeClass("btn-primary").addClass("btn-info").text("Installing").attr('disabled',"disabled");
|
el.removeClass("btn-primary").addClass("btn-info").text("Installing").attr('disabled',"disabled");
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url : "<%= admin_template_store_download_theme_path %>",
|
url : "<%= admin_template_store_download_theme_path %>",
|
||||||
data : {"url" : downloadurl},
|
data : el.data(),
|
||||||
dataType : "json",
|
dataType : "json",
|
||||||
type : "post",
|
type : "post"
|
||||||
success : function(data){
|
}).done(function(data){
|
||||||
if(data.success){
|
if(data.success){
|
||||||
el.removeClass('btn-info').addClass('btn-success').text("Installed");
|
el.removeClass('btn-info').addClass('btn-success').text("Installed");
|
||||||
}
|
}
|
||||||
}
|
}).fail(function(){
|
||||||
|
el.removeClass('btn-info').addClass('btn-danger').text("Error, please try again.").removeAttr('disabled');
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})()
|
})()
|
||||||
|
|
|
@ -8,7 +8,11 @@
|
||||||
<div id="item-info">
|
<div id="item-info">
|
||||||
<%= image_tag "#{@store}#{@template['preview']['preview']['thumb']['url']}", :class => "item-thumb" %>
|
<%= image_tag "#{@store}#{@template['preview']['preview']['thumb']['url']}", :class => "item-thumb" %>
|
||||||
<h2 class="item-name"><%= @template['title'] %></h2>
|
<h2 class="item-name"><%= @template['title'] %></h2>
|
||||||
<%= link_to "Download", "javascript:void(0);", "data-url" => @template['template']['template']['url'], :class=> 'btn btn-primary download-link' %>
|
<% if @design_ids.include?(@template["_id"]["$oid"]) %>
|
||||||
|
<%= link_to "Installed", "javascript:void(0);", "data-url" => @template['template']['template']['url'], :class=> 'btn btn-success download-link', "disabled"=>"disabled", "data-name"=>@template['title'], "data-slug"=>@template["_slugs"][0], "data-id"=>@template["_id"]["$oid"] %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to "Download", "javascript:void(0);", "data-url" => @template['template']['template']['url'], :class=> 'btn btn-primary download-link', "data-name"=>@template['title'], "data-slug"=>@template["_slugs"][0], "data-id"=>@template["_id"]["$oid"] %>
|
||||||
|
<% end %>
|
||||||
<ul class="item-extra-info">
|
<ul class="item-extra-info">
|
||||||
<li><span class="title">views</span><span class="count"><%= Random.new.rand(10..100) %></span></li>
|
<li><span class="title">views</span><span class="count"><%= Random.new.rand(10..100) %></span></li>
|
||||||
<!-- <li><span class="title">color</span><span class="color-tag green"></span></li> -->
|
<!-- <li><span class="title">color</span><span class="color-tag green"></span></li> -->
|
||||||
|
@ -64,21 +68,22 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
(function(){
|
(function(){
|
||||||
$("a.download-link").on(clickEvent,function(){
|
$("a.download-link").on(clickEvent,function(){
|
||||||
var el = $(this),
|
if($(this).attr("disabled") == "disabled")return false;
|
||||||
downloadurl = $(this).data("url");
|
var el = $(this);
|
||||||
|
|
||||||
el.removeClass("btn-primary").addClass("btn-info").text("Installing").attr('disabled',"disabled");
|
el.removeClass("btn-primary").addClass("btn-info").text("Installing").attr('disabled',"disabled");
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url : "<%= admin_template_store_download_theme_path %>",
|
url : "<%= admin_template_store_download_theme_path %>",
|
||||||
data : {"url" : downloadurl},
|
data : el.data(),
|
||||||
dataType : "json",
|
dataType : "json",
|
||||||
type : "post",
|
type : "post"
|
||||||
success : function(data){
|
}).done(function(data){
|
||||||
if(data.success){
|
if(data.success){
|
||||||
el.removeClass('btn-info').addClass('btn-success').text("Installed");
|
el.removeClass('btn-info').addClass('btn-success').text("Installed");
|
||||||
}
|
}
|
||||||
}
|
}).fail(function(){
|
||||||
|
el.removeClass('btn-info').addClass('btn-danger').text("Error, please try again.").removeAttr('disabled');
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})()
|
})()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<ul class="nav nav-pills">
|
<ul class="nav nav-pills">
|
||||||
<%= content_tag(:li, link_to(t(:edit),edit_admin_users_new_interface_path(user_for_listing))) if is_admin? %>
|
<%= content_tag(:li, link_to(t(:edit),edit_admin_users_new_interface_path(user_for_listing))) if is_admin? %>
|
||||||
<%= content_tag(:li, link_to(t("users.setting_privilege"),admin_users_new_interface_edit_privilege_path(user_for_listing))) if is_admin? and current_user.id != user_for_listing.id %>
|
<%= content_tag(:li, link_to(t("users.setting_privilege"),admin_users_new_interface_edit_privilege_path(user_for_listing))) if is_admin? and current_user.id != user_for_listing.id %>
|
||||||
<%= content_tag(:li, link_to(t(:delete),admin_users_new_interface_path(user_for_listing, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if is_admin? %>
|
<%= content_tag(:li, link_to(t(:delete_),admin_users_new_interface_path(user_for_listing, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if is_admin? %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
|
|
||||||
<div id="module-content">
|
<div id="module-content">
|
||||||
<div class="nano">
|
<div class="nano">
|
||||||
<div class="content">
|
<div class="content list-check">
|
||||||
<%=render :partial => @right_partial %>
|
<%=render :partial => @right_partial %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div id="sidebar-menu">
|
<div id="sidebar-menu">
|
||||||
<div class="scroller">
|
<div class="scroller">
|
||||||
<ul class="sidebar-nav">
|
<ul class="sidebar-nav">
|
||||||
<% OrbitApp::Module::SideBarRegisition.all.each do |t| %>
|
<% OrbitApp::Module::SideBarRegisition.all.sort{|x,y| x.get_module_app_key <=> y.get_module_app_key}.each do |t| %>
|
||||||
<%= t.render_head(request, params, current_user, @module_app) %>
|
<%= t.render_head(request, params, current_user, @module_app) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="sub-nav-block-list">
|
<div class="sub-nav-block-list">
|
||||||
<% OrbitApp::Module::SideBarRegisition.all.each do |t| %>
|
<% OrbitApp::Module::SideBarRegisition.all.sort{|x,y| x.get_module_app_key <=> y.get_module_app_key}.each do |t| %>
|
||||||
<%= t.render(request, params, current_user, @module_app) %>
|
<%= t.render(request, params, current_user, @module_app) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
function InsertPreviewImage(){
|
function InsertPreviewImage(){
|
||||||
if($("iframe").contents().find('.news_image').length){
|
if($("iframe").contents().find('.news_image').length){
|
||||||
$("iframe").contents().find('.news_image').append("<a href='' target='_blank'><img src='"+preview_img+"' width='320' height='240' /></a>");
|
$("iframe").contents().find('.news_image').append("<a href='' target='_blank'><img src='"+preview_img+"' width='320' /></a>");
|
||||||
}else{
|
}else{
|
||||||
setTimeout(InsertPreviewImage,1000);
|
setTimeout(InsertPreviewImage,1000);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,15 +63,5 @@ Orbit::Application.configure do
|
||||||
config.action_mailer.delivery_method = :smtp
|
config.action_mailer.delivery_method = :smtp
|
||||||
config.action_mailer.perform_deliveries = true
|
config.action_mailer.perform_deliveries = true
|
||||||
config.action_mailer.raise_delivery_errors = true
|
config.action_mailer.raise_delivery_errors = true
|
||||||
config.action_mailer.smtp_settings = {
|
|
||||||
:enable_starttls_auto => true,
|
|
||||||
:openssl_verify_mode => 'none',
|
|
||||||
:address => 'smtp.sendgrid.net',
|
|
||||||
:port => '587',
|
|
||||||
:domain => "new.tp.rulingcom.com",
|
|
||||||
:authentication => "plain",
|
|
||||||
:user_name => "rulingcom",
|
|
||||||
:password => "bjo4xjp6"
|
|
||||||
}
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
if defined?(PhusionPassenger)
|
||||||
|
PhusionPassenger.on_event(:starting_worker_process) do |forked|
|
||||||
|
if forked
|
||||||
|
Resque.redis.client.disconnect
|
||||||
|
Resque.redis = Redis.new(:host => 'localhost', :port => 6379)
|
||||||
|
Resque.redis.namespace = Site.first.resque_namespace rescue APP_CONFIG['orbit']
|
||||||
|
else
|
||||||
|
# We're in conservative spawning mode. We don't need to do anything.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,2 @@
|
||||||
|
data = File.open(File.join(Rails.root, 'config', 'store_config.yml')).read
|
||||||
|
STORE_CONFIG = YAML::load(ERB.new(data).result(binding)).symbolize_keys
|
|
@ -86,7 +86,6 @@ en:
|
||||||
user_list: Unit
|
user_list: Unit
|
||||||
approval_: Approval
|
approval_: Approval
|
||||||
approval_setting: Approval setting
|
approval_setting: Approval setting
|
||||||
archive: Archive
|
|
||||||
asset: Asset
|
asset: Asset
|
||||||
attributes: Attributes
|
attributes: Attributes
|
||||||
auth:
|
auth:
|
||||||
|
@ -193,6 +192,8 @@ en:
|
||||||
link: Editing link
|
link: Editing link
|
||||||
page: Editing page
|
page: Editing page
|
||||||
email: Email
|
email: Email
|
||||||
|
email_log: Email Log
|
||||||
|
email_queue: Waiting to be sent
|
||||||
enable: Enable
|
enable: Enable
|
||||||
enabled_for: Enabled for
|
enabled_for: Enabled for
|
||||||
end: End
|
end: End
|
||||||
|
@ -224,11 +225,13 @@ en:
|
||||||
groups: Groups
|
groups: Groups
|
||||||
help: Help
|
help: Help
|
||||||
hidden: Hidden
|
hidden: Hidden
|
||||||
|
is_hidden: Hidden
|
||||||
hide: Hide
|
hide: Hide
|
||||||
hits: Hits
|
hits: Hits
|
||||||
homepage: Homepage
|
homepage: Homepage
|
||||||
horizontal: Horizontal
|
horizontal: Horizontal
|
||||||
hot: Hot
|
hot: Hot
|
||||||
|
is_hot: Hot
|
||||||
image: Image
|
image: Image
|
||||||
images: Images
|
images: Images
|
||||||
info: Information
|
info: Information
|
||||||
|
@ -262,7 +265,6 @@ en:
|
||||||
text_area: Text Area
|
text_area: Text Area
|
||||||
text_field: Text Field
|
text_field: Text Field
|
||||||
locale: Locale
|
locale: Locale
|
||||||
location: Location
|
|
||||||
login: Login
|
login: Login
|
||||||
logout: Logout
|
logout: Logout
|
||||||
mail:
|
mail:
|
||||||
|
@ -276,6 +278,9 @@ en:
|
||||||
setting: Mail settings
|
setting: Mail settings
|
||||||
tls: TLS
|
tls: TLS
|
||||||
user_name: User Name
|
user_name: User Name
|
||||||
|
mail_from_app: Mail From App
|
||||||
|
mail_to: Mail To
|
||||||
|
mail_user: Mail User
|
||||||
manager: Manager
|
manager: Manager
|
||||||
markup: Markup
|
markup: Markup
|
||||||
markup_options: Markup options
|
markup_options: Markup options
|
||||||
|
@ -342,11 +347,13 @@ en:
|
||||||
public_r_tag: System Widget
|
public_r_tag: System Widget
|
||||||
text: Text Area
|
text: Text Area
|
||||||
passed: Approved
|
passed: Approved
|
||||||
|
is_checked: Approved
|
||||||
password: Password
|
password: Password
|
||||||
password_change: Change password
|
password_change: Change password
|
||||||
password_confirmation: Password confirmation
|
password_confirmation: Password confirmation
|
||||||
password_current: Current password
|
password_current: Current password
|
||||||
pending: Pending
|
pending: Pending
|
||||||
|
is_pending: Pending
|
||||||
personal_plugins:
|
personal_plugins:
|
||||||
author : "Author"
|
author : "Author"
|
||||||
edit_brief_intro : "Edit Brief Intro."
|
edit_brief_intro : "Edit Brief Intro."
|
||||||
|
@ -389,6 +396,7 @@ en:
|
||||||
register: Register
|
register: Register
|
||||||
registered: Registered
|
registered: Registered
|
||||||
rejected: Rejected
|
rejected: Rejected
|
||||||
|
is_rejected: Rejected
|
||||||
rejected_reason: 'Reason:'
|
rejected_reason: 'Reason:'
|
||||||
rejected_reason_empty: "Approval rejected, no referencable information"
|
rejected_reason_empty: "Approval rejected, no referencable information"
|
||||||
related_links: Related Links
|
related_links: Related Links
|
||||||
|
@ -426,6 +434,7 @@ en:
|
||||||
index: Index
|
index: Index
|
||||||
summary: Summary
|
summary: Summary
|
||||||
thumbnail: Thumbnail
|
thumbnail: Thumbnail
|
||||||
|
sent_date: Sent Date
|
||||||
settings: Site Setting
|
settings: Site Setting
|
||||||
site:
|
site:
|
||||||
backend_openness_on: Backend Openness
|
backend_openness_on: Backend Openness
|
||||||
|
@ -456,6 +465,7 @@ en:
|
||||||
tab_commits: Commits
|
tab_commits: Commits
|
||||||
tab_summary: Summary
|
tab_summary: Summary
|
||||||
tab_logs: Logs
|
tab_logs: Logs
|
||||||
|
tab_send_reminders_log: Send reminders log
|
||||||
summary:
|
summary:
|
||||||
code_update_at: Code Update histroy
|
code_update_at: Code Update histroy
|
||||||
disk_space: Disk Free
|
disk_space: Disk Free
|
||||||
|
@ -485,6 +495,7 @@ en:
|
||||||
sub_role: Sub Role
|
sub_role: Sub Role
|
||||||
sub_role_field: Sub Role Field
|
sub_role_field: Sub Role Field
|
||||||
sub_role_info: " Sub Role Info."
|
sub_role_info: " Sub Role Info."
|
||||||
|
subject: Subject
|
||||||
subtitle: Subtitle
|
subtitle: Subtitle
|
||||||
submit: Submit
|
submit: Submit
|
||||||
submit_approval: Submit approval
|
submit_approval: Submit approval
|
||||||
|
@ -508,10 +519,12 @@ en:
|
||||||
text: Text
|
text: Text
|
||||||
theme: Theme
|
theme: Theme
|
||||||
themes: Themes
|
themes: Themes
|
||||||
|
this_action_can_not_be_restore: This action can not be restored, are you sure you want to delete?
|
||||||
title: Title
|
title: Title
|
||||||
to_search: Set as Search Key
|
to_search: Set as Search Key
|
||||||
to_show: Display in frontend
|
to_show: Display in frontend
|
||||||
top: Top
|
top: Top
|
||||||
|
is_top: Top
|
||||||
total_visitors: Total Visitors
|
total_visitors: Total Visitors
|
||||||
traffic: Traffic
|
traffic: Traffic
|
||||||
type: Field Type
|
type: Field Type
|
||||||
|
|
|
@ -86,7 +86,6 @@ zh_tw:
|
||||||
user_list: 使用者列表
|
user_list: 使用者列表
|
||||||
approval_: 審核
|
approval_: 審核
|
||||||
approval_setting: 審核設定
|
approval_setting: 審核設定
|
||||||
archive: 檔案室
|
|
||||||
asset: 資產
|
asset: 資產
|
||||||
attributes: 屬性
|
attributes: 屬性
|
||||||
auth:
|
auth:
|
||||||
|
@ -193,6 +192,8 @@ zh_tw:
|
||||||
link: 編輯連結
|
link: 編輯連結
|
||||||
page: 編輯頁面
|
page: 編輯頁面
|
||||||
email: 電子郵件
|
email: 電子郵件
|
||||||
|
email_log: 寄送紀錄
|
||||||
|
email_queue: 待寄送郵件
|
||||||
enable: 開啟
|
enable: 開啟
|
||||||
enabled_for: 啟用
|
enabled_for: 啟用
|
||||||
end: 結束
|
end: 結束
|
||||||
|
@ -264,7 +265,6 @@ zh_tw:
|
||||||
text_area: 文字輸入方塊
|
text_area: 文字輸入方塊
|
||||||
text_field: 文字輸入框
|
text_field: 文字輸入框
|
||||||
locale: 位置
|
locale: 位置
|
||||||
location: 地標
|
|
||||||
login: 登入
|
login: 登入
|
||||||
logout: 登出
|
logout: 登出
|
||||||
mail:
|
mail:
|
||||||
|
@ -278,6 +278,9 @@ zh_tw:
|
||||||
setting: 電子郵件設定
|
setting: 電子郵件設定
|
||||||
tls: 電子郵件TLS
|
tls: 電子郵件TLS
|
||||||
user_name: 電子郵件帳號
|
user_name: 電子郵件帳號
|
||||||
|
mail_from_app: 寄送模組
|
||||||
|
mail_to: 收件者
|
||||||
|
mail_user: 寄件者
|
||||||
manager: 管理者
|
manager: 管理者
|
||||||
markup: 輸入模式
|
markup: 輸入模式
|
||||||
markup_options: 標註選項
|
markup_options: 標註選項
|
||||||
|
@ -345,11 +348,13 @@ zh_tw:
|
||||||
public_r_tag: 系統模塊
|
public_r_tag: 系統模塊
|
||||||
text: 文字區域
|
text: 文字區域
|
||||||
passed: 通過審核
|
passed: 通過審核
|
||||||
|
is_checked: 通過審核
|
||||||
password: 密碼
|
password: 密碼
|
||||||
password_change: 更改密碼
|
password_change: 更改密碼
|
||||||
password_confirmation: 確認密碼
|
password_confirmation: 確認密碼
|
||||||
password_current: 目前的密碼
|
password_current: 目前的密碼
|
||||||
pending: 待審核
|
pending: 待審核
|
||||||
|
is_pending: 待審核
|
||||||
personal_plugins:
|
personal_plugins:
|
||||||
author : "著作人"
|
author : "著作人"
|
||||||
edit_brief_intro : "編輯摘要"
|
edit_brief_intro : "編輯摘要"
|
||||||
|
@ -391,6 +396,7 @@ zh_tw:
|
||||||
register: 註冊
|
register: 註冊
|
||||||
registered: 已註冊
|
registered: 已註冊
|
||||||
rejected: 拒絕
|
rejected: 拒絕
|
||||||
|
is_rejected: 拒絕
|
||||||
rejected_reason: 拒絕原因:'
|
rejected_reason: 拒絕原因:'
|
||||||
rejected_reason_empty: "拒絕核准, 沒有參考資訊"
|
rejected_reason_empty: "拒絕核准, 沒有參考資訊"
|
||||||
related_links: 相關連結
|
related_links: 相關連結
|
||||||
|
@ -428,6 +434,7 @@ zh_tw:
|
||||||
index: 檢索
|
index: 檢索
|
||||||
summary: 摘要
|
summary: 摘要
|
||||||
thumbnail: 縮圖
|
thumbnail: 縮圖
|
||||||
|
sent_date: 寄送日期
|
||||||
settings: 基本設定
|
settings: 基本設定
|
||||||
site:
|
site:
|
||||||
frontend_closed: 前台關閉?
|
frontend_closed: 前台關閉?
|
||||||
|
@ -458,6 +465,7 @@ zh_tw:
|
||||||
tab_commits: 程式版本
|
tab_commits: 程式版本
|
||||||
tab_summary: 總覽
|
tab_summary: 總覽
|
||||||
tab_logs: 排程工作日誌
|
tab_logs: 排程工作日誌
|
||||||
|
tab_send_reminders_log: 寄送提醒紀錄
|
||||||
summary:
|
summary:
|
||||||
code_update_at: 程式更新紀錄
|
code_update_at: 程式更新紀錄
|
||||||
disk_space: 硬碟空間
|
disk_space: 硬碟空間
|
||||||
|
@ -487,6 +495,7 @@ zh_tw:
|
||||||
sub_role: 子身份
|
sub_role: 子身份
|
||||||
sub_role_field: 子身份欄位
|
sub_role_field: 子身份欄位
|
||||||
sub_role_info: 子身份資料
|
sub_role_info: 子身份資料
|
||||||
|
subject: 主題
|
||||||
subtitle: 副標題
|
subtitle: 副標題
|
||||||
submit: 送出
|
submit: 送出
|
||||||
submit_approval: 送出已核准
|
submit_approval: 送出已核准
|
||||||
|
@ -510,6 +519,7 @@ zh_tw:
|
||||||
text: 內文
|
text: 內文
|
||||||
theme: 套用頁面樣式
|
theme: 套用頁面樣式
|
||||||
themes: 主題
|
themes: 主題
|
||||||
|
this_action_can_not_be_restore: 刪除後將無法還原,您確定要刪除嗎?
|
||||||
title: 標題
|
title: 標題
|
||||||
to_search: 加入搜尋條件
|
to_search: 加入搜尋條件
|
||||||
to_show: 是否顯示於前台
|
to_show: 是否顯示於前台
|
||||||
|
|
|
@ -262,6 +262,7 @@ Orbit::Application.routes.draw do
|
||||||
|
|
||||||
match 'module_store' => 'module_store#index'
|
match 'module_store' => 'module_store#index'
|
||||||
match 'module_store/show' => 'module_store#show'
|
match 'module_store/show' => 'module_store#show'
|
||||||
|
match 'module_store/download' => 'module_store#download'
|
||||||
match 'template_store' => 'template_store#index'
|
match 'template_store' => 'template_store#index'
|
||||||
match 'template_store/download_theme' => "template_store#download_theme"
|
match 'template_store/download_theme' => "template_store#download_theme"
|
||||||
match 'template_store/template/:id' => 'template_store#show', :as => :template_store_template
|
match 'template_store/template/:id' => 'template_store#show', :as => :template_store_template
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
store_settings:
|
||||||
|
url: "http://store.tp.rulingcom.com"
|
|
@ -234,7 +234,7 @@ module OrbitCoreLib
|
||||||
when :sub_manager
|
when :sub_manager
|
||||||
@open ||= check_sub_manager
|
@open ||= check_sub_manager
|
||||||
when :approver
|
when :approver
|
||||||
@open ||= check_sub_manager
|
@open ||= check_approver
|
||||||
when :user
|
when :user
|
||||||
@open ||= true
|
@open ||= true
|
||||||
when :visitor
|
when :visitor
|
||||||
|
|
BIN
orbitdefault.zip
BIN
orbitdefault.zip
Binary file not shown.
|
@ -4,9 +4,13 @@ zh_tw:
|
||||||
ad_banner: 廣告輪播
|
ad_banner: 廣告輪播
|
||||||
banner: 橫幅
|
banner: 橫幅
|
||||||
banner_name: 橫幅名稱
|
banner_name: 橫幅名稱
|
||||||
banner_name_note: 橫幅名稱只能為英文
|
name_only_english: 橫幅名稱只能為英文
|
||||||
|
edit_banner: 編輯橫幅
|
||||||
|
enter_number: 請輸入數字
|
||||||
|
enter_url: 請輸入網址
|
||||||
ste: 轉換間隔時間
|
ste: 轉換間隔時間
|
||||||
ste_note: 請輸入秒數
|
number_seconds: 請輸入秒數
|
||||||
|
number_milliseconds: 請輸入毫秒數
|
||||||
best_size: 最佳尺寸
|
best_size: 最佳尺寸
|
||||||
effect: 效果
|
effect: 效果
|
||||||
all: 全部
|
all: 全部
|
||||||
|
@ -16,3 +20,4 @@ zh_tw:
|
||||||
size: 大小
|
size: 大小
|
||||||
transition_interval: 轉換間隔時間
|
transition_interval: 轉換間隔時間
|
||||||
transition_speed: 轉換速度
|
transition_speed: 轉換速度
|
||||||
|
type: 類型
|
||||||
|
|
|
@ -10,6 +10,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
|
||||||
end
|
end
|
||||||
|
|
||||||
def preview
|
def preview
|
||||||
|
params['bulletin']['image'] = nil
|
||||||
bulletin = Bulletin.new params
|
bulletin = Bulletin.new params
|
||||||
@preview_obj = bulletin.to_preview
|
@preview_obj = bulletin.to_preview
|
||||||
@preview_obj.save
|
@preview_obj.save
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span1"><%= t('personal_book.year') %></th>
|
<th class="span1"><%= t('personal_book.year') %></th>
|
||||||
<th><%= t('personal_book.book_title') %></th>
|
<th><%= t('personal_book.book_title') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span1"><%= t('personal_conference.year') %></th>
|
<th class="span1"><%= t('personal_conference.year') %></th>
|
||||||
<th><%= t('module_name.personal_conference') %></th>
|
<th><%= t('module_name.personal_conference') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span2"><%= t('date_') %></th>
|
<th class="span2"><%= t('date_') %></th>
|
||||||
<th><%= t('personal_diploma.school_name') %></th>
|
<th><%= t('personal_diploma.school_name') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span2"><%= t('date_') %></th>
|
<th class="span2"><%= t('date_') %></th>
|
||||||
<th><%= t('personal_experience.organizationt_title') %></th>
|
<th><%= t('personal_experience.organizationt_title') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span1"><%= t('personal_honor.year') %></th>
|
<th class="span1"><%= t('personal_honor.year') %></th>
|
||||||
<th><%= t('personal_honor.award_name') %></th>
|
<th><%= t('personal_honor.award_name') %></th>
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span1"><%= t('personal_journal.year') %></th>
|
<th class="span1"><%= t('personal_journal.year') %></th>
|
||||||
<th><%= t('module_name.personal_journal') %></th>
|
<th><%= t('module_name.personal_journal') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span1"><%= t('personal_lab.year') %></th>
|
<th class="span1"><%= t('personal_lab.year') %></th>
|
||||||
<th><%= t('personal_lab.lab_title') %></th>
|
<th><%= t('personal_lab.lab_title') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span2"><%= t('personal_patent.publication_date') %></th>
|
<th class="span2"><%= t('personal_patent.publication_date') %></th>
|
||||||
<th><%= t('personal_patent.patent_title') %></th>
|
<th><%= t('personal_patent.patent_title') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span2"><%= t('personal_project.period') %></th>
|
<th class="span2"><%= t('personal_project.period') %></th>
|
||||||
<th><%= t('personal_project.project_title') %></th>
|
<th><%= t('personal_project.project_title') %></th>
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<% if is_admin? %>
|
<% if is_admin? %>
|
||||||
<th><input type="checkbox" class="list-check" /></th>
|
<th><input type="checkbox" /></th>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<th class="span2"><%= t('personal_research.publication_date') %></th>
|
<th class="span2"><%= t('personal_research.publication_date') %></th>
|
||||||
<th><%= t('personal_research.research_title') %></th>
|
<th><%= t('personal_research.research_title') %></th>
|
||||||
|
|
|
@ -199,6 +199,7 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@survey.survey_questions.all.each do |question|
|
@survey.survey_questions.all.each do |question|
|
||||||
new_question = @new_survey.survey_questions.new
|
new_question = @new_survey.survey_questions.new
|
||||||
question.attributes.each do |key, value|
|
question.attributes.each do |key, value|
|
||||||
|
@ -210,30 +211,32 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
question.survey_question_options.all.each do |option|
|
|
||||||
new_option = new_question.survey_question_options.new
|
# question.survey_question_options.all.each do |option|
|
||||||
option.attributes.each do |key, value|
|
# new_option = new_question.survey_question_options.new
|
||||||
unless ['_id', 'survey_question_id'].include? key
|
# option.attributes.each do |key, value|
|
||||||
if option.respond_to?(key + '_translations')
|
# unless ['_id', 'survey_question_id'].include? key
|
||||||
new_option.send(key + '_translations=', value)
|
# if option.respond_to?(key + '_translations')
|
||||||
else
|
# new_option.name_translations = value
|
||||||
new_option.write_attribute(key, value)
|
# else
|
||||||
end
|
# new_option.write_attribute(key, value)
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
question.survey_question_radiogroups.all.each do |radiogroup|
|
# end
|
||||||
new_radiogroup = new_question.survey_question_radiogroups.new
|
|
||||||
radiogroup.attributes.each do |key, value|
|
# question.survey_question_radiogroups.all.each do |radiogroup|
|
||||||
unless ['_id', 'survey_question_id'].include? key
|
# new_radiogroup = new_question.survey_question_radiogroups.new
|
||||||
if radiogroup.respond_to?(key + '_translations')
|
# radiogroup.attributes.each do |key, value|
|
||||||
new_radiogroup.send(key + '_translations=', value)
|
# unless ['_id', 'survey_question_id'].include? key
|
||||||
else
|
# if radiogroup.respond_to?(key + '_translations')
|
||||||
new_radiogroup.write_attribute(key, value)
|
# new_option.name_translations = value
|
||||||
end
|
# else
|
||||||
end
|
# new_radiogroup.write_attribute(key, value)
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
@new_survey.create_user_id = current_user.id
|
@new_survey.create_user_id = current_user.id
|
||||||
|
|
Reference in New Issue