Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b1702f358 | ||
|
|
4a68b1edb6 |
No files matched your search
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 78 B |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -1,102 +0,0 @@
|
|||||||
!function ($) {
|
|
||||||
$.fn.checkListLength = function (param){
|
|
||||||
_defaultSettings = {
|
|
||||||
onlyOne: null,
|
|
||||||
};
|
|
||||||
_set = $.extend(_defaultSettings, param);
|
|
||||||
$this = this;
|
|
||||||
$li = this.children('li');
|
|
||||||
$dropzone = $('#dropzone');
|
|
||||||
if(($li.length - _set.onlyOne) == 0) {
|
|
||||||
$('#dropzone').fadeIn(300);
|
|
||||||
} else {
|
|
||||||
$('#dropzone').fadeOut(300);
|
|
||||||
};
|
|
||||||
$('#file-list').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
|
||||||
}
|
|
||||||
}(window.jQuery);
|
|
||||||
$(function () {
|
|
||||||
'use strict';
|
|
||||||
// Initialize the jQuery File Upload widget:
|
|
||||||
$('#fileupload').fileupload({
|
|
||||||
maxFileSize: 5000000,
|
|
||||||
acceptFileTypes: /(\.|\/)(gif|jpe?g|png|pdf|doc|docx|ppt|pptx|xls|xlsx)$/i,
|
|
||||||
dropZone: $('#dropzone'),
|
|
||||||
headers:{
|
|
||||||
'X-CSRF-Token': $('meta[name="csrf-token"]').attr("content")
|
|
||||||
}
|
|
||||||
}).bind('fileuploadstop', function (e, data) {
|
|
||||||
window.location.reload();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
$(document).ready(function(){
|
|
||||||
var insertBtn = $("#insert_btn"),
|
|
||||||
deleteBtn = $("#delete_btn"),
|
|
||||||
url = null;
|
|
||||||
|
|
||||||
$("#asset_sort_list").on(clickEvent,"input[type=checkbox]",function(){
|
|
||||||
if($("#asset_sort_list input[type=checkbox]:checked").length == 1){
|
|
||||||
url = window.location.protocol + "//" + window.location.host + $("#url_" + $("input[type=checkbox]:checked").val()).val();
|
|
||||||
insertBtn.show();
|
|
||||||
}else{
|
|
||||||
insertBtn.hide();
|
|
||||||
url = null;
|
|
||||||
}
|
|
||||||
if($("#asset_sort_list input[type=checkbox]:checked").length)
|
|
||||||
deleteBtn.show();
|
|
||||||
else
|
|
||||||
deleteBtn.hide();
|
|
||||||
})
|
|
||||||
insertBtn.bind(clickEvent,function(){
|
|
||||||
var alt_text = $("#"+language+"_desc_"+$("input[type=checkbox]:checked").val()).val();
|
|
||||||
alt_text = (alt_text ? alt_text : "This is an image");
|
|
||||||
if(url){
|
|
||||||
window.opener.CKEDITOR.tools.callFunction( funcNum, url, function() {
|
|
||||||
var element,
|
|
||||||
dialog = this.getDialog();
|
|
||||||
if ( dialog.getName() == 'image' ) {
|
|
||||||
element = dialog.getContentElement( 'info', 'txtAlt' );
|
|
||||||
if ( element )
|
|
||||||
element.setValue( alt_text );
|
|
||||||
}
|
|
||||||
});
|
|
||||||
window.close();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
deleteBtn.bind( clickEvent,function(){
|
|
||||||
var items_to_delete = [],
|
|
||||||
type = getUrlParam("type");
|
|
||||||
$("input[type=checkbox]:checked").each(function(){
|
|
||||||
items_to_delete.push($(this).val());
|
|
||||||
})
|
|
||||||
$.post("<%= delete_files_admin_assets_path %>",{"files":items_to_delete,"type":type},function(){
|
|
||||||
deleteBtn.hide();
|
|
||||||
})
|
|
||||||
})
|
|
||||||
var currentEdit = null;
|
|
||||||
$(document).on("ajax:success","form[data-remote=true]",function(evt, data, xhr){
|
|
||||||
currentEdit.replaceWith($(data));
|
|
||||||
$("#editform").modal("hide");
|
|
||||||
})
|
|
||||||
|
|
||||||
$("#asset_sort_list").on(clickEvent,".editform",function(){
|
|
||||||
currentEdit = $(this).parent().parent();
|
|
||||||
$.get($(this).attr("href"),function(data){
|
|
||||||
$("#editform").html(data).modal("show");
|
|
||||||
})
|
|
||||||
return false;
|
|
||||||
})
|
|
||||||
|
|
||||||
function getUrlParam( paramName ) {
|
|
||||||
var reParam = new RegExp( '(?:[\?&]|&)' + paramName + '=([^&]+)', 'i' ) ;
|
|
||||||
var match = window.location.search.match(reParam) ;
|
|
||||||
|
|
||||||
return ( match && match.length > 1 ) ? match[ 1 ] : null ;
|
|
||||||
}
|
|
||||||
var funcNum = getUrlParam( 'CKEditorFuncNum' ),
|
|
||||||
t = getUrlParam('CKEditor').split("_"),
|
|
||||||
language = t[t.length-1];
|
|
||||||
|
|
||||||
language = (language == "tw" ? "zh_tw" : language);
|
|
||||||
|
|
||||||
})
|
|
||||||
@@ -38,11 +38,7 @@ if($.support.touch) {
|
|||||||
$checked.each(function() {
|
$checked.each(function() {
|
||||||
if(!$(this).closest('div').hasClass('togglebox')) {
|
if(!$(this).closest('div').hasClass('togglebox')) {
|
||||||
$(this).wrap('<div class="toggle-control"/>');
|
$(this).wrap('<div class="toggle-control"/>');
|
||||||
if($(this).attr('type') == "hidden" && $(this).attr('value')) {
|
$(this).wrap('<div class="togglebox" />');
|
||||||
$(this).wrap('<div class="togglebox disabled" />');
|
|
||||||
} else {
|
|
||||||
$(this).wrap('<div class="togglebox" />');
|
|
||||||
}
|
|
||||||
$('<label><b></b></label>').insertAfter($(this));
|
$('<label><b></b></label>').insertAfter($(this));
|
||||||
if($(this).data().deploy) {
|
if($(this).data().deploy) {
|
||||||
switch($(this).data().deploy) {
|
switch($(this).data().deploy) {
|
||||||
@@ -256,8 +252,8 @@ if($.support.touch) {
|
|||||||
$arrow = $('.sub-nav-arrow'),
|
$arrow = $('.sub-nav-arrow'),
|
||||||
$wrap = $('#main-wrap'),
|
$wrap = $('#main-wrap'),
|
||||||
$wrapLeft = $wrap.css('margin-left'),
|
$wrapLeft = $wrap.css('margin-left'),
|
||||||
$position = $arrow.outerHeight(true)*-1,
|
$position = 0,
|
||||||
$arrowHeightFormat = $arrow.outerHeight(true)/2;
|
$arrowHeightFormat = $('.position').height()-8;
|
||||||
if($('#sidebar').length>0) {
|
if($('#sidebar').length>0) {
|
||||||
$wrap.css({'margin-left': 61});
|
$wrap.css({'margin-left': 61});
|
||||||
$wrapLeft = 61;
|
$wrapLeft = 61;
|
||||||
@@ -274,7 +270,7 @@ if($.support.touch) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Arrow defaults position
|
// Arrow defaults position
|
||||||
$position = $el.eq($elIndex).position().top+$el.eq($elIndex).height()/2-$arrowHeightFormat+$('.scroller').position().top;
|
$position = $el.eq($elIndex).offset().top-$el.eq($elIndex).height()/2+$arrowHeightFormat-$(document).scrollTop();
|
||||||
$arrow.css({
|
$arrow.css({
|
||||||
'top': $position,
|
'top': $position,
|
||||||
});
|
});
|
||||||
@@ -285,7 +281,7 @@ if($.support.touch) {
|
|||||||
$el.on(mouseenterEvent, function(e) {
|
$el.on(mouseenterEvent, function(e) {
|
||||||
$block.siblings().removeClass('show').eq($(this).index()).addClass('show');
|
$block.siblings().removeClass('show').eq($(this).index()).addClass('show');
|
||||||
$arrow.stop(true, false).animate({
|
$arrow.stop(true, false).animate({
|
||||||
top: ($(this).position().top+$(this).height()/2)-$arrowHeightFormat+$('.scroller').position().top,
|
top: ($(this).offset().top-$(this).height()/2)+$arrowHeightFormat-$(document).scrollTop(),
|
||||||
},{
|
},{
|
||||||
duration: 500,
|
duration: 500,
|
||||||
easing: 'easeInOutBack',
|
easing: 'easeInOutBack',
|
||||||
@@ -329,7 +325,7 @@ if($.support.touch) {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
// $el.on('mouseleave', function() {
|
// $el.on('mouseleave', function() {
|
||||||
// $el.hasClass('active') ? $position = $el.eq($elIndex).position().top+$el.eq($elIndex).height()/2-$arrowHeightFormat+$('.scroller').position().top;
|
// $el.hasClass('active') ? $position = $el.eq($elIndex).offset().top-$el.eq($elIndex).height()/2+$arrowHeightFormat-$(document).scrollTop() : 0;
|
||||||
// $(this).hasClass('active') ? '':$(this).children('span').removeClass('hover');
|
// $(this).hasClass('active') ? '':$(this).children('span').removeClass('hover');
|
||||||
// });
|
// });
|
||||||
$block.on({
|
$block.on({
|
||||||
@@ -376,9 +372,9 @@ if($.support.touch) {
|
|||||||
|
|
||||||
|
|
||||||
if($elIndex === null) {
|
if($elIndex === null) {
|
||||||
$position = $arrow.outerHeight(true)*-1;
|
$position = 0;
|
||||||
} else {
|
} else {
|
||||||
$position = $el.eq($elIndex).position().top+$el.eq($elIndex).height()/2-$arrowHeightFormat+$('.scroller').position().top;
|
$position = $el.eq($elIndex).offset().top-$el.eq($elIndex).height()/2+$arrowHeightFormat-$(document).scrollTop();
|
||||||
}
|
}
|
||||||
$arrow.stop(true, false).animate({
|
$arrow.stop(true, false).animate({
|
||||||
top: $position,
|
top: $position,
|
||||||
@@ -413,8 +409,8 @@ if($.support.touch) {
|
|||||||
});
|
});
|
||||||
// Sidebar Nav Drag
|
// Sidebar Nav Drag
|
||||||
if(/MSIE 8.0/g.test($ua)){
|
if(/MSIE 8.0/g.test($ua)){
|
||||||
$arrow.remove();
|
|
||||||
$sidebarMenu.addClass('nano')
|
$sidebarMenu.addClass('nano')
|
||||||
|
.css({'position': 'relative', 'top': '0px'})
|
||||||
.children('.scroller')
|
.children('.scroller')
|
||||||
.addClass('content')
|
.addClass('content')
|
||||||
.removeClass('scroller');
|
.removeClass('scroller');
|
||||||
@@ -476,15 +472,6 @@ if($.support.touch) {
|
|||||||
}(window.jQuery);
|
}(window.jQuery);
|
||||||
|
|
||||||
|
|
||||||
var ini = function() {
|
|
||||||
api = this
|
|
||||||
api.modal = function(e) {
|
|
||||||
$('#dialog a.delete-item').attr("href", e);
|
|
||||||
$('#dialog').modal('show');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var ini = function() {
|
var ini = function() {
|
||||||
api = this
|
api = this
|
||||||
api.modal = function(e) {
|
api.modal = function(e) {
|
||||||
@@ -503,14 +490,15 @@ function openSlide() {
|
|||||||
$(window).resize(function() {
|
$(window).resize(function() {
|
||||||
$(this).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954;
|
$(this).width() > 1440 ? $pageslideW = 1024 : $pageslideW = 954;
|
||||||
})
|
})
|
||||||
if($('.item-groups').length) {
|
$openSlide.each(function() {
|
||||||
$os = $openSlide.not('.view-page');
|
if($(this).hasClass('view-page')) {
|
||||||
$vp = $openSlide.filter('.view-page.open-slide');
|
$(this).pageslide({ W: $pageslideW, iframe: true });
|
||||||
$os.pageslide({ W: 624 });
|
} else if($('.item-groups').length) {
|
||||||
$vp.pageslide({ W: $pageslideW, iframe: true });
|
$(this).pageslide({ W: 324 });
|
||||||
} else {
|
} else {
|
||||||
$openSlide.pageslide();
|
$(this).pageslide();
|
||||||
};
|
};
|
||||||
|
});
|
||||||
$('.bottomnav .open-slide').on('click', function() {
|
$('.bottomnav .open-slide').on('click', function() {
|
||||||
$('.table tr').removeClass('active');
|
$('.table tr').removeClass('active');
|
||||||
$('.filter-item').removeClass('active')
|
$('.filter-item').removeClass('active')
|
||||||
@@ -518,8 +506,8 @@ function openSlide() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function formTip() {
|
function formTip() {
|
||||||
if($('.main-forms').length && $('.add-on').length || $('.phtot-action').length) {
|
if($('.main-forms').length && $('.add-on').length) {
|
||||||
$('.main-forms .add-on, .main-forms .file-link, .phtot-action li').tooltip({
|
$('.main-forms .add-on, .main-forms .file-link').tooltip({
|
||||||
position: {
|
position: {
|
||||||
my: "center bottom-4",
|
my: "center bottom-4",
|
||||||
at: "center top"
|
at: "center top"
|
||||||
@@ -577,7 +565,7 @@ $(function() {
|
|||||||
if($('#sidebar').length) {
|
if($('#sidebar').length) {
|
||||||
if(!/MSIE 8.0/g.test(navigator.userAgent)){
|
if(!/MSIE 8.0/g.test(navigator.userAgent)){
|
||||||
document.getElementById('sidebar').addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
document.getElementById('sidebar').addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
if($('#pageslide').length) {
|
if($('#pageslide').length) {
|
||||||
openSlide();
|
openSlide();
|
||||||
|
|||||||
@@ -26,11 +26,10 @@ CKEDITOR.editorConfig = function( config ) {
|
|||||||
// config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
|
// config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
|
||||||
// config.filebrowserUploadUrl = '/uploader/upload.php';
|
// config.filebrowserUploadUrl = '/uploader/upload.php';
|
||||||
|
|
||||||
config.filebrowserBrowseUrl = "<%= Rails.application.routes.url_helpers.admin_assets_path %>?module_app_id=<%= ModuleApp.first(conditions: {title: 'Asset'}).id.to_s %>";
|
config.filebrowserBrowseUrl = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>"
|
||||||
config.filebrowserImageBrowseUrl = "<%= Rails.application.routes.url_helpers.admin_assets_path %>?type=images&module_app_id=<%= ModuleApp.first(conditions: {title: 'Asset'}).id.to_s %>";
|
config.filebrowserUploadUrl = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>"
|
||||||
// config.filebrowserUploadUrl = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>";
|
|
||||||
|
|
||||||
// config.contentsCss = '/orbit_4.0.1/assets/javascripts/lib/ckeditor/plugins/stylesheetparser/samples/assets/sample.css';
|
config.contentsCss = '/orbit_4.0.1/assets/javascripts/lib/ckeditor/plugins/stylesheetparser/samples/assets/sample.css';
|
||||||
|
|
||||||
// Load from a list of definitions.
|
// Load from a list of definitions.
|
||||||
// config.stylesSet = [
|
// config.stylesSet = [
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
|
||||||
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
||||||
*/
|
|
||||||
(function(a){CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;"undefined"!=typeof a&&(a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g))var k=d,d=g,g=k;var i=[],d=d||{};this.each(function(){var b=
|
|
||||||
a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,j=new a.Deferred;i.push(j.promise());if(c&&!f)g&&g.apply(c,[this]),j.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),j.resolve()):setTimeout(arguments.callee,100)},0)},null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",
|
|
||||||
!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();
|
|
||||||
return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);j.resolve()}else setTimeout(arguments.callee,
|
|
||||||
100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,i).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}}),CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var k=this,i=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});i.push(f.promise());
|
|
||||||
return!0}return g.call(b,d)});if(i.length){var b=new a.Deferred;a.when.apply(this,i).done(function(){b.resolveWith(k)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}})))})(window.jQuery);
|
|
||||||
@@ -19,6 +19,3 @@
|
|||||||
//= require select2
|
//= require select2
|
||||||
//= require jquery.isotope.min.js
|
//= require jquery.isotope.min.js
|
||||||
//= require orbit_js_1.0.1-front-end
|
//= require orbit_js_1.0.1-front-end
|
||||||
//= require ckeditor/init
|
|
||||||
//= require ckeditor/jquery-ckeditor
|
|
||||||
|
|
||||||
@@ -20,7 +20,6 @@
|
|||||||
//for forms
|
//for forms
|
||||||
//form-type = "ajax_form" will turn form to ajax submit
|
//form-type = "ajax_form" will turn form to ajax submit
|
||||||
//notification = string will display after the form is succesfully submitted
|
//notification = string will display after the form is succesfully submitted
|
||||||
//response-type = "json"|"script"|"xml|html" default is json
|
|
||||||
|
|
||||||
//for layout tinyscrollbar
|
//for layout tinyscrollbar
|
||||||
//content-layout="datalist|column|simple" datalist is for data list from database.. column is usually for forms and some other pages.. simple is without any columns, the page will be displayed as it is.. base width will be considered the default width for tinyscrollbar
|
//content-layout="datalist|column|simple" datalist is for data list from database.. column is usually for forms and some other pages.. simple is without any columns, the page will be displayed as it is.. base width will be considered the default width for tinyscrollbar
|
||||||
@@ -29,9 +28,6 @@
|
|||||||
//column="true" this option is only for column layout... the columns will be formed on this column=true attribute and it should be a div
|
//column="true" this option is only for column layout... the columns will be formed on this column=true attribute and it should be a div
|
||||||
//item=true this attribute should be present in the li tag. li with this attribute are considered as a separate item.
|
//item=true this attribute should be present in the li tag. li with this attribute are considered as a separate item.
|
||||||
|
|
||||||
//enableLanguageSelect( dom ) children <a> will be binded with language, data-lang = string ex "en"|"zh_tw" will toggle all data-langunage throughout the page
|
|
||||||
//enableSharing( dom ) children <a> will be binded with share, data-mode = string ex "public"|"private" will change the mode for all the selected items. the dom with class should have data-link = url data-var = vaiable_name, default will be mode
|
|
||||||
|
|
||||||
|
|
||||||
$.extend($.expr[':'], {
|
$.extend($.expr[':'], {
|
||||||
'containsi': function (elem, i, match, array) {
|
'containsi': function (elem, i, match, array) {
|
||||||
@@ -226,8 +222,7 @@ var orbitDesktop = function(dom){
|
|||||||
|
|
||||||
this.bindDesktopEvents = function(){ //this function will bind the global handlers to thd desktop, for example doc
|
this.bindDesktopEvents = function(){ //this function will bind the global handlers to thd desktop, for example doc
|
||||||
$(".docklist a").click(function(){
|
$(".docklist a").click(function(){
|
||||||
if( !$( this ).parent().hasClass( 'disable' ) )
|
o.menu_item($(this));
|
||||||
o.menu_item($(this));
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -252,12 +247,16 @@ var orbitDesktop = function(dom){
|
|||||||
|
|
||||||
$("body").on("submit","form[form-type=ajax_form]",function(){
|
$("body").on("submit","form[form-type=ajax_form]",function(){
|
||||||
var callback_method = $(this).attr("callback-method"),
|
var callback_method = $(this).attr("callback-method"),
|
||||||
dt = ($(this).attr("response-type") == null ? "json" : $(this).attr("response-type")),
|
dt = null,
|
||||||
notification = $(this).attr("notification");
|
notification = $(this).attr("notification");
|
||||||
|
dt = $(this).attr("response-type");
|
||||||
|
if(dt == null){
|
||||||
|
dt = "json";
|
||||||
|
}
|
||||||
var options = {
|
var options = {
|
||||||
dataType : dt,
|
dataType : dt,
|
||||||
resetForm : false,
|
resetForm : true,
|
||||||
success: function(responseText, statusText, xhr, $form){
|
success:function(responseText, statusText, xhr, $form){
|
||||||
if(typeof callback_method != "undefined"){
|
if(typeof callback_method != "undefined"){
|
||||||
if(callback_method != ""){
|
if(callback_method != ""){
|
||||||
window.o[o.data_method][callback_method](responseText,statusText,xhr,$form);
|
window.o[o.data_method][callback_method](responseText,statusText,xhr,$form);
|
||||||
@@ -266,7 +265,7 @@ var orbitDesktop = function(dom){
|
|||||||
if(typeof notification == "string")
|
if(typeof notification == "string")
|
||||||
o.notify(notification,"success");
|
o.notify(notification,"success");
|
||||||
},
|
},
|
||||||
error: function(){
|
error:function(){
|
||||||
o.notify("Please try again later!","imp");
|
o.notify("Please try again later!","imp");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -275,11 +274,10 @@ var orbitDesktop = function(dom){
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("body").on("click","*[ajax-remote]",function(){
|
$("body").on("click","*[ajax-remote]",function(){
|
||||||
var $e = $(this),
|
var $e = $(this);
|
||||||
t = $e.attr("ajax-remote"),
|
var t = $e.attr("ajax-remote");
|
||||||
classes_to_toggle = $e.attr("toggle-onclick"),
|
var classes_to_toggle = $e.attr("toggle-onclick");
|
||||||
responsetype = $e.attr('response-type') ? $e.attr('response-type') : "html",
|
var exe = $e.attr("callback-method"); // (typeof $e.attr("callback-method") == "function"? $e.attr("callback-method") : "");
|
||||||
exe = $e.attr("callback-method"); // (typeof $e.attr("callback-method") == "function"? $e.attr("callback-method") : "");
|
|
||||||
if(classes_to_toggle){
|
if(classes_to_toggle){
|
||||||
$e.toggleClass(classes_to_toggle);
|
$e.toggleClass(classes_to_toggle);
|
||||||
}
|
}
|
||||||
@@ -291,9 +289,9 @@ var orbitDesktop = function(dom){
|
|||||||
}
|
}
|
||||||
var ca = $e.attr("content-holder");
|
var ca = $e.attr("content-holder");
|
||||||
var a = function(){
|
var a = function(){
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : t,
|
type : t,
|
||||||
dataType : responsetype,
|
|
||||||
url : $e.attr("href"),
|
url : $e.attr("href"),
|
||||||
success : function(data){
|
success : function(data){
|
||||||
if(typeof data == "string"){
|
if(typeof data == "string"){
|
||||||
@@ -304,7 +302,6 @@ var orbitDesktop = function(dom){
|
|||||||
// $("div[container=true]").html(data);
|
// $("div[container=true]").html(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(exe)
|
if(exe)
|
||||||
window.o[o.data_method][exe](data,$e);
|
window.o[o.data_method][exe](data,$e);
|
||||||
if(t == "delete"){
|
if(t == "delete"){
|
||||||
@@ -454,7 +451,7 @@ var orbitDesktop = function(dom){
|
|||||||
|
|
||||||
var ist = function(){
|
var ist = function(){
|
||||||
$('#holder').css('height', $('#container').height() - 72);
|
$('#holder').css('height', $('#container').height() - 72);
|
||||||
$('.tinycanvas').css('height', $('#holder').height() - 36);
|
$('.tinycanvas').css('height', $('#panel_r').height() - 36);
|
||||||
var dom = $("*[isotope=true]").isotope({
|
var dom = $("*[isotope=true]").isotope({
|
||||||
layoutMode: 'fitColumns',
|
layoutMode: 'fitColumns',
|
||||||
onLayout: function($elems, instance){
|
onLayout: function($elems, instance){
|
||||||
@@ -701,15 +698,6 @@ var orbitDesktop = function(dom){
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
o.highlight_sub_menu_item(dom);
|
o.highlight_sub_menu_item(dom);
|
||||||
} else {
|
|
||||||
o.lastlink = dom.attr("href");
|
|
||||||
$.ajax({
|
|
||||||
url : dom.attr("href"),
|
|
||||||
type : "get",
|
|
||||||
success : function(data){
|
|
||||||
o.layout_data(data);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
if(dom.length == 0)
|
if(dom.length == 0)
|
||||||
o.layout_data(data);
|
o.layout_data(data);
|
||||||
@@ -1880,42 +1868,6 @@ var orbitDesktop = function(dom){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.enablelanguageSelect = function(){
|
|
||||||
$(".language_select a").click(function(event) {
|
|
||||||
$("*[data-language]").hide();
|
|
||||||
$("*[data-language="+$(this).data("lang")+"]").show();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
this.enableSharing = function( dom ){
|
|
||||||
var el = $( dom ),
|
|
||||||
variable = ( el.data( 'var' ) ? el.data( "var" ) : "mode"),
|
|
||||||
_url = el.data( 'link' ) + "?" + variable + "=",
|
|
||||||
classes = [];
|
|
||||||
|
|
||||||
el.find( "a" ).each( function(){
|
|
||||||
classes.push( $( this ).attr( "item-class" ) ? $( this ).attr( "item-class" ) : $( this ).data( 'mode' ) );
|
|
||||||
})
|
|
||||||
|
|
||||||
el.find( "a" ).click( function(){
|
|
||||||
var ids = [],
|
|
||||||
mode = $( this ).data( 'mode' ),
|
|
||||||
inject_class = $( this ).attr( 'item-class' ) ? $( this ).attr( 'item-class' ) : mode;
|
|
||||||
|
|
||||||
$( ".overview li[item=true] a.icon-check" ).each( function(){
|
|
||||||
ids.push( $( this ).data( 'id' ) );
|
|
||||||
$( "li[data-id="+ $( this ).data( 'id' ) +"]").removeClass( classes.join( " " ) ).addClass( inject_class );
|
|
||||||
})
|
|
||||||
$.ajax({
|
|
||||||
url : _url + mode,
|
|
||||||
data : {"ids" : ids},
|
|
||||||
datatype : "json",
|
|
||||||
})
|
|
||||||
return false;
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
this.minimizeBarManager = function(){
|
this.minimizeBarManager = function(){
|
||||||
var minimizedApps = [],
|
var minimizedApps = [],
|
||||||
minimizeBar = $("#minimizebar");
|
minimizeBar = $("#minimizebar");
|
||||||
|
|||||||
@@ -7,29 +7,32 @@ function append_id(){
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('change', 'select', function(e) {
|
$("div.editable").live("mouseenter mouseleave", function (event) {
|
||||||
if(!e.target.className == 'widget_field_select') {
|
$(this).children('.edit_link').toggle();
|
||||||
switch(e.target.id) {
|
|
||||||
case 'page_module_app_id':
|
|
||||||
$.getScript($(this).attr('rel') + '?module_app_id='+$(this).val() + append_id());
|
|
||||||
break;
|
|
||||||
case 'page_app_frontend_url':
|
|
||||||
case 'page_part_widget_path':
|
|
||||||
$.getScript($(this).attr('rel') +'?frontend=' + $(this).val() + '&module_app_id=' + $("#module_app_list select").val() + append_id() );
|
|
||||||
break;
|
|
||||||
case 'page_design':
|
|
||||||
$.getScript($(this).attr('rel') + '?design_id=' + $(this).val() + append_id());
|
|
||||||
break;
|
|
||||||
case 'page_part_public_r_tag':
|
|
||||||
$.getScript($(this).attr('rel') + '?type=' + $(this).val() + append_id());
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
$.getScript($(this).attr('rel') + '?widget_field_value='+ $(this).val()+'&dom_id=' + $(this).attr("id") + '&field_seri=' +$(this).attr('field_seri')+ '&module_app_id=' +$("#page_module_app_id,page_part_module_app_id").val() + append_id() );
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.part_kind', function(event) {
|
$("#page_design").live('change', function() {
|
||||||
|
$.getScript($(this).attr('rel') + '?design_id=' + $(this).val() + append_id());
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$("#module_app_list select").live('change', function() {
|
||||||
|
$.getScript($(this).attr('rel') + '?module_app_id='+$(this).val() + append_id());
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#widget_list select, #frontend_list select").live('change', function() {
|
||||||
|
$.getScript($(this).attr('rel') +'?frontend=' + $(this).val() + '&module_app_id=' + $("#module_app_list select").val() + append_id() );
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#tag_list select").live('change', function() {
|
||||||
|
$.getScript($(this).attr('rel') + '?type=' + $(this).val() + append_id() );
|
||||||
|
});
|
||||||
|
|
||||||
|
$("select.widget_field_select").live('change', function() {
|
||||||
|
$.getScript($(this).attr('rel') + '?widget_field_value='+ $(this).val()+'&dom_id=' + $(this).attr("id") + '&field_seri=' +$(this).attr('field_seri')+ '&module_app_id=' +$("#page_module_app_id,page_part_module_app_id").val() + append_id() );
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.part_kind').live('click', function() {
|
||||||
$('.part_kind_partial').hide();
|
$('.part_kind_partial').hide();
|
||||||
$('#part_' + $(this).attr('value')).show();
|
$('#part_' + $(this).attr('value')).show();
|
||||||
});
|
});
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
/* ===================================================
|
|
||||||
* jquery-lite-image-resize v.1.0.1
|
|
||||||
* https://github.com/RayChang/jquery-lite-image-resize
|
|
||||||
* ===================================================
|
|
||||||
* How to use ?
|
|
||||||
*
|
|
||||||
* HTML element closest to the image to add class "resizeimg".
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* <div class="resizeimg">
|
|
||||||
* <img src="images url" />
|
|
||||||
* </div>
|
|
||||||
*
|
|
||||||
* Or you can use:
|
|
||||||
* $('your class').rsImg();
|
|
||||||
*
|
|
||||||
* Note : HTML structure must be a structure like the example above.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
!function ($) {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var ResizeImg = function(element) {
|
|
||||||
this.element = $(element);
|
|
||||||
this.element.data('exists', true);
|
|
||||||
};
|
|
||||||
ResizeImg.prototype.resize = function() {
|
|
||||||
var $img = this.element.children('img').eq(0),
|
|
||||||
elW = this.element.innerWidth(),
|
|
||||||
elH = this.element.innerHeight(),
|
|
||||||
elScale = elW/elH,
|
|
||||||
image = document.createElement("img");
|
|
||||||
image.src = $img.attr('src');
|
|
||||||
this.element.css({
|
|
||||||
'position': 'relative',
|
|
||||||
'overflow': 'hidden',
|
|
||||||
});
|
|
||||||
function imageLoadComplete() {
|
|
||||||
var imgW = image.width,
|
|
||||||
imgH = image.height,
|
|
||||||
imgScale = imgW/imgH,
|
|
||||||
portrait = {
|
|
||||||
'position': 'absolute',
|
|
||||||
'height': '100%',
|
|
||||||
'width': 'auto',
|
|
||||||
'max-width': 'none',
|
|
||||||
'left': '50%',
|
|
||||||
'top': 0,
|
|
||||||
'margin-left': imgW*(elH/imgH)/-2
|
|
||||||
},
|
|
||||||
landscape = {
|
|
||||||
'position': 'absolute',
|
|
||||||
'height': 'auto',
|
|
||||||
'max-height': 'none',
|
|
||||||
'width': '100%',
|
|
||||||
'left': 0,
|
|
||||||
'top': '50%',
|
|
||||||
'margin-top': imgH*(elW/imgW)/-2
|
|
||||||
},
|
|
||||||
center = {
|
|
||||||
'position': 'absolute',
|
|
||||||
'height': '100%',
|
|
||||||
'width': '100%',
|
|
||||||
'top': 0,
|
|
||||||
'left': 0
|
|
||||||
};
|
|
||||||
if(imgScale < 1) {
|
|
||||||
if(elScale < 1) {
|
|
||||||
if(elScale > imgScale) {
|
|
||||||
$img.css(landscape);
|
|
||||||
} else {
|
|
||||||
$img.css(portrait);
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
$img.css(landscape);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
if(imgScale > 1) {
|
|
||||||
if(elScale > 1) {
|
|
||||||
if(elScale > imgScale) {
|
|
||||||
$img.css(landscape);
|
|
||||||
} else {
|
|
||||||
$img.css(portrait);
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
$img.css(portrait);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
if(imgScale == 1) {
|
|
||||||
if(elScale < 1) {
|
|
||||||
$img.css(portrait);
|
|
||||||
} else if(elScale > 1) {
|
|
||||||
$img.css(landscape);
|
|
||||||
} else {
|
|
||||||
$img.css(center);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
$img.fadeTo(500, 1);
|
|
||||||
|
|
||||||
}
|
|
||||||
if(/MSIE 8.0/g.test($ua)) {
|
|
||||||
imageLoadComplete();
|
|
||||||
} else {
|
|
||||||
image.onload = imageLoadComplete;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn.rsImg = function () {
|
|
||||||
this.each(function () {
|
|
||||||
if(!$(this).data('exists')) {
|
|
||||||
$(this).children("img").fadeTo(0,0);
|
|
||||||
new ResizeImg(this).resize();
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
$(function() {
|
|
||||||
$('.resizeimg').rsImg();
|
|
||||||
});
|
|
||||||
}(window.jQuery);
|
|
||||||
@@ -12,14 +12,13 @@
|
|||||||
!(function($){
|
!(function($){
|
||||||
// Convenience vars for accessing elements
|
// Convenience vars for accessing elements
|
||||||
var $body = $('#main-wrap'),
|
var $body = $('#main-wrap'),
|
||||||
$bottomNav = $('.bottomnav'),
|
|
||||||
$pageslide = $('#pageslide'),
|
$pageslide = $('#pageslide'),
|
||||||
$viewPage = $('#view-page');
|
$viewPage = $('#view-page');
|
||||||
|
|
||||||
var _sliding = false, // Mutex to assist closing only once
|
var _sliding = false, // Mutex to assist closing only once
|
||||||
_lastCaller; // Used to keep track of last element to trigger pageslide
|
_lastCaller; // Used to keep track of last element to trigger pageslide
|
||||||
|
|
||||||
// If the pageslide element doesn't exist, create it
|
// If the pageslide element doesn't exist, create it
|
||||||
if( $pageslide.length == 0 ) {
|
if( $pageslide.length == 0 ) {
|
||||||
$pageslide = $('<div />').attr( 'id', 'pageslide' )
|
$pageslide = $('<div />').attr( 'id', 'pageslide' )
|
||||||
.css( 'display', 'none' )
|
.css( 'display', 'none' )
|
||||||
@@ -29,12 +28,11 @@
|
|||||||
/*
|
/*
|
||||||
* Private methods
|
* Private methods
|
||||||
*/
|
*/
|
||||||
function _load( url, useIframe, callback,element ) {
|
function _load( url, useIframe ) {
|
||||||
// Are we loading an element from the page or a URL?
|
// Are we loading an element from the page or a URL?
|
||||||
if ( url.indexOf("#") === 0 ) {
|
if ( url.indexOf("#") === 0 ) {
|
||||||
// Load a page element
|
// Load a page element
|
||||||
$(url).clone(true).appendTo( $pageslide.empty() ).show();
|
$(url).clone(true).appendTo( $pageslide.empty() ).show();
|
||||||
if(callback)callback.call(this,$pageslide,element);
|
|
||||||
} else {
|
} else {
|
||||||
// Load a URL. Into an iframe?
|
// Load a URL. Into an iframe?
|
||||||
if( useIframe ) {
|
if( useIframe ) {
|
||||||
@@ -51,11 +49,9 @@
|
|||||||
$viewPage.find('.content').html( iframe );
|
$viewPage.find('.content').html( iframe );
|
||||||
$viewPage.clone(true).appendTo( $pageslide.empty() ).show();
|
$viewPage.clone(true).appendTo( $pageslide.empty() ).show();
|
||||||
$viewPage.find('.content').empty();
|
$viewPage.find('.content').empty();
|
||||||
if(callback)callback.call(this,$viewPage,element);
|
|
||||||
} else {
|
} else {
|
||||||
$viewPage.find('.content').load(url, function(){
|
$viewPage.find('.content').load(url, function(){
|
||||||
$viewPage.clone(true).appendTo( $pageslide.empty() ).show();
|
$viewPage.clone(true).appendTo( $pageslide.empty() ).show();
|
||||||
if(callback)callback.call(this,$viewPage,element);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,11 +64,10 @@
|
|||||||
function _start( direction, speed ) {
|
function _start( direction, speed ) {
|
||||||
var slideWidth = $pageslide.outerWidth( true ),
|
var slideWidth = $pageslide.outerWidth( true ),
|
||||||
bodyAnimateIn = {},
|
bodyAnimateIn = {},
|
||||||
bottomnavAnimateIn = {},
|
|
||||||
slideAnimateIn = {};
|
slideAnimateIn = {};
|
||||||
|
|
||||||
// If the slide is open or opening, just ignore the call
|
// If the slide is open or opening, just ignore the call
|
||||||
if( $pageslide.is(':visible') || _sliding ) return;
|
if( $pageslide.is(':visible') || _sliding ) return;
|
||||||
_sliding = true;
|
_sliding = true;
|
||||||
|
|
||||||
switch( direction ) {
|
switch( direction ) {
|
||||||
@@ -88,7 +83,6 @@
|
|||||||
$pageslide.css({ left: '-' + (slideWidth-61) + 'px', right: 'auto' });
|
$pageslide.css({ left: '-' + (slideWidth-61) + 'px', right: 'auto' });
|
||||||
};
|
};
|
||||||
bodyAnimateIn['margin-left'] = '+=' + slideWidth;
|
bodyAnimateIn['margin-left'] = '+=' + slideWidth;
|
||||||
bottomnavAnimateIn['left'] = '+=' + slideWidth;
|
|
||||||
if($(window).width() <= 1440 && slideWidth > 963 ) {
|
if($(window).width() <= 1440 && slideWidth > 963 ) {
|
||||||
bodyAnimateIn['width'] = $body.width();
|
bodyAnimateIn['width'] = $body.width();
|
||||||
}
|
}
|
||||||
@@ -98,7 +92,6 @@
|
|||||||
|
|
||||||
// Animate the slide, and attach this slide's settings to the element
|
// Animate the slide, and attach this slide's settings to the element
|
||||||
$body.animate(bodyAnimateIn, speed);
|
$body.animate(bodyAnimateIn, speed);
|
||||||
$bottomNav.animate(bottomnavAnimateIn, speed);
|
|
||||||
$pageslide.show().animate(slideAnimateIn, speed, function() {
|
$pageslide.show().animate(slideAnimateIn, speed, function() {
|
||||||
_sliding = false;
|
_sliding = false;
|
||||||
$pageslide.children('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
$pageslide.children('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
||||||
@@ -115,7 +108,7 @@
|
|||||||
$.fn.pageslide = function(options) {
|
$.fn.pageslide = function(options) {
|
||||||
var $elements = this;
|
var $elements = this;
|
||||||
// On click
|
// On click
|
||||||
$elements.bind(clickEvent, function(e) {
|
$elements.on(clickEvent, function(e) {
|
||||||
var $self = $(this),
|
var $self = $(this),
|
||||||
settings = $.extend({ href: $self.attr('href') }, options);
|
settings = $.extend({ href: $self.attr('href') }, options);
|
||||||
|
|
||||||
@@ -128,7 +121,7 @@
|
|||||||
$.pageslide.close();
|
$.pageslide.close();
|
||||||
} else {
|
} else {
|
||||||
// Open
|
// Open
|
||||||
$.pageslide( settings,$self );
|
$.pageslide( settings );
|
||||||
|
|
||||||
if($('.item-groups').length) {
|
if($('.item-groups').length) {
|
||||||
$('.item-menu > a, .navbar-inner').removeClass("active");
|
$('.item-menu > a, .navbar-inner').removeClass("active");
|
||||||
@@ -147,16 +140,7 @@
|
|||||||
$pageName = $self.parents('.item-title').children('a').text();
|
$pageName = $self.parents('.item-title').children('a').text();
|
||||||
$('.page-name').text($pageName);
|
$('.page-name').text($pageName);
|
||||||
} else if($('.tags-groups').length) {
|
} else if($('.tags-groups').length) {
|
||||||
if($('.gallery').length) {
|
$(this).parents('li').addClass("active").siblings().removeClass("active").parent('ul').siblings().children('li').removeClass("active");
|
||||||
$(this).closest('.rgalbum').addClass('active-single').siblings().removeClass('active-single');
|
|
||||||
if($(this).closest('ul').hasClass('photo-action')) {
|
|
||||||
$('.checkbox').prop('checked', false);
|
|
||||||
$('.rgalbum').removeClass('active');
|
|
||||||
$('.deletephoto, .deselect, .addtags').addClass('hide');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$(this).closest('li').addClass("active").siblings().removeClass("active").parent('ul').siblings().children('li').removeClass("active");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$(this).parents("tr").addClass("active").siblings().removeClass("active");;
|
$(this).parents("tr").addClass("active").siblings().removeClass("active");;
|
||||||
}
|
}
|
||||||
@@ -167,9 +151,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Default settings
|
* Default settings
|
||||||
*/
|
*/
|
||||||
$.fn.pageslide.defaults = {
|
$.fn.pageslide.defaults = {
|
||||||
@@ -180,18 +164,18 @@
|
|||||||
href: null, // Override the source of the content. Optional in most cases, but required when opening pageslide programmatically.
|
href: null, // Override the source of the content. Optional in most cases, but required when opening pageslide programmatically.
|
||||||
W: 264,
|
W: 264,
|
||||||
closeFn : null,
|
closeFn : null,
|
||||||
openFn : null,
|
openFn : null
|
||||||
loadComplete : null
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Public methods
|
* Public methods
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Open the pageslide
|
// Open the pageslide
|
||||||
$.pageslide = function( options,element ) {
|
$.pageslide = function( options ) {
|
||||||
// Extend the settings with those the user has provided
|
// Extend the settings with those the user has provided
|
||||||
var settings = $.extend({}, $.fn.pageslide.defaults, options);
|
var settings = $.extend({}, $.fn.pageslide.defaults, options);
|
||||||
|
|
||||||
var convertToFunction = function(fn){
|
var convertToFunction = function(fn){
|
||||||
var x = new Function();
|
var x = new Function();
|
||||||
x = fn;
|
x = fn;
|
||||||
@@ -206,19 +190,16 @@
|
|||||||
if(settings.closeFn) {
|
if(settings.closeFn) {
|
||||||
$.fn.pageslide.defaults.closeFn = convertToFunction(settings.closeFn);
|
$.fn.pageslide.defaults.closeFn = convertToFunction(settings.closeFn);
|
||||||
}
|
}
|
||||||
if(settings.loadComplete) {
|
|
||||||
$.fn.pageslide.defaults.loadComplete = convertToFunction(settings.loadComplete);
|
// Are we trying to open in different direction?
|
||||||
}
|
|
||||||
|
|
||||||
// Are we trying to open in different direction?
|
|
||||||
if( ($pageslide.is(':visible') && $pageslide.data( 'W' ) != settings.W) || ($pageslide.is(':visible') && $pageslide.data( 'direction' ) != settings.direction) ) {
|
if( ($pageslide.is(':visible') && $pageslide.data( 'W' ) != settings.W) || ($pageslide.is(':visible') && $pageslide.data( 'direction' ) != settings.direction) ) {
|
||||||
$.pageslide.close(function(){
|
$.pageslide.close(function(){
|
||||||
$pageslide.css({'width': settings.W});
|
$pageslide.css({'width': settings.W});
|
||||||
_load( settings.href, settings.iframe, settings.loadComplete, element );
|
_load( settings.href, settings.iframe );
|
||||||
_start( settings.direction, settings.speed );
|
_start( settings.direction, settings.speed );
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
_load( settings.href, settings.iframe, settings.loadComplete,element );
|
_load( settings.href, settings.iframe );
|
||||||
if( $pageslide.is(':hidden') ) {
|
if( $pageslide.is(':hidden') ) {
|
||||||
$pageslide.css({'width': settings.W});
|
$pageslide.css({'width': settings.W});
|
||||||
_start( settings.direction, settings.speed );
|
_start( settings.direction, settings.speed );
|
||||||
@@ -237,19 +218,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Close the pageslide
|
// Close the pageslide
|
||||||
$.pageslide.close = function( callback ) {
|
$.pageslide.close = function( callback ) {
|
||||||
var $pageslide = $('#pageslide'),
|
var $pageslide = $('#pageslide'),
|
||||||
slideWidth = $pageslide.outerWidth( true ),
|
slideWidth = $pageslide.outerWidth( true ),
|
||||||
speed = $pageslide.data( 'speed' ),
|
speed = $pageslide.data( 'speed' ),
|
||||||
bodyAnimateIn = {},
|
bodyAnimateIn = {},
|
||||||
bottomnavAnimateIn = {};
|
|
||||||
slideAnimateIn = {}
|
slideAnimateIn = {}
|
||||||
|
|
||||||
// If the slide isn't open, just ignore the call
|
// If the slide isn't open, just ignore the call
|
||||||
if( $pageslide.is(':hidden') || _sliding ) return;
|
if( $pageslide.is(':hidden') || _sliding ) return;
|
||||||
_sliding = true;
|
_sliding = true;
|
||||||
|
|
||||||
switch( $pageslide.data( 'direction' ) ) {
|
switch( $pageslide.data( 'direction' ) ) {
|
||||||
@@ -259,10 +239,9 @@
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
bodyAnimateIn['margin-left'] = '-=' + slideWidth;
|
bodyAnimateIn['margin-left'] = '-=' + slideWidth;
|
||||||
bottomnavAnimateIn['left'] = '-=' + slideWidth;
|
|
||||||
slideAnimateIn['left'] = '-=' + slideWidth;
|
slideAnimateIn['left'] = '-=' + slideWidth;
|
||||||
if($pageslide.find('.preview').length) {
|
if($pageslide.find('.preview').length) {
|
||||||
$pageslide.find('.preview').cycle('destroy');
|
// $pageslide.find('.preview').cycle('destroy');
|
||||||
$pageslide.find('.preview img').removeAttr('style');
|
$pageslide.find('.preview img').removeAttr('style');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -278,13 +257,11 @@
|
|||||||
}
|
}
|
||||||
} else if($('.tags-groups').length) {
|
} else if($('.tags-groups').length) {
|
||||||
$('.tags-groups').children('li').removeClass("active");
|
$('.tags-groups').children('li').removeClass("active");
|
||||||
$('.rgalbum').removeClass("active-single");
|
|
||||||
} else {
|
} else {
|
||||||
$("tr").removeClass("active");
|
$("tr").removeClass("active");
|
||||||
};
|
};
|
||||||
|
|
||||||
$pageslide.animate(slideAnimateIn, speed);
|
$pageslide.animate(slideAnimateIn, speed);
|
||||||
$bottomNav.animate(bottomnavAnimateIn, speed);
|
|
||||||
$body.animate(bodyAnimateIn, speed, function() {
|
$body.animate(bodyAnimateIn, speed, function() {
|
||||||
$pageslide.hide();
|
$pageslide.hide();
|
||||||
_sliding = false;
|
_sliding = false;
|
||||||
@@ -310,33 +287,26 @@
|
|||||||
$.fn.pageslide.defaults.openFn = callback;
|
$.fn.pageslide.defaults.openFn = callback;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
//data load complete callback
|
/* Events */
|
||||||
$.pageslide.loadComplete = function(callback) {
|
|
||||||
if(typeof callback === "function"){
|
// Don't let clicks to the pageslide close the window
|
||||||
$.fn.pageslide.defaults.loadComplete = callback;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Events */
|
|
||||||
|
|
||||||
// Don't let clicks to the pageslide close the window
|
|
||||||
$pageslide.click(function(e) {
|
$pageslide.click(function(e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Close the pageslide if the document is clicked or the users presses the ESC key, unless the pageslide is modal
|
// Close the pageslide if the document is clicked or the users presses the ESC key, unless the pageslide is modal
|
||||||
$(document).bind('click keyup', function(e) {
|
$(document).bind('click keyup', function(e) {
|
||||||
// If this is a keyup event, let's see if it's an ESC key
|
// If this is a keyup event, let's see if it's an ESC key
|
||||||
if( e.type == "keyup" && e.keyCode != 27) return;
|
if( e.type == "keyup" && e.keyCode != 27) return;
|
||||||
|
|
||||||
// Make sure it's visible, and we're not modal
|
// Make sure it's visible, and we're not modal
|
||||||
if( $pageslide.is( ':visible' ) && !$pageslide.data( 'modal' ) ) {
|
if( $pageslide.is( ':visible' ) && !$pageslide.data( 'modal' ) ) {
|
||||||
$.pageslide.close();
|
$.pageslide.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
function setScroll(){
|
function setScroll(){
|
||||||
$pageslide.children('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true }); // set nano scroll
|
$pageslide.children('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true }); // set nano scroll
|
||||||
};
|
};
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
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() {
|
|
||||||
var $t = null,
|
|
||||||
_data = null;
|
|
||||||
clearCheck();
|
|
||||||
$('.list-check').listCheck();
|
|
||||||
$('.list-active-btn').data('actionable', false).on(clickEvent, function(e) {
|
|
||||||
$t = $(this)
|
|
||||||
_data = $(this).data()
|
|
||||||
_data.actionable ? $('#dialog').modal('show') : "";
|
|
||||||
e.preventDefault();
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#dialog").on(clickEvent, '.delete-item', function() {
|
|
||||||
var _v = [],
|
|
||||||
_t = $t.attr("rel");
|
|
||||||
|
|
||||||
$("tbody .list-check:checked").each(function() {
|
|
||||||
_v.push(this.value);
|
|
||||||
});
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
url : _t,
|
|
||||||
type:"get",
|
|
||||||
data : {"ids":_v},
|
|
||||||
dataType : "json",
|
|
||||||
success : function(){
|
|
||||||
actionSuccess(_data.checkAction);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
$('#dialog').modal('hide');
|
|
||||||
$('.list-active-btn').addClass('disabled').data('actionable', false);
|
|
||||||
})
|
|
||||||
|
|
||||||
});
|
|
||||||
@@ -1,3 +1,37 @@
|
|||||||
|
function loadViewPage(url, id) {
|
||||||
|
var $listView = $(id);
|
||||||
|
|
||||||
|
$listView.empty().removeClass('in active');
|
||||||
|
$listView.load(url, function(response, status, xhr) {
|
||||||
|
$(this).addClass('in active');
|
||||||
|
$('#member-card').imagesLoaded(function() {
|
||||||
|
$('#member-card .member-avatar img').muImageResize({width: 150, height:150});
|
||||||
|
});
|
||||||
|
$('#member-abstract').imagesLoaded(function() {
|
||||||
|
$('#member-abstract .member-avatar img').muImageResize({width: 250, height:120});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$('.member-avatar').rsImg();
|
$search = window.location.pathname.substring(1);
|
||||||
|
$search = $search.split("/");
|
||||||
|
$search = $search[$search.length-1];
|
||||||
|
$viewType = window.localStorage.getItem('viewType') || '#member-list';
|
||||||
|
$viewSwitchNo = window.localStorage.getItem('viewSwitchNo') || 0;
|
||||||
|
if($search == 'users-registrant-list.shtml') {
|
||||||
|
loadViewPage('member-registrant-list.html ' + $viewType, '#list-view');
|
||||||
|
} else {
|
||||||
|
loadViewPage('member-list.html ' + $viewType, '#list-view');
|
||||||
|
};
|
||||||
|
$('.view-switch').children('.btn').eq($viewSwitchNo).addClass('active');
|
||||||
|
$('.view-switch').delegate(".btn", 'click', function(e){
|
||||||
|
var url = $(this).attr('href'),
|
||||||
|
ID = url.split("#"),
|
||||||
|
ID = '#' + ID[ID.length-1];
|
||||||
|
window.localStorage.setItem('viewType', ID);
|
||||||
|
window.localStorage.setItem('viewSwitchNo', $(this).index());
|
||||||
|
loadViewPage(url, '#list-view');
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
var H,P = [];
|
|
||||||
// Go to
|
// Go to
|
||||||
!function ($) {
|
!function ($) {
|
||||||
$.fn.goTo = function (){
|
$.fn.goTo = function (){
|
||||||
@@ -14,45 +13,43 @@ var H,P = [];
|
|||||||
}
|
}
|
||||||
}(window.jQuery);
|
}(window.jQuery);
|
||||||
function checkHeight() {
|
function checkHeight() {
|
||||||
// if($('#member-module').height() > $(window).height()) {
|
if($('#member-module').height() > $(window).height()) {
|
||||||
// H = $(window).height()-
|
H = $(window).height()-
|
||||||
// parseInt($('.wrap-inner').css('padding-top'))+
|
parseInt($('.wrap-inner').css('padding-top'))+
|
||||||
// parseInt($('.wrap-inner').css('padding-bottom'))-
|
parseInt($('.wrap-inner').css('padding-bottom'))-
|
||||||
// $('#orbit-bar').outerHeight(true);
|
$('#orbit-bar').outerHeight(true);
|
||||||
// }else{
|
}else{
|
||||||
// H = $(window).height()-
|
H = $(window).height()-
|
||||||
// parseInt($('.wrap-inner').css('padding-top'))+
|
parseInt($('.wrap-inner').css('padding-top'))+
|
||||||
// parseInt($('.wrap-inner').css('padding-bottom'))-
|
parseInt($('.wrap-inner').css('padding-bottom'))-
|
||||||
// $('#filter').outerHeight()+
|
$('#filter').outerHeight()+
|
||||||
// parseInt($('#filter').css('margin-bottom'))-
|
parseInt($('#filter').css('margin-bottom'))-
|
||||||
// $('#orbit-bar').outerHeight(true);
|
$('#orbit-bar').outerHeight(true);
|
||||||
// };
|
};
|
||||||
H = $(window).height()-
|
|
||||||
parseInt($('.wrap-inner').css('padding-top'))-
|
|
||||||
$('#orbit-bar').outerHeight(true);
|
|
||||||
$('#basic-info').height(H);
|
$('#basic-info').height(H);
|
||||||
$('#member-roles').height(H-$('.member-avatar').outerHeight(true)-parseInt($('#member-roles').css('margin-top'))+20);
|
$('#member-roles').height(H-$('.member-avatar').outerHeight(true)-parseInt($('#member-roles').css('margin-top')))
|
||||||
$('#module-content').height(H-$('#module-navbar .navbar').outerHeight(true)-$('.bottomnav').innerHeight());
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
|
var H;
|
||||||
checkHeight();
|
checkHeight();
|
||||||
$('.wrap-inner').css('padding-bottom', 0);
|
$(window).resize(function() {
|
||||||
$(window).resize(checkHeight);
|
checkHeight();
|
||||||
|
// setModuleBlockWidth();
|
||||||
|
});
|
||||||
$('#member-roles h4 > span').each(function() {
|
$('#member-roles h4 > span').each(function() {
|
||||||
$(this).css('margin-left',function() {
|
$(this).css('margin-left',function() {
|
||||||
return $(this).innerWidth()/2*-1;
|
return $(this).innerWidth()/2*-1;
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
// $('#basic-info').scrollToFixed({
|
$('#basic-info').scrollToFixed({
|
||||||
// marginTop: $('#orbit-bar').outerHeight(true)+20,
|
marginTop: $('#orbit-bar').outerHeight(true)+20,
|
||||||
// });
|
});
|
||||||
// $('#module-navbar').scrollToFixed({
|
$('#module-navbar').scrollToFixed({
|
||||||
// marginTop: $('#orbit-bar').outerHeight(true),
|
marginTop: $('#orbit-bar').outerHeight(true),
|
||||||
// });
|
});
|
||||||
// $('.member-avatar').imagesLoaded(function() {
|
// $('.member-avatar').imagesLoaded(function() {
|
||||||
// $('#basic-info .member-avatar img').muImageResize({width: 100, height:100});
|
// $('#basic-info .member-avatar img').muImageResize({width: 100, height:100});
|
||||||
// });
|
// });
|
||||||
$('.member-avatar').rsImg();
|
$('#member-roles').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
||||||
$('#member-roles, #module-content .nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
|
})
|
||||||
});
|
|
||||||
@@ -191,17 +191,12 @@ function returnAddressForm(element, decide) {
|
|||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
appendIndex = null;
|
appendIndex = null;
|
||||||
if($('#user-forms').length) {
|
if($('#new-user-forms').length) {
|
||||||
addressVal = [];
|
addressVal = [];
|
||||||
addressArray = [];
|
addressArray = [];
|
||||||
addressInputId = [];
|
addressInputId = [];
|
||||||
roleType = null;
|
roleType = null;
|
||||||
returnDecide = false;
|
returnDecide = false;
|
||||||
$('.attributes').each(function() {
|
|
||||||
if($(this).find('.toggle-check').attr('value') == "true") {
|
|
||||||
$(this).addClass('disabled').children('.attributes-body').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('.returnDecide').on(clickEvent, function() {
|
$('.returnDecide').on(clickEvent, function() {
|
||||||
returnDecide = true;
|
returnDecide = true;
|
||||||
})
|
})
|
||||||
@@ -220,21 +215,21 @@ $(function() {
|
|||||||
});
|
});
|
||||||
$('#address-field').on('show', getAddressForm($trigger, $('#address-field'), true));
|
$('#address-field').on('show', getAddressForm($trigger, $('#address-field'), true));
|
||||||
});
|
});
|
||||||
$('#user-forms').delegate('.togglebox, .delete, .trigger, .remove-input', clickEvent, function(event) {
|
$('#new-user-forms').delegate('.togglebox, .delete, .trigger, .remove-input', clickEvent, function(event) {
|
||||||
if($(this).hasClass('togglebox')) {
|
if($(this).hasClass('togglebox')) {
|
||||||
if($(this).hasClass('disabled')) {
|
if($(this).hasClass('disabled')) {
|
||||||
$(this).find('.toggle-check')
|
$(this).find('.toggle-check')
|
||||||
.attr('value', 'false')
|
.attr('value', 'false')
|
||||||
.closest('.attributes')
|
.closest('.attributes')
|
||||||
.removeClass('disabled')
|
.removeClass('disabled')
|
||||||
.children('.attributes-body')
|
.find('.attributes-body')
|
||||||
.fadeIn(300);
|
.fadeIn(300);
|
||||||
} else {
|
} else {
|
||||||
$(this).find('.toggle-check')
|
$(this).find('.toggle-check')
|
||||||
.attr('value', 'true')
|
.attr('value', 'true')
|
||||||
.closest('.attributes')
|
.closest('.attributes')
|
||||||
.addClass('disabled')
|
.addClass('disabled')
|
||||||
.children('.attributes-body')
|
.find('.attributes-body')
|
||||||
.fadeOut(300);
|
.fadeOut(300);
|
||||||
}
|
}
|
||||||
$(this).toggleClass('disabled');
|
$(this).toggleClass('disabled');
|
||||||
@@ -427,13 +422,12 @@ $(function() {
|
|||||||
if($(this).hasClass('trigger')) {
|
if($(this).hasClass('trigger')) {
|
||||||
// appendIndex = $(this).closest('.controls').find('.input-append').length;
|
// appendIndex = $(this).closest('.controls').find('.input-append').length;
|
||||||
appendIndex = $(this).closest('.controls').find('.input-append:last-child').children('input:first-child').attr('name');
|
appendIndex = $(this).closest('.controls').find('.input-append:last-child').children('input:first-child').attr('name');
|
||||||
// appendIndex = appendIndex.split("][");
|
appendIndex = appendIndex.split("][");
|
||||||
// appendIndex = parseInt(appendIndex[appendIndex.length-2])+1;
|
appendIndex = parseInt(appendIndex[appendIndex.length-2])+1;
|
||||||
appendIndex = parseInt(appendIndex.match(/[^[\D\]]+(?=])/g)[1])+1;
|
|
||||||
console.log(appendIndex)
|
|
||||||
attributeIndex = $(this).closest('.attributes').index();
|
attributeIndex = $(this).closest('.attributes').index();
|
||||||
templateType = $(this).closest('.attributes').find('.dataType').children("option:selected").attr('ref');
|
templateType = $(this).closest('.attributes').find('.dataType').children("option:selected").attr('ref');
|
||||||
$("#template-input-append").tmpl(setData(attributeIndex, templateType, appendIndex)).appendTo($(this).closest('.controls').find('.add-target'));
|
$("#template-input-append").tmpl(setData(attributeIndex, templateType, appendIndex)).appendTo($(this).closest('.controls').find('.add-target'));
|
||||||
|
|
||||||
inputAppendLength();
|
inputAppendLength();
|
||||||
};
|
};
|
||||||
if($(this).hasClass('remove-input')) {
|
if($(this).hasClass('remove-input')) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
function textareaResizable() {
|
$(function() {
|
||||||
var $btnW = null,
|
var $btnW = null,
|
||||||
$textareaLangBtnGroup = $('.textarea-lang > .btn-group'),
|
$textareaLangBtnGroup = $('.textarea-lang > .btn-group'),
|
||||||
$textareaLang = $('.textarea-lang'),
|
$textareaLang = $('.textarea-lang'),
|
||||||
@@ -8,12 +8,12 @@ function textareaResizable() {
|
|||||||
$btnW = 4
|
$btnW = 4
|
||||||
$(this).find('.btn').each(function() {
|
$(this).find('.btn').each(function() {
|
||||||
$btnW += $(this).outerWidth(true);
|
$btnW += $(this).outerWidth(true);
|
||||||
$(this).on(clickEvent, function() {
|
$(this).on('click', function() {
|
||||||
var $id = $($(this).attr('href'));
|
var $id = $($(this).attr('href'));
|
||||||
if($id.find('.ui-wrapper').height() < 96) {
|
if($id.find('.ui-wrapper').height() < 96) {
|
||||||
$id.find('.ui-wrapper').height(96)
|
$id.find('.ui-wrapper').height(96)
|
||||||
};
|
}
|
||||||
});
|
})
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$textarea.each(function() {
|
$textarea.each(function() {
|
||||||
@@ -26,7 +26,4 @@ function textareaResizable() {
|
|||||||
minWidth: $btnW+114,
|
minWidth: $btnW+114,
|
||||||
handles: "se",
|
handles: "se",
|
||||||
});
|
});
|
||||||
};
|
|
||||||
$(function() {
|
|
||||||
textareaResizable();
|
|
||||||
});
|
});
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
$(function() {
|
|
||||||
$('.module-area [data-toggle=buttons-checkbox]').find('input[type="checkbox"]').each(function() {
|
|
||||||
$(this).prop('checked') ? $(this).siblings('input[type="hidden"]').val(1) : $(this).siblings('input[type="hidden"]').val(0);
|
|
||||||
});
|
|
||||||
$('.module-area').delegate('input[type="checkbox"]', clickEvent, function(event) {
|
|
||||||
$(this).prop('checked') ? $(this).siblings('input[type="hidden"]').val(1) : $(this).siblings('input[type="hidden"]').val(0);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -83,7 +83,6 @@ legend {
|
|||||||
min-width: 61px;
|
min-width: 61px;
|
||||||
z-index: 1030;
|
z-index: 1030;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
padding-top: 40px;
|
|
||||||
background-color: #171717;
|
background-color: #171717;
|
||||||
-webkit-box-shadow: inset -1px 0px 10px #000000;
|
-webkit-box-shadow: inset -1px 0px 10px #000000;
|
||||||
-moz-box-shadow: inset -1px 0px 10px #000000;
|
-moz-box-shadow: inset -1px 0px 10px #000000;
|
||||||
@@ -92,14 +91,12 @@ legend {
|
|||||||
}
|
}
|
||||||
#sidebar #sidebar-menu {
|
#sidebar #sidebar-menu {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 85px;
|
top: 88px;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
z-index: 0;
|
z-index: 1;
|
||||||
display: block;
|
display: block;
|
||||||
width: 61px;
|
width: 61px;
|
||||||
}
|
/*overflow: auto;*/
|
||||||
#sidebar #sidebar-menu.nano {
|
|
||||||
top: 0;
|
|
||||||
}
|
}
|
||||||
#sidebar .scroller {
|
#sidebar .scroller {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -123,12 +120,16 @@ legend {
|
|||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
#sidebar > h2.position {
|
#sidebar > h2.position {
|
||||||
|
top: 40px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 61px;
|
width: 61px;
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
|
font-size: 2.4em;
|
||||||
|
line-height: 47px;
|
||||||
|
line-height: 46px\9;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
position: relative;
|
position: absolute;
|
||||||
background-color: #08c;
|
background-color: #08c;
|
||||||
background-image: -moz-linear-gradient(top, #08c, #006091);
|
background-image: -moz-linear-gradient(top, #08c, #006091);
|
||||||
background-image: -ms-linear-gradient(top, #08c, #006091);
|
background-image: -ms-linear-gradient(top, #08c, #006091);
|
||||||
@@ -157,20 +158,24 @@ legend {
|
|||||||
}
|
}
|
||||||
#sidebar > h2.position a {
|
#sidebar > h2.position a {
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
|
padding: 6px 6px 5px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
display: inline-block;
|
|
||||||
-webkit-text-shadow: 0px -1px 0px #333333;
|
-webkit-text-shadow: 0px -1px 0px #333333;
|
||||||
-moz-text-shadow: 0px -1px 0px #333333;
|
-moz-text-shadow: 0px -1px 0px #333333;
|
||||||
-o-text-shadow: 0px -1px 0px #333333;
|
-o-text-shadow: 0px -1px 0px #333333;
|
||||||
text-shadow: 0px -1px 0px #333333;
|
text-shadow: 0px -1px 0px #333333;
|
||||||
}
|
}
|
||||||
#sidebar > h2.position a i {
|
|
||||||
line-height: 45px;
|
|
||||||
}
|
|
||||||
#sidebar .sidebar-nav > li {
|
#sidebar .sidebar-nav > li {
|
||||||
min-width: 61px;
|
min-width: 61px;
|
||||||
|
height: 45px;
|
||||||
}
|
}
|
||||||
#sidebar .sidebar-nav > li.active span {
|
#sidebar .sidebar-nav > li.active {
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
#sidebar .sidebar-nav > li.active .sub-nav-block {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
#sidebar .sidebar-nav > li.active > a > span {
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
-webkit-text-shadow: 0px -1px 0px #636363;
|
-webkit-text-shadow: 0px -1px 0px #636363;
|
||||||
@@ -178,7 +183,8 @@ legend {
|
|||||||
-o-text-shadow: 0px -1px 0px #636363;
|
-o-text-shadow: 0px -1px 0px #636363;
|
||||||
text-shadow: 0px -1px 0px #636363;
|
text-shadow: 0px -1px 0px #636363;
|
||||||
}
|
}
|
||||||
#sidebar .sidebar-nav > li span {
|
#sidebar .sidebar-nav > li > a > span {
|
||||||
|
padding: 10px;
|
||||||
color: #B0B0B0;
|
color: #B0B0B0;
|
||||||
display: block;
|
display: block;
|
||||||
-webkit-text-shadow: 0px 1px 0px #000000;
|
-webkit-text-shadow: 0px 1px 0px #000000;
|
||||||
@@ -186,15 +192,8 @@ legend {
|
|||||||
-o-text-shadow: 0px 1px 0px #000000;
|
-o-text-shadow: 0px 1px 0px #000000;
|
||||||
text-shadow: 0px 1px 0px #000000;
|
text-shadow: 0px 1px 0px #000000;
|
||||||
}
|
}
|
||||||
#sidebar .sidebar-nav > li a {
|
#sidebar .sidebar-nav > li > a > span > i {
|
||||||
display: block;
|
font-size: 1.7em;
|
||||||
}
|
|
||||||
#sidebar .sidebar-nav > li i {
|
|
||||||
font-size: 1.6em;
|
|
||||||
line-height: 45px;
|
|
||||||
}
|
|
||||||
#sidebar .sidebar-nav > li.active i {
|
|
||||||
font-size: 2.2em;
|
|
||||||
}
|
}
|
||||||
#sidebar .sub-nav-block-list {
|
#sidebar .sub-nav-block-list {
|
||||||
top: 40px;
|
top: 40px;
|
||||||
@@ -275,7 +274,7 @@ legend {
|
|||||||
}
|
}
|
||||||
#sidebar .sub-nav-arrow {
|
#sidebar .sub-nav-arrow {
|
||||||
left: 53px;
|
left: 53px;
|
||||||
top: -16px;
|
top: -10px;
|
||||||
width: 0px;
|
width: 0px;
|
||||||
height: 0px;
|
height: 0px;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
@@ -283,6 +282,7 @@ legend {
|
|||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 8px 8px 8px 0;
|
border-width: 8px 8px 8px 0;
|
||||||
border-color: transparent #0088CC transparent transparent;
|
border-color: transparent #0088CC transparent transparent;
|
||||||
|
display: none\9; /* 用IE的去死 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -300,15 +300,14 @@ legend {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-radius: 50%/1px;
|
border-radius: 1px;
|
||||||
background-color: rgba(0, 136, 204, .6);
|
background-color: rgba(0, 136, 204, .3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Main Wrap */
|
/* Main Wrap */
|
||||||
#main-wrap {
|
#main-wrap {
|
||||||
padding-top: 40px;
|
padding-top: 40px;
|
||||||
position: relative;
|
|
||||||
}
|
}
|
||||||
#main-wrap .wrap-inner {
|
#main-wrap .wrap-inner {
|
||||||
padding: 60px 20px 20px;
|
padding: 60px 20px 20px;
|
||||||
@@ -420,7 +419,6 @@ legend {
|
|||||||
/* Search Clear */
|
/* Search Clear */
|
||||||
.searchClear {
|
.searchClear {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
|
||||||
}
|
}
|
||||||
.searchClear .icon-search {
|
.searchClear .icon-search {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -522,9 +520,10 @@ legend {
|
|||||||
padding: 0px 5px;
|
padding: 0px 5px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
max-width: 300px;
|
max-width: 500px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-color: #0088CC;
|
background-color: #0088CC;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
#sideset .ui-tooltip.sidebar-tooltip:after {
|
#sideset .ui-tooltip.sidebar-tooltip:after {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -534,9 +533,10 @@ legend {
|
|||||||
padding: 0px 5px;
|
padding: 0px 5px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
max-width: 300px;
|
max-width: 500px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background-color: #000000;
|
background-color: #000000;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
.ui-tooltip:after {
|
.ui-tooltip:after {
|
||||||
content: '';
|
content: '';
|
||||||
@@ -551,135 +551,6 @@ legend {
|
|||||||
border-color: #000000 transparent transparent transparent;
|
border-color: #000000 transparent transparent transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sign In */
|
|
||||||
#sign-in {
|
|
||||||
background-color: #F3F3F3;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background : -webkit-radial-gradient(center center,circle cover, #F3F3F3 10%, #DBDBDB 100%);
|
|
||||||
background : -moz-radial-gradient(center center,circle cover, #F3F3F3 10%, #DBDBDB 100%);
|
|
||||||
background : -o-radial-gradient(center center,circle cover, #F3F3F3 10%, #DBDBDB 100%);
|
|
||||||
background : -ms-radial-gradient(center center,circle cover, #F3F3F3 10%, #DBDBDB 100%);
|
|
||||||
background : -radial-gradient(center center,circle cover, #F3F3F3 10%, #DBDBDB 100%);
|
|
||||||
}
|
|
||||||
.sign-in {
|
|
||||||
text-align: center;
|
|
||||||
position: relative;
|
|
||||||
width: 300px;
|
|
||||||
margin: 150px auto 0;
|
|
||||||
}
|
|
||||||
.sign-in .other-sign-in {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.sign-in .login-logo {
|
|
||||||
margin: 0;
|
|
||||||
padding-bottom: 15px;
|
|
||||||
border-bottom: 1px solid #ededed;
|
|
||||||
}
|
|
||||||
.sign-in .alert {
|
|
||||||
box-shadow: 0 3px 10px #CBCBCB;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.sign-in .form {
|
|
||||||
background-color: #FFF;
|
|
||||||
box-shadow: 0 10px 20px #CBCBCB;
|
|
||||||
padding: 15px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
.sign-in .form-block {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.sign-in .form-list {
|
|
||||||
width: 555px;
|
|
||||||
}
|
|
||||||
.sign-in .content {
|
|
||||||
float: left;
|
|
||||||
margin-bottom: 0;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.sign-in .content + .content {
|
|
||||||
margin-left: 15px;
|
|
||||||
}
|
|
||||||
.sign-in .control-group {
|
|
||||||
position: relative;
|
|
||||||
width: 270px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.sign-in .control-group label {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 39px;
|
|
||||||
height: 40px;
|
|
||||||
line-height: 40px;
|
|
||||||
margin: 0;
|
|
||||||
color: #5C5C5C;
|
|
||||||
}
|
|
||||||
.sign-in .control-group input {
|
|
||||||
width: 222px;
|
|
||||||
height: 30px;
|
|
||||||
padding: 4px 6px 4px 40px;
|
|
||||||
margin-bottom: 25px;
|
|
||||||
}
|
|
||||||
.sign-in .btn {
|
|
||||||
padding: 4px 0;
|
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.sign-in .other-sign-in {
|
|
||||||
position: relative;
|
|
||||||
margin-top: 20px;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
padding-bottom: 20px;
|
|
||||||
border-bottom: 1px solid #ededed;
|
|
||||||
}
|
|
||||||
.sign-in .other-sign-in p {
|
|
||||||
position: absolute;
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
background-color: #FFF;
|
|
||||||
padding: 0 10px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
margin-left: -25px;
|
|
||||||
line-height: 30px;
|
|
||||||
left: 50%;
|
|
||||||
bottom: -15px;
|
|
||||||
font-size: 1.3em;
|
|
||||||
color: #b1b1b1;
|
|
||||||
}
|
|
||||||
.sign-in .checkbox {
|
|
||||||
position: absolute;
|
|
||||||
text-align: left;
|
|
||||||
bottom: 37px;
|
|
||||||
}
|
|
||||||
.sign-in .switchboard {
|
|
||||||
color: #08C;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.sign-in .switchboard span,
|
|
||||||
.sign-in .switchboard.active i {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
.sign-in .switchboard.active span,
|
|
||||||
.sign-in .switchboard i {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.register {
|
|
||||||
box-shadow: inset 0 5px 5px #E0E0E0;
|
|
||||||
background-color: #eee;
|
|
||||||
padding: 15px;
|
|
||||||
margin: 15px -15px -15px;
|
|
||||||
}
|
|
||||||
.register .btn {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.have-other-sign-in {
|
|
||||||
margin: 80px auto 0;
|
|
||||||
}
|
|
||||||
.have-other-sign-in .other-sign-in {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* IE go die */
|
/* IE go die */
|
||||||
:root #sidebar .sub-nav-block:before {
|
:root #sidebar .sub-nav-block:before {
|
||||||
display: block\9;
|
display: block\9;
|
||||||
|
|||||||
@@ -19,18 +19,6 @@
|
|||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.form_fix {
|
|
||||||
textarea {
|
|
||||||
margin-bottom: 12px;
|
|
||||||
}
|
|
||||||
input[type="text"] {
|
|
||||||
margin-left: 0;
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
input[type="text"] + input {
|
|
||||||
margin-top: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// fixed width column with 12px gutter
|
// fixed width column with 12px gutter
|
||||||
// 276px width for 8 columns
|
// 276px width for 8 columns
|
||||||
// 420px width for 12 columns
|
// 420px width for 12 columns
|
||||||
|
|||||||
@@ -323,29 +323,6 @@ a.admtxt.admbg2:hover {
|
|||||||
float: left; }
|
float: left; }
|
||||||
.docklist .d_cate:hover .dock_child {
|
.docklist .d_cate:hover .dock_child {
|
||||||
display: block; }
|
display: block; }
|
||||||
.disable {
|
|
||||||
opacity: .3;
|
|
||||||
}
|
|
||||||
.disable a {
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
||||||
.private {
|
|
||||||
position: relative;
|
|
||||||
padding-right: 10px;
|
|
||||||
width: 300px;
|
|
||||||
opacity: .3 !important;
|
|
||||||
}
|
|
||||||
.private:after {
|
|
||||||
content: "\e073";
|
|
||||||
display: inline-block;
|
|
||||||
font-family: 'entypo';
|
|
||||||
font-size: 1.5em;
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
text-align: center;
|
|
||||||
text-decoration: inherit;
|
|
||||||
top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fn_des.admtxt {
|
.fn_des.admtxt {
|
||||||
line-height: 60px;
|
line-height: 60px;
|
||||||
@@ -737,8 +714,7 @@ a.admtxt.admbg2:hover {
|
|||||||
|
|
||||||
/* list item */
|
/* list item */
|
||||||
.list_t_item {
|
.list_t_item {
|
||||||
overflow: hidden;
|
overflow: hidden; }
|
||||||
height: 100px; }
|
|
||||||
|
|
||||||
.list_t_title {
|
.list_t_title {
|
||||||
padding-bottom: 6px;
|
padding-bottom: 6px;
|
||||||
@@ -772,8 +748,7 @@ a.admtxt.admbg2:hover {
|
|||||||
-webkit-text-size-adjust: none; }
|
-webkit-text-size-adjust: none; }
|
||||||
.list_item_function a :first-child {
|
.list_item_function a :first-child {
|
||||||
margin-left: 0; }
|
margin-left: 0; }
|
||||||
.datalist_item:hover .list_item_function,
|
.datalist_item:hover .list_item_function {
|
||||||
.list_t_item:hover .list_item_function {
|
|
||||||
bottom: 0; }
|
bottom: 0; }
|
||||||
|
|
||||||
/* App */
|
/* App */
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
.table .listCheckHead,
|
|
||||||
.table .listCheck {
|
|
||||||
width: 30px;
|
|
||||||
vertical-align: middle;
|
|
||||||
padding: 0 0 0 10px!important;
|
|
||||||
}
|
|
||||||
.listCheckHead .list-check,
|
|
||||||
.listCheck .list-check {
|
|
||||||
position: absolute;
|
|
||||||
margin: -12px 0 0 -1px;
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
.listCheckHead i,
|
|
||||||
.listCheck i {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.checkHide td {
|
|
||||||
background-color: #E6E6E6 !important;
|
|
||||||
color: #B9B9B9;
|
|
||||||
}
|
|
||||||
.checkHide a {
|
|
||||||
color: #B9B9B9;
|
|
||||||
}
|
|
||||||
.checkHit td {
|
|
||||||
background-color: #FFFEDB !important;
|
|
||||||
}
|
|
||||||
@@ -280,17 +280,6 @@
|
|||||||
line-height: 26px;
|
line-height: 26px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
.main-forms .attributes-header h4 b {
|
|
||||||
padding: 0 1px;
|
|
||||||
border-style: dotted;
|
|
||||||
border-width: 0 2px;
|
|
||||||
border-color: #AAA;
|
|
||||||
margin-right: 5px;
|
|
||||||
cursor: move;
|
|
||||||
}
|
|
||||||
.main-forms .attributes-header h4 i {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.main-forms .field-type {
|
.main-forms .field-type {
|
||||||
background-color: #f5f5f5;
|
background-color: #f5f5f5;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
@@ -318,7 +307,7 @@
|
|||||||
.main-forms .field-type .control-group:last-child {
|
.main-forms .field-type .control-group:last-child {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
#user-forms .control-group .add-target .input-append,
|
#new-user-forms .control-group .add-target .input-append,
|
||||||
.main-forms .field-type .control-group .add-target .input-append {
|
.main-forms .field-type .control-group .add-target .input-append {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
@@ -335,7 +324,7 @@
|
|||||||
border-radius: 0 4px 4px 0;
|
border-radius: 0 4px 4px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#user-forms .control-group .add-target .input-append input.last {
|
#new-user-forms .control-group .add-target .input-append input.last {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,13 +39,6 @@
|
|||||||
.main-list td {
|
.main-list td {
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
}
|
}
|
||||||
.main-list td input[type="text"] {
|
|
||||||
margin-bottom: 0;
|
|
||||||
margin-left: -.4em;
|
|
||||||
margin-right: 3px;
|
|
||||||
padding: 0 .3em;
|
|
||||||
width: 4em;
|
|
||||||
}
|
|
||||||
.main-list td.action {
|
.main-list td.action {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|||||||
@@ -2,11 +2,6 @@
|
|||||||
#list-view h4 a {
|
#list-view h4 a {
|
||||||
color: #000;
|
color: #000;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
display: block;
|
|
||||||
width: 100%;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
overflow: hidden;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* List */
|
/* List */
|
||||||
@@ -111,31 +106,10 @@
|
|||||||
#list-view #member-abstract .member-avatar .action > a.trash {
|
#list-view #member-abstract .member-avatar .action > a.trash {
|
||||||
background-color: #b94a48;
|
background-color: #b94a48;
|
||||||
}
|
}
|
||||||
/*#list-view #member-abstract .member-avatar:after {
|
#list-view #member-abstract .member-avatar > span {
|
||||||
content: "";
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
width: 250px;
|
||||||
left: 0;
|
height: 120px;
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
display: block;
|
|
||||||
margin: 0;
|
|
||||||
background-color: #000000;
|
|
||||||
-webkit-border-radius: 5px 5px 0 0;
|
|
||||||
-moz-border-radius: 5px 5px 0 0;
|
|
||||||
border-radius: 5px 5px 0 0;
|
|
||||||
opacity: 0;
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
}*/
|
|
||||||
#list-view #member-abstract > li .member-avatar:after {
|
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
display: block;
|
display: block;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: #000000;
|
background-color: #000000;
|
||||||
@@ -146,8 +120,7 @@
|
|||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||||
filter: alpha(opacity=0);
|
filter: alpha(opacity=0);
|
||||||
}
|
}
|
||||||
#list-view #member-abstract > li:hover .member-avatar:after {
|
#list-view #member-abstract > li:hover .member-avatar > span {
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
opacity: .4;
|
opacity: .4;
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
|
||||||
filter: alpha(opacity=40);
|
filter: alpha(opacity=40);
|
||||||
@@ -186,6 +159,11 @@
|
|||||||
float: left;
|
float: left;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
#list-view #member-card > li:hover .member-avatar > span {
|
||||||
|
opacity: 0.4;
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
|
||||||
|
filter: alpha(opacity=40);
|
||||||
|
}
|
||||||
#list-view #member-card > li:hover .member-avatar .action {
|
#list-view #member-card > li:hover .member-avatar .action {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
@@ -205,37 +183,14 @@
|
|||||||
#list-view #member-card .member-avatar.gender-woman {
|
#list-view #member-card .member-avatar.gender-woman {
|
||||||
border-color: #FF3196;
|
border-color: #FF3196;
|
||||||
}
|
}
|
||||||
#list-view #member-card .member-avatar.gender-nene {
|
#list-view #member-card .member-avatar.gender-none {
|
||||||
border-color: #DDDDDD;
|
border-color: #DDDDDD;
|
||||||
}
|
}
|
||||||
#list-view #member-card .member-avatar img {
|
#list-view #member-card .member-avatar img {
|
||||||
/*width: 100%;*/
|
/*width: 100%;*/
|
||||||
max-width: none;
|
max-width: none;
|
||||||
}
|
}
|
||||||
#list-view #member-card > li .member-avatar:after {
|
#list-view #member-card .member-avatar > span {
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
display: block;
|
|
||||||
margin: 0;
|
|
||||||
background-color: #000000;
|
|
||||||
-webkit-border-radius: 50%;
|
|
||||||
-moz-border-radius: 50%;
|
|
||||||
border-radius: 50%;
|
|
||||||
opacity: 0;
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
|
||||||
filter: alpha(opacity=100);
|
|
||||||
}
|
|
||||||
#list-view #member-card > li:hover .member-avatar:after {
|
|
||||||
opacity: .4;
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
|
|
||||||
filter: alpha(opacity=40);
|
|
||||||
}
|
|
||||||
/*#list-view #member-card .member-avatar > span {
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 150px;
|
width: 150px;
|
||||||
height: 150px;
|
height: 150px;
|
||||||
@@ -248,7 +203,7 @@
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||||
filter: alpha(opacity=0);
|
filter: alpha(opacity=0);
|
||||||
}*/
|
}
|
||||||
#list-view #member-card .member-avatar .action {
|
#list-view #member-card .member-avatar .action {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
@@ -307,25 +262,22 @@
|
|||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
#profile #basic-info .member-avatar {
|
#profile #basic-info .member-avatar {
|
||||||
width: 103px;
|
width: 106px;
|
||||||
height: 103px;
|
height: 106px;
|
||||||
float: left;
|
float: left;
|
||||||
|
}
|
||||||
|
#profile #basic-info .member-avatar img {
|
||||||
border: 3px solid #ffffff;
|
border: 3px solid #ffffff;
|
||||||
-webkit-border-radius: 9px;
|
width: 100%;
|
||||||
-moz-border-radius: 9px;
|
max-width: none;
|
||||||
border-radius: 9px;
|
|
||||||
}
|
}
|
||||||
#profile #basic-info .member-avatar:after {
|
#profile #basic-info .member-avatar.gender-man img {
|
||||||
content: "";
|
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
}
|
|
||||||
#profile #basic-info .member-avatar.gender-man {
|
|
||||||
border-color: #34ADFF;
|
border-color: #34ADFF;
|
||||||
}
|
}
|
||||||
#profile #basic-info .member-avatar.gender-woman {
|
#profile #basic-info .member-avatar.gender-woman img {
|
||||||
border-color: #FF3196;
|
border-color: #FF3196;
|
||||||
}
|
}
|
||||||
#profile #basic-info .member-avatar.gender-none {
|
#profile #basic-info .member-avatar.gender-none img {
|
||||||
border-color: #DDDDDD;
|
border-color: #DDDDDD;
|
||||||
}
|
}
|
||||||
#profile #member-roles {
|
#profile #member-roles {
|
||||||
@@ -361,28 +313,21 @@
|
|||||||
#profile #member-roles .roles dd {
|
#profile #member-roles .roles dd {
|
||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
#profile #module-navbar {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
#profile #module-navbar .navbar {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
#profile #member-module {
|
#profile #member-module {
|
||||||
margin-left: 360px;
|
margin-left: 360px;
|
||||||
}
|
}
|
||||||
|
#profile #member-module #module-navbar.scroll-to-fixed-fixed {
|
||||||
|
background-color: #F3F3F3;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
#profile #member-module #module-navbar.scroll-to-fixed-fixed .navbar {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
#profile #member-module #module-content {
|
#profile #member-module #module-content {
|
||||||
padding: 0 0 0 10px;
|
padding: 0 10px;
|
||||||
}
|
|
||||||
#profile #member-module #module-content .content {
|
|
||||||
right: 10px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
#profile #member-module #module-content .list-active {
|
|
||||||
padding-bottom: 8px;
|
|
||||||
/*border-bottom: 1px solid #DDD;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Responsive */
|
/* Responsive */
|
||||||
@media (max-width: 979px) {
|
@media (max-width: 979px) {
|
||||||
#profile #member-info {
|
#profile #member-info {
|
||||||
|
|||||||
@@ -6,22 +6,22 @@
|
|||||||
.tags .lead .badge {
|
.tags .lead .badge {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
.tags-groups {
|
.tags .tags-groups {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0 0 20px;
|
margin: 0 0 20px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.tags-groups:after {
|
.tags .tags-groups:after {
|
||||||
content: "";
|
content: "";
|
||||||
clear: both;
|
clear: both;
|
||||||
height: 0;
|
height: 0;
|
||||||
display: block;
|
display: block;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
.tags-groups.module-tags li.default a {
|
.tags .tags-groups.module-tags li.default a {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
.tags-groups li {
|
.tags .tags-groups li {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
float: left;
|
float: left;
|
||||||
width: auto;
|
width: auto;
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
-o-transition: all .2s linear;
|
-o-transition: all .2s linear;
|
||||||
transition: all .2s linear;
|
transition: all .2s linear;
|
||||||
}
|
}
|
||||||
.tags-groups li.mark {
|
.tags .tags-groups li.mark {
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -49,28 +49,28 @@
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
.tags-groups li.active {
|
.tags .tags-groups li.active {
|
||||||
background-color: #3a87ad;
|
background-color: #3a87ad;
|
||||||
}
|
}
|
||||||
.tags-groups li.active .amount {
|
.tags .tags-groups li.active .amount {
|
||||||
color: #8cb8be;
|
color: #8cb8be;
|
||||||
}
|
}
|
||||||
.tags-groups li a {
|
.tags .tags-groups li a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #ededed;
|
color: #ededed;
|
||||||
}
|
}
|
||||||
.tags-groups li .amount {
|
.tags .tags-groups li .amount {
|
||||||
color: #fdcf3b;
|
color: #fdcf3b;
|
||||||
float: right;
|
float: right;
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
}
|
}
|
||||||
.tags-groups li .card {
|
.tags .tags-groups li .card {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
}
|
}
|
||||||
.tags-groups li .card:after {
|
.tags .tags-groups li .card:after {
|
||||||
font-family: FontAwesome;
|
font-family: FontAwesome;
|
||||||
content: '\f111';
|
content: '\f111';
|
||||||
color: #fdcf3b;
|
color: #fdcf3b;
|
||||||
@@ -82,13 +82,13 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
.tags-groups li .card.active:after {
|
.tags .tags-groups li .card.active:after {
|
||||||
content: '\f058';
|
content: '\f058';
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
left: -2px;
|
left: -2px;
|
||||||
top: 1px;
|
top: 1px;
|
||||||
}
|
}
|
||||||
.tags-groups li .card input {
|
.tags .tags-groups li .card input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
@@ -110,10 +110,10 @@
|
|||||||
#tags-merger form {
|
#tags-merger form {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
#tags-merger .tags-groups li {
|
#tags-merger .tags .tags-groups li {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
#tags-merger .tags-groups li.def {
|
#tags-merger .tags .tags-groups li.def {
|
||||||
background-color: #468847;
|
background-color: #468847;
|
||||||
}
|
}
|
||||||
#tags-merger .modal-body .pull-left {
|
#tags-merger .modal-body .pull-left {
|
||||||
@@ -127,22 +127,22 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.tags-groups li.default {
|
.tags .tags-groups li.default {
|
||||||
background-color: #468847;
|
background-color: #468847;
|
||||||
}
|
}
|
||||||
.tags-groups li.default.active {
|
.tags .tags-groups li.default.active {
|
||||||
background-color: #3a87ad;
|
background-color: #3a87ad;
|
||||||
}
|
}
|
||||||
.tags-groups li.default .amount {
|
.tags .tags-groups li.default .amount {
|
||||||
color: #8cbe9a;
|
color: #8cbe9a;
|
||||||
}
|
}
|
||||||
.tags-groups li.default.active .amount {
|
.tags .tags-groups li.default.active .amount {
|
||||||
color: #8cb8be;
|
color: #8cb8be;
|
||||||
}
|
}
|
||||||
.tags-groups li.default .card:after {
|
.tags .tags-groups li.default .card:after {
|
||||||
color: #8cbe9a;
|
color: #8cbe9a;
|
||||||
}
|
}
|
||||||
.tags-groups li.active .card:after {
|
.tags .tags-groups li.active .card:after {
|
||||||
color: #8cb8be;
|
color: #8cb8be;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,9 +26,6 @@
|
|||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
.topnav .btn-group {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Bottom Nav */
|
/* Bottom Nav */
|
||||||
.bottomnav {
|
.bottomnav {
|
||||||
@@ -44,16 +41,6 @@
|
|||||||
.bottomnav .action {
|
.bottomnav .action {
|
||||||
margin-bottom: 6px;
|
margin-bottom: 6px;
|
||||||
}
|
}
|
||||||
.bottomnav .divider {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
margin: 0 5px;
|
|
||||||
background-color: #E0E0E0;
|
|
||||||
width: 1px;
|
|
||||||
height: 16px;
|
|
||||||
top: 5px;
|
|
||||||
box-shadow: 1px 0 0 #FFF;
|
|
||||||
}
|
|
||||||
.bottomnav .pagination {
|
.bottomnav .pagination {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
class Admin::AdBannersController < OrbitBackendController
|
class Admin::AdBannersController < OrbitBackendController
|
||||||
open_for_visitor :only => [:index, :show]
|
|
||||||
open_for_manager :except => [:index,:show,:update,:realtime_preview]
|
before_filter :force_order_for_visitor,:only=>[:index, :show]
|
||||||
open_for_sub_manager :except => [:index, :show]
|
before_filter :force_order_for_user,:except => [:index, :show]
|
||||||
|
before_filter :for_app_sub_manager,:except => [:index, :show]
|
||||||
|
before_filter :for_app_manager,:except => [:index,:show,:update,:realtime_preview]
|
||||||
|
|
||||||
|
|
||||||
def rename
|
def rename
|
||||||
@ad_banner = AdBanner.find(params[:id])
|
@ad_banner = AdBanner.find(params[:id])
|
||||||
@@ -57,7 +60,6 @@ class Admin::AdBannersController < OrbitBackendController
|
|||||||
def index
|
def index
|
||||||
@ad_banners = AdBanner.all
|
@ad_banners = AdBanner.all
|
||||||
@active = @ad_banners.first
|
@active = @ad_banners.first
|
||||||
@tags = get_tags
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -3,17 +3,7 @@ class Admin::AssetsController < OrbitBackendController
|
|||||||
before_filter :setup_vars
|
before_filter :setup_vars
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.desc(:created_at).page(params[:page]).per(10)
|
@assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.page(params[:page]).per(10)
|
||||||
if params[:type] == "images"
|
|
||||||
@assets = @assets.where(:content_type => /^image/)
|
|
||||||
end
|
|
||||||
@tag = ModuleTag.new
|
|
||||||
|
|
||||||
@module_app = ModuleApp.find(params[:module_app_id]) rescue nil
|
|
||||||
raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
|
|
||||||
@module_app_id = @module_app.id rescue nil
|
|
||||||
|
|
||||||
render :layout => "assets"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@@ -32,8 +22,12 @@ class Admin::AssetsController < OrbitBackendController
|
|||||||
|
|
||||||
def edit
|
def edit
|
||||||
@asset = Asset.find(params[:id])
|
@asset = Asset.find(params[:id])
|
||||||
|
@asset_categories = AssetCategory.all
|
||||||
@tags = get_tags
|
@tags = get_tags
|
||||||
render layout: false
|
respond_to do |format|
|
||||||
|
format.html {}
|
||||||
|
format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/edit'} }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@@ -70,7 +64,10 @@ class Admin::AssetsController < OrbitBackendController
|
|||||||
def update
|
def update
|
||||||
@asset = Asset.find(params[:id])
|
@asset = Asset.find(params[:id])
|
||||||
if @asset.update_attributes(params[:asset])
|
if @asset.update_attributes(params[:asset])
|
||||||
render layout: false
|
respond_to do |format|
|
||||||
|
format.html { redirect_to admin_assets_url }
|
||||||
|
format.js { render 'js/remove_pop_up_and_reload_content', :locals => {:function => 'replaceWith', :id => "asset_#{@asset.id}", :value => @asset, :values => nil, :partial => 'admin/assets/asset', :locals => nil} }
|
||||||
|
end
|
||||||
else
|
else
|
||||||
flash[:error] = t('update.fail')
|
flash[:error] = t('update.fail')
|
||||||
@asset_categories = AssetCategory.all
|
@asset_categories = AssetCategory.all
|
||||||
@@ -98,31 +95,11 @@ class Admin::AssetsController < OrbitBackendController
|
|||||||
redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options])
|
redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options])
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete_files
|
|
||||||
@files = params[:files]
|
|
||||||
@files.each do |file|
|
|
||||||
asset = Asset.find(file)
|
|
||||||
asset.destroy
|
|
||||||
end
|
|
||||||
@assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.desc(:created_at).page(params[:page]).per(10)
|
|
||||||
if params[:type] == "images"
|
|
||||||
@assets = @assets.where(:content_type => /^image/)
|
|
||||||
end
|
|
||||||
# render :json =>{"success"=>true}.to_json
|
|
||||||
end
|
|
||||||
|
|
||||||
def file_upload
|
def file_upload
|
||||||
@files = params['files']
|
@asset = Asset.new
|
||||||
a = Array.new
|
@asset_categories = AssetCategory.all
|
||||||
@files.each do |file|
|
@tags = get_tags
|
||||||
@asset = current_user.assets.new
|
render :layout => false
|
||||||
@asset.data = file
|
|
||||||
@asset.title_translations = {:en => file.original_filename, :zh_tw => file.original_filename}
|
|
||||||
# @asset.title_translations[:zh_tw] = file.original_filename
|
|
||||||
@asset.save!
|
|
||||||
a << {"url"=>@asset.data.url}
|
|
||||||
end
|
|
||||||
render :json=>{"files"=>a}.to_json
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_select
|
def file_select
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
class Admin::AuthorizationsController < OrbitBackendController
|
class Admin::AuthorizationsController < OrbitBackendController
|
||||||
|
|
||||||
prepend_before_filter :admin_or_manager
|
before_filter :admin_or_manager
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@module_apps ||= ModuleApp.any_of({is_authorizable: true}, {is_approvable: true}).order_by([:title, :asc])
|
@module_apps ||= ModuleApp.where(is_authorizable: true).order_by([:title, :asc])
|
||||||
if @module_apps && @module_apps.include?(@module_app)
|
if @module_apps && @module_apps.include?(@module_app)
|
||||||
if @type
|
if @type
|
||||||
case @type
|
case @type
|
||||||
when 'category_authorization', 'category_approval'
|
when 'category', 'approval'
|
||||||
if @module_app.has_category
|
if @module_app.has_category
|
||||||
@objects = @module_app.categories
|
@objects = @module_app.categories
|
||||||
else
|
else
|
||||||
@@ -18,12 +18,12 @@ class Admin::AuthorizationsController < OrbitBackendController
|
|||||||
end
|
end
|
||||||
unless @objects.blank?
|
unless @objects.blank?
|
||||||
@object ||= @objects.first
|
@object ||= @objects.first
|
||||||
@users = @object.get_authorization_by_title("#{@type}_#{@module_app.key}").authorized_users rescue nil
|
@users = @object.get_object_auth_by_title("#{@type}_#{@module_app.key}").auth_users
|
||||||
else
|
else
|
||||||
@error = t(:no_data)
|
@error = t(:no_data)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@users = @module_app.managers
|
@users = @module_app.managing_users
|
||||||
end
|
end
|
||||||
elsif @module_apps
|
elsif @module_apps
|
||||||
@module_app = @module_apps.first
|
@module_app = @module_apps.first
|
||||||
@@ -33,42 +33,35 @@ class Admin::AuthorizationsController < OrbitBackendController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_roles
|
def add(users)
|
||||||
roles = Role.find(params[:role_ids]) rescue []
|
unless users.blank?
|
||||||
users = []
|
if @type
|
||||||
roles.each do |role|
|
if @object
|
||||||
users += role.users.all.entries
|
object_auth = @object.get_object_auth_by_title("#{@type}_#{@module_app.key}")
|
||||||
|
add_users_to_object_auth(object_auth, users)
|
||||||
|
else
|
||||||
|
@error = t(:no_data)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
add_managers(users) unless users.blank?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
unless roles.blank?
|
@users = users
|
||||||
authorization = get_or_create_authorization
|
render 'admin/authorizations/insert_users'
|
||||||
add_roles_to_auth(authorization, roles) unless @error
|
|
||||||
end
|
|
||||||
@users = authorization.authorized_users
|
|
||||||
render 'admin/authorizations/reload_users'
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_sub_roles
|
|
||||||
sub_roles = SubRole.find(params[:sub_role_ids]) rescue []
|
|
||||||
users = []
|
|
||||||
sub_roles.each do |sub_role|
|
|
||||||
users += sub_role.users.all.entries
|
|
||||||
end
|
|
||||||
unless sub_roles.blank?
|
|
||||||
authorization = get_or_create_authorization
|
|
||||||
add_sub_roles_to_auth(authorization, sub_roles) unless @error
|
|
||||||
end
|
|
||||||
@users = authorization.authorized_users
|
|
||||||
render 'admin/authorizations/reload_users'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_users
|
def add_users
|
||||||
users = User.find(params[:user_ids]) rescue []
|
users = User.find(params[:user_ids]) rescue []
|
||||||
unless users.blank?
|
add(users)
|
||||||
authorization = get_or_create_authorization
|
end
|
||||||
add_users_to_auth(authorization, users) unless @error
|
|
||||||
|
def add_roles
|
||||||
|
roles = Role.find(params[:role_ids]) rescue []
|
||||||
|
users = roles.inject([]) do |users, role|
|
||||||
|
users += role.users.all.entries
|
||||||
|
users
|
||||||
end
|
end
|
||||||
@users = authorization.authorized_users
|
add(users)
|
||||||
render 'admin/authorizations/reload_users'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def modal_select
|
def modal_select
|
||||||
@@ -77,111 +70,63 @@ class Admin::AuthorizationsController < OrbitBackendController
|
|||||||
if @type
|
if @type
|
||||||
@object_id = @object.id if @object
|
@object_id = @object.id if @object
|
||||||
@sorted_users = roles.inject({}) do |users, role|
|
@sorted_users = roles.inject({}) do |users, role|
|
||||||
users[role] = role.users.where(admin: false) - existing_users - @module_app.managers
|
users[role] = role.users.where(admin: false).not_guest_user - existing_users - @module_app.managing_users
|
||||||
users
|
users
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@sorted_users = roles.inject({}) do |users, role|
|
@sorted_users = roles.inject({}) do |users, role|
|
||||||
users[role] = role.users.where(admin: false) - existing_users
|
users[role] = role.users.where(admin: false).not_guest_user - existing_users
|
||||||
users
|
users
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_roles
|
|
||||||
roles = Role.find(params[:role_ids]) rescue []
|
|
||||||
unless roles.blank?
|
|
||||||
authorization = get_or_create_authorization
|
|
||||||
remove_roles_form_auth(authorization, roles)
|
|
||||||
end
|
|
||||||
@users = authorization.authorized_users
|
|
||||||
render 'admin/authorizations/reload_users'
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_sub_roles
|
|
||||||
sub_roles = SubRole.find(params[:sub_role_ids]) rescue []
|
|
||||||
unless sub_roles.blank?
|
|
||||||
authorization = get_or_create_authorization
|
|
||||||
remove_sub_roles_from_auth(authorization, sub_roles)
|
|
||||||
end
|
|
||||||
@users = authorization.authorized_users
|
|
||||||
render 'admin/authorizations/reload_users'
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_users
|
def remove_users
|
||||||
@users = User.find(params[:ids]) rescue []
|
@users = User.find(params[:ids]) rescue []
|
||||||
unless @users.blank?
|
unless @users.blank?
|
||||||
authorization = get_or_create_authorization
|
if @type
|
||||||
remove_users_from_auth(authorization, @users)
|
if @object
|
||||||
|
object_auth = @object.get_object_auth_by_title("#{@type}_#{@module_app.key}")
|
||||||
|
remove_users_form_object_auth(object_auth, @users)
|
||||||
|
else
|
||||||
|
@error = t(:no_data)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
remove_managers(@users)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@users = authorization.authorized_users
|
render 'admin/authorizations/remove_users'
|
||||||
render 'admin/authorizations/reload_users'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def add_managers_to_auth(users)
|
def add_managers(users)
|
||||||
@module_app.add_managers(users)
|
users.each do |user|
|
||||||
end
|
@module_app.assign_manager(user, current_user)
|
||||||
|
|
||||||
def add_roles_to_auth(authorization, roles)
|
|
||||||
authorization.add_roles(roles)
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_sub_roles_to_auth(authorization, sub_roles)
|
|
||||||
authorization.add_sub_roles(sub_roles)
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_users_to_auth(authorization, users)
|
|
||||||
authorization.add_users(users)
|
|
||||||
end
|
|
||||||
|
|
||||||
def get_or_create_authorization
|
|
||||||
case @type
|
|
||||||
when 'category_approval'
|
|
||||||
if @object
|
|
||||||
@object.auth_approval || @object.create_auth_approval(module_app_id: @module_app.id, title: "#{@type}_#{@module_app.key}")
|
|
||||||
else
|
|
||||||
@error = t(:no_data)
|
|
||||||
end
|
|
||||||
when 'category_authorization'
|
|
||||||
if @object
|
|
||||||
@object.auth_sub_manager || @object.create_auth_sub_manager(module_app_id: @module_app.id, title: "#{@type}_#{@module_app.key}")
|
|
||||||
else
|
|
||||||
@error = t(:no_data)
|
|
||||||
end
|
|
||||||
when nil
|
|
||||||
@module_app.auth_manager || @module_app.create_auth_manager(module_app_id: @module_app.id, title: "#{@type}_#{@module_app.key}")
|
|
||||||
else
|
|
||||||
auth = @object.get_authorization_by_title("#{@type}_#{@module_app.key}")
|
|
||||||
unless auth
|
|
||||||
auth = @object.create_auth_approval(module_app_id: @module_app.id, title: "#{@type}_#{@module_app.key}") if @type.include?('approval')
|
|
||||||
auth = @object.create_auth_sub_manager(module_app_id: @module_app.id, title: "#{@type}_#{@module_app.key}") if @type.include?('authorization')
|
|
||||||
end
|
|
||||||
auth
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_managers_from_auth(users)
|
def add_users_to_object_auth(object_auth, users)
|
||||||
@module_app.remove_manager(users)
|
users.each do |user|
|
||||||
|
object_auth.add_user_to_privilege_list(user)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_roles_form_auth(authorization, roles)
|
def remove_managers(users)
|
||||||
authorization.remove_roles(roles)
|
users.each do |user|
|
||||||
|
@module_app.remove_manager(user)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_sub_roles_from_auth(authorization, sub_roles)
|
def remove_users_form_object_auth(object_auth, users)
|
||||||
authorization.remove_sub_roles(sub_roles)
|
users.each do |user|
|
||||||
end
|
object_auth.remove_user_from_privilege_list(user)
|
||||||
|
end
|
||||||
def remove_users_from_auth(authorization, users)
|
|
||||||
authorization.remove_users(users)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def admin_or_manager
|
def admin_or_manager
|
||||||
@override_can_use = true
|
|
||||||
setup_vars
|
setup_vars
|
||||||
authenticate_user!
|
authenticate_user!
|
||||||
user_is_manager?
|
user_is_manager?
|
||||||
@@ -191,7 +136,7 @@ class Admin::AuthorizationsController < OrbitBackendController
|
|||||||
@module_app = ModuleApp.first(conditions: {:key => params[:module]} ) if params[:module]
|
@module_app = ModuleApp.first(conditions: {:key => params[:module]} ) if params[:module]
|
||||||
@type = params[:type].underscore if params[:type]
|
@type = params[:type].underscore if params[:type]
|
||||||
if @type
|
if @type
|
||||||
@klass = @type.gsub('_authorization', '').gsub('_approval', '').classify.constantize rescue nil
|
@klass = @type.classify.constantize rescue nil
|
||||||
@object = @klass.find(params[:id]) rescue nil
|
@object = @klass.find(params[:id]) rescue nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
class Admin::DashboardsController < OrbitBackendController
|
class Admin::DashboardsController < OrbitBackendController
|
||||||
|
|
||||||
open_for_visitor
|
#before_filter :set_current_user
|
||||||
|
#before_filter :authenticate_user!, :except => [:index]
|
||||||
|
# before_filter :is_admin?
|
||||||
|
|
||||||
layout "basic_back_end"
|
layout "basic_back_end"
|
||||||
|
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
class Admin::PersonalPluginIntrosController < OrbitMemberController
|
|
||||||
|
|
||||||
include OrbitControllerLib::DivisionForDisable
|
|
||||||
|
|
||||||
before_filter :authenticate_user!
|
|
||||||
before_filter :is_admin?
|
|
||||||
|
|
||||||
|
|
||||||
def index
|
|
||||||
|
|
||||||
get_types
|
|
||||||
@plugin_intro = @types.where(:user_id => params[:user_id]).first
|
|
||||||
|
|
||||||
if @plugin_intro.blank?
|
|
||||||
|
|
||||||
@set_type = @types.new()
|
|
||||||
@url = eval("panel_#{@app_type_name}_back_end_#{@app_type}s_path(:user_id=>params[:user_id])")
|
|
||||||
@verb = :post
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
@set_type = @types.find(@plugin_intro.id)
|
|
||||||
@url = polymorphic_path(["panel_#{@app_type_name}_back_end", @plugin_intro])
|
|
||||||
@verb = :put
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def show
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def new
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def edit
|
|
||||||
end
|
|
||||||
|
|
||||||
def create
|
|
||||||
|
|
||||||
get_types
|
|
||||||
|
|
||||||
@plugin_intro = @types.new(params[:plugin_intro])
|
|
||||||
|
|
||||||
respond_to do |format|
|
|
||||||
if @plugin_intro.save
|
|
||||||
format.html { redirect_to(admin_users_new_interface_url(:id=>params[:plugin_intro][:user_id],:show_plugin_profile=>@reback_name)) }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def update
|
|
||||||
|
|
||||||
get_types
|
|
||||||
|
|
||||||
@plugin_intro = @types.find(params[:id])
|
|
||||||
|
|
||||||
respond_to do |format|
|
|
||||||
|
|
||||||
if @plugin_intro.update_attributes(params[:plugin_intro])
|
|
||||||
format.html { redirect_to(admin_users_new_interface_url(:id=>params[:plugin_intro][:user_id],:show_plugin_profile=>@reback_name)) }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def destroy
|
|
||||||
end
|
|
||||||
|
|
||||||
protected
|
|
||||||
|
|
||||||
def get_types
|
|
||||||
@types = @app_type.classify.constantize
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -4,19 +4,19 @@ class Admin::PluginsController < ApplicationController
|
|||||||
|
|
||||||
def index
|
def index
|
||||||
|
|
||||||
@plugins = OrbitApp::Plugin::Registration.all
|
@plugins = OrbitApp::Plugin::Registration.all
|
||||||
|
|
||||||
if(!params[:show_plugin_profile].nil?)
|
if(!params[:show_plugin_profile].nil?)
|
||||||
|
|
||||||
@right_partial = OrbitApp::Plugin::Registration.find_by_app_name(params[:show_plugin_profile]).admin_partial_path
|
@right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).admin_partial_path
|
||||||
|
|
||||||
if !@right_partial.blank?
|
if !@right_partial.blank?
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to( @right_partial ) }
|
format.html { redirect_to( @right_partial ) }
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@right_partial = ""
|
@right_partial = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
@right_partial = ""
|
@right_partial = ""
|
||||||
|
|||||||
@@ -55,15 +55,6 @@ class Admin::SitesController < OrbitBackendController
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def search_engine
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
def preference
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
def ui_theme
|
def ui_theme
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
class Admin::TagsController < OrbitBackendController
|
class Admin::TagsController < OrbitBackendController
|
||||||
include OrbitTag::Merging
|
include OrbitTag::Merging
|
||||||
|
|
||||||
|
before_filter :force_order_for_visitor, only: [:index]
|
||||||
|
before_filter :force_order_for_user, except: [:index]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@tags = @module_app.module_tags
|
@tags = @module_app.module_tags
|
||||||
|
|||||||
@@ -1,10 +1,19 @@
|
|||||||
class Admin::UsersNewInterfaceController < OrbitMemberController
|
class Admin::UsersNewInterfaceController < OrbitMemberController
|
||||||
|
|
||||||
helper MemberHelper
|
helper MemberHelper
|
||||||
helper OrbitBackendHelper
|
|
||||||
|
|
||||||
|
# before_filter :authenticate_user!
|
||||||
|
# before_filter :set_attribute, :only => [:index, :show, :new, :edit]
|
||||||
|
|
||||||
|
before_filter :force_order_for_visitor,:only=>[:index,:show]
|
||||||
|
before_filter :force_order_for_user,:except => [:index,:show]
|
||||||
before_filter :set_attribute,:except => [:index,:show]
|
before_filter :set_attribute,:except => [:index,:show]
|
||||||
open_for_visitor :only => [:index, :show]
|
|
||||||
|
def setup_vars
|
||||||
|
# @app_title ||= controller_path.split('/')[1].singularize
|
||||||
|
# @module_app ||= ModuleApp.first(conditions: {:key => @app_title} )
|
||||||
|
# raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
|
||||||
|
end
|
||||||
|
|
||||||
def index
|
def index
|
||||||
get_tags
|
get_tags
|
||||||
@@ -17,64 +26,50 @@ class Admin::UsersNewInterfaceController < OrbitMemberController
|
|||||||
|
|
||||||
|
|
||||||
@filter = params[:filter]
|
@filter = params[:filter]
|
||||||
@mq = params[:mq]
|
new_filter = params[:new_filter]
|
||||||
@new_filter = params[:new_filter]
|
|
||||||
|
|
||||||
if @filter && params[:clear]
|
if @filter && params[:clear]
|
||||||
@filter.delete(params[:type])
|
@filter.delete(params[:type])
|
||||||
elsif @filter && @new_filter
|
elsif @filter && new_filter
|
||||||
if @filter.has_key?(@new_filter[:type]) && @filter[@new_filter[:type]].include?(@new_filter[:id].to_s)
|
if @filter.has_key?(new_filter[:type]) && @filter[new_filter[:type]].include?(new_filter[:id].to_s)
|
||||||
@filter[@new_filter[:type]].delete(@new_filter[:id].to_s)
|
@filter[new_filter[:type]].delete(new_filter[:id].to_s)
|
||||||
elsif @filter.has_key?(@new_filter[:type])
|
elsif @filter.has_key?(new_filter[:type])
|
||||||
@filter[@new_filter[:type]] << @new_filter[:id].to_s
|
@filter[new_filter[:type]] << new_filter[:id].to_s
|
||||||
else
|
else
|
||||||
@filter.merge!({@new_filter[:type] => [@new_filter[:id].to_s]})
|
@filter.merge!({new_filter[:type] => [new_filter[:id].to_s]})
|
||||||
end
|
end
|
||||||
elsif @new_filter
|
elsif new_filter
|
||||||
@filter = {@new_filter[:type] => [@new_filter[:id].to_s]}
|
@filter = {new_filter[:type] => [new_filter[:id].to_s]}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if @filter.blank? and @mq.blank?
|
if @filter.blank?
|
||||||
|
|
||||||
render case params[:at]
|
render case params[:at]
|
||||||
when 'summary'
|
when 'summary'
|
||||||
@users=User.not_guest_user.page(page_num).per(12).desc("_id").includes('avatar')
|
@users=User.not_guest_user.page(page_num).per(12).asc("_id").includes('avatar')
|
||||||
"index_summary"
|
"index_summary"
|
||||||
when 'thumbnail'
|
when 'thumbnail'
|
||||||
@users=User.not_guest_user.page(page_num).per(36).desc("_id").includes('avatar')
|
@users=User.not_guest_user.page(page_num).per(36).asc("_id").includes('avatar')
|
||||||
"index_thumbnail"
|
"index_thumbnail"
|
||||||
else
|
else
|
||||||
@users=User.not_guest_user.page(page_num).per(10).desc("_id").includes('avatar')
|
@users=User.not_guest_user.page(page_num).per(10).asc("_id").includes('avatar')
|
||||||
"index"
|
"index"
|
||||||
end
|
end
|
||||||
|
|
||||||
elsif @filter.blank? and !@mq.blank?
|
else
|
||||||
|
|
||||||
render case params[:at]
|
render case params[:at]
|
||||||
when 'summary'
|
when 'summary'
|
||||||
@users=User.not_guest_user.any_of({:user_id => /#{@mq}/i}, {:first_name => /#{@mq}/i}, {:last_name => /#{@mq}/i}, {:email => /#{@mq}/i}, {:office_tel => /#{@mq}/i}).desc("_id").includes('avatar')
|
@users=User.not_guest_user.any_in(:role_ids=>@filter['role']).page(page_num).per(12).asc("_id").includes('avatar')
|
||||||
"index_summary"
|
"index_summary"
|
||||||
when 'thumbnail'
|
when 'thumbnail'
|
||||||
@users=User.not_guest_user.any_of({:user_id => /#{@mq}/i}, {:first_name => /#{@mq}/i}, {:last_name => /#{@mq}/i}, {:email => /#{@mq}/i}, {:office_tel => /#{@mq}/i}).desc("_id").includes('avatar')
|
@users=User.not_guest_user.any_in(:role_ids=>@filter['role']).page(page_num).per(36).asc("_id").includes('avatar')
|
||||||
"index_thumbnail"
|
"index_thumbnail"
|
||||||
else
|
else
|
||||||
@users=User.not_guest_user.any_of({:user_id => /#{@mq}/i}, {:first_name => /#{@mq}/i}, {:last_name => /#{@mq}/i}, {:email => /#{@mq}/i}, {:office_tel => /#{@mq}/i}).desc("_id").includes('avatar')
|
@users=User.not_guest_user.any_in(:role_ids=>@filter['role']).page(page_num).per(10).asc("_id").includes('avatar')
|
||||||
"index"
|
|
||||||
end
|
|
||||||
|
|
||||||
elsif !@filter.blank? and @mq.blank?
|
|
||||||
|
|
||||||
render case params[:at]
|
|
||||||
when 'summary'
|
|
||||||
@users=User.not_guest_user.any_in(:role_ids=>@filter['role']).page(page_num).per(12).desc("_id").includes('avatar')
|
|
||||||
"index_summary"
|
|
||||||
when 'thumbnail'
|
|
||||||
@users=User.not_guest_user.any_in(:role_ids=>@filter['role']).page(page_num).per(36).desc("_id").includes('avatar')
|
|
||||||
"index_thumbnail"
|
|
||||||
else
|
|
||||||
@users=User.not_guest_user.any_in(:role_ids=>@filter['role']).page(page_num).per(10).desc("_id").includes('avatar')
|
|
||||||
"index"
|
"index"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -83,18 +78,9 @@ class Admin::UsersNewInterfaceController < OrbitMemberController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
|
||||||
@user = User.find(params[:id])
|
@user = User.find(params[:id])
|
||||||
|
|
||||||
@plugins = OrbitApp::Plugin::Registration.all
|
@plugins = OrbitApp::Plugin::Registration.all
|
||||||
|
|
||||||
@ppname = Array.new
|
|
||||||
@plugins.each do |aa|
|
|
||||||
@ppname << [aa.sort_number.to_i, [aa.name, aa.app_name, aa.intro_app_name, aa.front_partial_path]]
|
|
||||||
end
|
|
||||||
@plugin_shows = @ppname.sort.collect {|v| {"name"=>v[1][0],"app_name"=>v[1][1],"intro_app_name"=>v[1][2],"front_partial_path"=>v[1][3]} }
|
|
||||||
|
|
||||||
|
|
||||||
@profile_data = []
|
@profile_data = []
|
||||||
@teacher_data = []
|
@teacher_data = []
|
||||||
@student_data = []
|
@student_data = []
|
||||||
@@ -107,11 +93,9 @@ class Admin::UsersNewInterfaceController < OrbitMemberController
|
|||||||
|
|
||||||
|
|
||||||
if(!params[:show_plugin_profile].nil?)
|
if(!params[:show_plugin_profile].nil?)
|
||||||
@right_partial = OrbitApp::Plugin::Registration.find_by_app_name(params[:show_plugin_profile]).profile_partial_path rescue 'plugin_summary'
|
@right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).profile_partial_path rescue 'plugin_summary'
|
||||||
@plugin_app_name = OrbitApp::Plugin::Registration.find_by_app_name(params[:show_plugin_profile]).name rescue nil
|
|
||||||
else
|
else
|
||||||
@right_partial = "plugin_summary"
|
@right_partial = "plugin_summary"
|
||||||
@plugin_app_name = ''
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# @user.attribute_values.each{|att_val|
|
# @user.attribute_values.each{|att_val|
|
||||||
@@ -241,39 +225,7 @@ class Admin::UsersNewInterfaceController < OrbitMemberController
|
|||||||
@user.destroy
|
@user.destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
# redirect_to :action => :index
|
redirect_to :action => :index
|
||||||
respond_to do |format|
|
|
||||||
format.html { redirect_to(admin_users_new_interface_index_url(:at=>params[:at])) }
|
|
||||||
# format.xml { head :ok }
|
|
||||||
format.js
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit_order
|
|
||||||
@users = User.not_guest_user
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_order
|
|
||||||
if params[:users].present?
|
|
||||||
params[:users].values.sort.each do |pair|
|
|
||||||
to_go = pair[0].to_i
|
|
||||||
if to_go > 0
|
|
||||||
user_at_position = User.where(position: to_go - 1).first
|
|
||||||
user = User.find(pair[1])
|
|
||||||
if user_at_position && !(user_at_position == user)
|
|
||||||
if user.position > user_at_position.position
|
|
||||||
user.move_above(user_at_position)
|
|
||||||
else
|
|
||||||
user.move_below(user_at_position)
|
|
||||||
end
|
|
||||||
elsif to_go > User.count
|
|
||||||
user.move_to_bottom
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@users = User.not_guest_user
|
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|||||||
@@ -145,14 +145,11 @@ class ApplicationController < ActionController::Base
|
|||||||
condition = VALID_LOCALES.include?(session[:locale])
|
condition = VALID_LOCALES.include?(session[:locale])
|
||||||
elsif session[:locale]
|
elsif session[:locale]
|
||||||
condition = @site.in_use_locales.include?(session[:locale])
|
condition = @site.in_use_locales.include?(session[:locale])
|
||||||
elsif @site.default_locale.present?
|
|
||||||
default_locale = @site.default_locale
|
|
||||||
condition = @site.valid_locales.include?(default_locale)
|
|
||||||
else
|
else
|
||||||
browser_locale = request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first rescue nil
|
browser_locale = request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first rescue nil
|
||||||
condition = @site.in_use_locales.include?(browser_locale)
|
condition = @site.in_use_locales.include?(browser_locale)
|
||||||
end
|
end
|
||||||
session[:locale] = condition ? (default_locale || browser_locale || session[:locale]) : I18n.default_locale.to_s
|
session[:locale] = condition ? (browser_locale || session[:locale]) : I18n.default_locale.to_s
|
||||||
I18n.locale = session[:locale].to_sym
|
I18n.locale = session[:locale].to_sym
|
||||||
@site_in_use_locales = site_locales_default_head(@site.in_use_locales)
|
@site_in_use_locales = site_locales_default_head(@site.in_use_locales)
|
||||||
@site_valid_locales = site_locales_default_head(@site.valid_locales)
|
@site_valid_locales = site_locales_default_head(@site.valid_locales)
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
class DesktopController< ApplicationController
|
class DesktopController< ApplicationController
|
||||||
layout 'desktop'
|
layout 'desktop'
|
||||||
before_filter :authenticate_user!
|
before_filter :authenticate_user!
|
||||||
before_filter :check_desktop_open, :only => [:index,:show]
|
|
||||||
|
|
||||||
#to load pages...
|
#to load pages...
|
||||||
|
|
||||||
# caches_page :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@desktop = current_user.desktop
|
@desktop = current_user.desktop
|
||||||
@currentusername = current_user.name
|
@currentusername = current_user.name
|
||||||
@currentname = current_user.first_name + current_user.last_name
|
|
||||||
@title = "Desktop - " + @currentusername
|
@title = "Desktop - " + @currentusername
|
||||||
@section = @desktop.sections.first
|
@section = @desktop.sections.first
|
||||||
end
|
end
|
||||||
@@ -339,14 +335,7 @@ class DesktopController< ApplicationController
|
|||||||
b = {"success"=>"true"}
|
b = {"success"=>"true"}
|
||||||
render :json=>b.to_json
|
render :json=>b.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def check_desktop_open
|
|
||||||
if Me.desktop_closed && current_user.nil? #Need to be change
|
|
||||||
redirect_to '/admin/dashboards'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
class DesktopThemesController < ApplicationController
|
class DesktopThemesController < OrbitBackendController
|
||||||
require "net/http"
|
require "net/http"
|
||||||
require "uri"
|
require "uri"
|
||||||
require 'zip/zip'
|
require 'zip/zip'
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ class FrontController < ApplicationController
|
|||||||
res << " active" if (current_page.id.eql?(page.id) || current_page.descendant_of?(page))
|
res << " active" if (current_page.id.eql?(page.id) || current_page.descendant_of?(page))
|
||||||
res << "'>"
|
res << "'>"
|
||||||
root = "/"
|
root = "/"
|
||||||
res << "<a href='#{(page.class.to_s.eql?('Page') ? root + page.path : page.url)}' target=#{(page.class.to_s.eql?('Page') ? '_self' : '_blank')} ><span>#{page.title}</span></a>"
|
res << "<a href='#{(page.class.to_s.eql?('Page') ? root + page.path : page.url)}'><span>#{page.title}</span></a>"
|
||||||
if page.visible_children.size > 0 && current < menu.levels
|
if page.visible_children.size > 0 && current < menu.levels
|
||||||
res << "<span class='dot'></span>"
|
res << "<span class='dot'></span>"
|
||||||
res << menu_level(page, current_page, current + 1, menu)
|
res << menu_level(page, current_page, current + 1, menu)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
class OrbitBackendController < ApplicationController
|
class OrbitBackendController < ApplicationController
|
||||||
include OrbitCategory::Categorizing
|
include OrbitCategory::Categorizing
|
||||||
include OrbitCoreLib::Authorization
|
include OrbitCoreLib::AppBackendUtility
|
||||||
|
include OrbitCoreLib::PermissionUtility
|
||||||
include OrbitTag::Tagging
|
include OrbitTag::Tagging
|
||||||
include AdminHelper
|
include AdminHelper
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
@@ -9,6 +10,12 @@ class OrbitBackendController < ApplicationController
|
|||||||
|
|
||||||
layout "back_end"
|
layout "back_end"
|
||||||
|
|
||||||
|
def setup_vars
|
||||||
|
@app_title ||= controller_path.split('/')[1].singularize
|
||||||
|
@module_app ||= ModuleApp.first(conditions: {:key => @app_title} )
|
||||||
|
raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
|
||||||
|
end
|
||||||
|
|
||||||
def get_statuses
|
def get_statuses
|
||||||
status = []
|
status = []
|
||||||
status << 'is_top'
|
status << 'is_top'
|
||||||
@@ -21,4 +28,27 @@ class OrbitBackendController < ApplicationController
|
|||||||
end
|
end
|
||||||
status
|
status
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def force_order_for_visitor
|
||||||
|
check_backend_openness
|
||||||
|
setup_vars
|
||||||
|
set_current_user
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def force_order_for_user
|
||||||
|
setup_vars
|
||||||
|
set_current_user
|
||||||
|
authenticate_user!
|
||||||
|
check_user_can_use
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_user_can_use
|
||||||
|
unless check_permission
|
||||||
|
#redirect_to polymorphic_path(['panel',@app_title,'back_end','public'])
|
||||||
|
redirect_to root_url
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
class OrbitMemberController < ApplicationController
|
class OrbitMemberController < ApplicationController
|
||||||
include OrbitCategory::Categorizing
|
include OrbitCategory::Categorizing
|
||||||
include OrbitCoreLib::Authorization
|
include OrbitCoreLib::AppBackendUtility
|
||||||
|
include OrbitCoreLib::PermissionUtility
|
||||||
include OrbitTag::Tagging
|
include OrbitTag::Tagging
|
||||||
include AdminHelper
|
include AdminHelper
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
@@ -9,6 +10,12 @@ class OrbitMemberController < ApplicationController
|
|||||||
|
|
||||||
layout "member"
|
layout "member"
|
||||||
|
|
||||||
|
def setup_vars
|
||||||
|
@app_title ||= controller_path.split('/')[1].singularize
|
||||||
|
@module_app ||= ModuleApp.first(conditions: {:key => @app_title} )
|
||||||
|
raise ModuleAppError, 'Can not find ModuleApp' if @module_app.nil?
|
||||||
|
end
|
||||||
|
|
||||||
def get_statuses
|
def get_statuses
|
||||||
status = []
|
status = []
|
||||||
status << 'is_top'
|
status << 'is_top'
|
||||||
@@ -21,4 +28,27 @@ class OrbitMemberController < ApplicationController
|
|||||||
end
|
end
|
||||||
status
|
status
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def force_order_for_visitor
|
||||||
|
check_backend_openness
|
||||||
|
setup_vars
|
||||||
|
set_current_user
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def force_order_for_user
|
||||||
|
setup_vars
|
||||||
|
set_current_user
|
||||||
|
authenticate_user!
|
||||||
|
check_user_can_use
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_user_can_use
|
||||||
|
unless check_permission
|
||||||
|
#redirect_to polymorphic_path(['panel',@app_title,'back_end','public'])
|
||||||
|
redirect_to root_url
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@@ -4,6 +4,12 @@ class PagesController < ApplicationController
|
|||||||
before_filter :check_frontend_open, :only => [:index,:show]
|
before_filter :check_frontend_open, :only => [:index,:show]
|
||||||
# caches_page :index
|
# caches_page :index
|
||||||
|
|
||||||
|
def check_frontend_open
|
||||||
|
if Me.frontend_closed and current_user.nil? #Need to be change
|
||||||
|
redirect_to '/admin/dashboards'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@item = Page.find_by_name('home')
|
@item = Page.find_by_name('home')
|
||||||
|
|
||||||
@@ -111,12 +117,6 @@ class PagesController < ApplicationController
|
|||||||
end
|
end
|
||||||
raise PageError,'Missing Frontend Page' if @item.nil?
|
raise PageError,'Missing Frontend Page' if @item.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_frontend_open
|
|
||||||
if Me.frontend_closed && current_user.nil? #Need to be change
|
|
||||||
redirect_to '/admin/dashboards'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def save_from_no_lang_for_page
|
def save_from_no_lang_for_page
|
||||||
if @item.nil? or !@item.enabled_for_lang(I18n.locale.to_s)
|
if @item.nil? or !@item.enabled_for_lang(I18n.locale.to_s)
|
||||||
|
|||||||
@@ -7,5 +7,5 @@ module Admin::AssetsHelper
|
|||||||
end
|
end
|
||||||
a.join(' - ')
|
a.join(' - ')
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -271,7 +271,11 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show_avatar(user)
|
def show_avatar(user)
|
||||||
image_tag(user.avatar.thumb.url)
|
if (user.avatar? rescue false)
|
||||||
|
image_tag(user.avatar.thumb.url)
|
||||||
|
else
|
||||||
|
image_tag "person.png"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# NTU link
|
# NTU link
|
||||||
|
|||||||
@@ -34,8 +34,7 @@ module AttributeFieldsHelper
|
|||||||
value = (can_muti_lang_input? ? @prefiled_value[key] : @prefiled_value) rescue nil
|
value = (can_muti_lang_input? ? @prefiled_value[key] : @prefiled_value) rescue nil
|
||||||
key_field = can_muti_lang_input? ? "[#{key}]" : ""
|
key_field = can_muti_lang_input? ? "[#{key}]" : ""
|
||||||
place_holder= @panel_setting["placeholder"][key] rescue ''
|
place_holder= @panel_setting["placeholder"][key] rescue ''
|
||||||
# result = text_area_tag(get_field_name_base + key_field, value,@markup_options.merge({:placeholder=>place_holder,:for=>key}))
|
result = text_area_tag(get_field_name_base + key_field, value,@markup_options.merge({:placeholder=>place_holder,:for=>key}))
|
||||||
result = text_field_tag(get_field_name_base + key_field, value,@markup_options.merge({:placeholder=>place_holder,:for=>key}))
|
|
||||||
|
|
||||||
add_ext= @attribute_value.address_ext[key] rescue {}
|
add_ext= @attribute_value.address_ext[key] rescue {}
|
||||||
|
|
||||||
@@ -182,7 +181,7 @@ protected
|
|||||||
def lang_panel_tabbable_wrapper(add_more_params,&block)
|
def lang_panel_tabbable_wrapper(add_more_params,&block)
|
||||||
add_more_counter = ''
|
add_more_counter = ''
|
||||||
|
|
||||||
if self.markup=='text_area' #or self.markup=='address'
|
if self.markup=='text_area' or self.markup=='address'
|
||||||
|
|
||||||
tmp1 = VALID_LOCALES.collect do |key|
|
tmp1 = VALID_LOCALES.collect do |key|
|
||||||
value = @prefiled_value[key] rescue nil
|
value = @prefiled_value[key] rescue nil
|
||||||
@@ -262,7 +261,7 @@ protected
|
|||||||
link_to(I18nVariable.from_locale(key),link_entry,:data=>{:toggle=>"tab"},:class=>"btn #{(key == I18n.locale.to_s ? "active" : nil)}",:for=>key)
|
link_to(I18nVariable.from_locale(key),link_entry,:data=>{:toggle=>"tab"},:class=>"btn #{(key == I18n.locale.to_s ? "active" : nil)}",:for=>key)
|
||||||
end # of VALID_LOCALES.collect for tabs
|
end # of VALID_LOCALES.collect for tabs
|
||||||
|
|
||||||
buff2 << link_to((content_tag :i,'',:class=>'icon-edit'),"#address-field", :role=>"button",:class=>'btn',:data=>{:toggle=>"modal"}) if self.markup == 'address'
|
buff2 << link_to((content_tag :i,'',:class=>'icon-edit'),"##{get_pairing_tab_class({})}_m_window", :role=>"button",:class=>'btn',:data=>{:toggle=>"modal"}) if self.markup == 'address'
|
||||||
buff2 << link_to((content_tag :i,'',:class=>'icon-trash'),"#",:class=>"btn remove-input") if self.add_more
|
buff2 << link_to((content_tag :i,'',:class=>'icon-trash'),"#",:class=>"btn remove-input") if self.add_more
|
||||||
buff2.join.html_safe
|
buff2.join.html_safe
|
||||||
end # of content ul
|
end # of content ul
|
||||||
@@ -358,7 +357,7 @@ protected
|
|||||||
|
|
||||||
# address = content_tag :div,:class=>"multipleInput editMore" do
|
# address = content_tag :div,:class=>"multipleInput editMore" do
|
||||||
address = content_tag :div,:class=>"control-group" do
|
address = content_tag :div,:class=>"control-group" do
|
||||||
label + content_tag(:div, controls_wrapper(&block), :class=>'controls add-input')
|
label + content_tag(:div, controls_wrapper(&block), :class=>'controls')
|
||||||
end # of div multipleInput editMore
|
end # of div multipleInput editMore
|
||||||
|
|
||||||
result = address
|
result = address
|
||||||
@@ -453,7 +452,7 @@ protected
|
|||||||
def gen_modal_dialog
|
def gen_modal_dialog
|
||||||
render_anywhere("shared/attribute_field/address_modal_dialog",{
|
render_anywhere("shared/attribute_field/address_modal_dialog",{
|
||||||
:field_name=>title,
|
:field_name=>title,
|
||||||
:html_id=>"address-field",
|
:html_id=>"#{get_pairing_tab_class({})}_m_window",
|
||||||
:btn_class => "#{get_pairing_tab_class({})}",
|
:btn_class => "#{get_pairing_tab_class({})}",
|
||||||
:field_name_basic => get_basic_field_name_base
|
:field_name_basic => get_basic_field_name_base
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -321,9 +321,9 @@ module OrbitBackendHelper
|
|||||||
def is_authorized(object)
|
def is_authorized(object)
|
||||||
autorized = @module_app.authorizable_models.inject(false) do |autorized, klass|
|
autorized = @module_app.authorizable_models.inject(false) do |autorized, klass|
|
||||||
if object.is_a?(klass.constantize)
|
if object.is_a?(klass.constantize)
|
||||||
autorized ||= object.user_can_sub_manage?(current_user)
|
autorized ||= object.cur_user_is_sub_manager_of("#{klass.underscore}_#{@module_app.key}")
|
||||||
else
|
else
|
||||||
autorized ||= object.category.user_can_sub_manage?(current_user)
|
autorized ||= object.category.cur_user_is_sub_manager_of("category_#{@module_app.key}")
|
||||||
end
|
end
|
||||||
autorized
|
autorized
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ module OrbitFormHelper
|
|||||||
|
|
||||||
def date_picker(object_name, method, options)
|
def date_picker(object_name, method, options)
|
||||||
custom = {}
|
custom = {}
|
||||||
custom[:format] = options[:format] || 'yyyy/MM'
|
custom[:format] = 'yyyy-MM-dd'
|
||||||
custom[:value] = format_value(options[:value], custom[:format]) if options[:value]
|
custom[:value] = display_date(options[:value]) if options[:value]
|
||||||
custom[:picker_class] = 'date_picker'
|
custom[:picker_class] = 'date_picker'
|
||||||
custom[:label] = options[:label] || I18n.t('datetime_picker.date.label')
|
custom[:label] = options[:label] || I18n.t('datetime_picker.date.label')
|
||||||
custom[:placeholder] = options[:placeholder] || I18n.t('datetime_picker.date.placeholder')
|
custom[:placeholder] = options[:placeholder] || I18n.t('datetime_picker.date.placeholder')
|
||||||
@@ -44,8 +44,8 @@ module OrbitFormHelper
|
|||||||
|
|
||||||
def default_picker(object_name, method, options)
|
def default_picker(object_name, method, options)
|
||||||
custom = {}
|
custom = {}
|
||||||
custom[:format] = options[:format] || 'yyyy/MM/dd hh:mm'
|
custom[:format] = 'yyyy-MM-dd hh:mm'
|
||||||
custom[:value] = format_value(options[:value], custom[:format]) if options[:value]
|
custom[:value] = display_date_time(options[:value]) if options[:value]
|
||||||
custom[:picker_class] = 'default_picker'
|
custom[:picker_class] = 'default_picker'
|
||||||
custom[:label] = options[:label] || I18n.t('datetime_picker.default.label')
|
custom[:label] = options[:label] || I18n.t('datetime_picker.default.label')
|
||||||
custom[:placeholder] = options[:placeholder] || I18n.t('datetime_picker.default.placeholder')
|
custom[:placeholder] = options[:placeholder] || I18n.t('datetime_picker.default.placeholder')
|
||||||
@@ -54,8 +54,8 @@ module OrbitFormHelper
|
|||||||
|
|
||||||
def time_picker(object_name, method, options)
|
def time_picker(object_name, method, options)
|
||||||
custom = {}
|
custom = {}
|
||||||
custom[:format] = options[:format] || 'hh:mm'
|
custom[:format] = 'hh:mm'
|
||||||
custom[:value] = format_value(options[:value], custom[:format]) if options[:value]
|
custom[:value] = display_time(options[:value]) if options[:value]
|
||||||
custom[:picker_class] = 'time_picker'
|
custom[:picker_class] = 'time_picker'
|
||||||
custom[:label] = options[:label] || I18n.t('datetime_picker.time.label')
|
custom[:label] = options[:label] || I18n.t('datetime_picker.time.label')
|
||||||
custom[:placeholder] = options[:placeholder] || I18n.t('datetime_picker.time.placeholder')
|
custom[:placeholder] = options[:placeholder] || I18n.t('datetime_picker.time.placeholder')
|
||||||
@@ -93,10 +93,6 @@ module OrbitFormHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def format_value(value, format)
|
|
||||||
value.strftime(format.gsub('yyyy', '%Y').gsub('MM', '%m').gsub('dd', '%d').gsub('hh', '%H').gsub('mm', '%M'))
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
module Orbit::FormBuilder
|
module Orbit::FormBuilder
|
||||||
|
|||||||
@@ -5,16 +5,13 @@ class Asset
|
|||||||
include OrbitTag::Taggable
|
include OrbitTag::Taggable
|
||||||
|
|
||||||
mount_uploader :data, FileAssetUploader
|
mount_uploader :data, FileAssetUploader
|
||||||
before_save :update_asset_attributes
|
|
||||||
|
|
||||||
field :filename
|
field :filename
|
||||||
field :description, localize: true
|
field :description, localize: true
|
||||||
field :title, localize: true
|
field :title, localize: true
|
||||||
field :content_type
|
|
||||||
field :file_size
|
|
||||||
|
|
||||||
validates :title, :at_least_one => true
|
validates :title, :at_least_one => true
|
||||||
|
validates :description, :at_least_one => true
|
||||||
validates_presence_of :data
|
validates_presence_of :data
|
||||||
|
|
||||||
|
|
||||||
@@ -24,14 +21,6 @@ class Asset
|
|||||||
before_save :clean_tags
|
before_save :clean_tags
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
|
||||||
def update_asset_attributes
|
|
||||||
if data.present? && data_changed?
|
|
||||||
self.content_type = data.file.content_type
|
|
||||||
self.file_size = data.file.size
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def clean_tags
|
def clean_tags
|
||||||
self.tagged_ids.delete('')
|
self.tagged_ids.delete('')
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
class AuthApproval < Authorization
|
|
||||||
field :title
|
|
||||||
|
|
||||||
belongs_to :approval_authorizable, polymorphic: true
|
|
||||||
has_and_belongs_to_many :authorized_users, class_name: 'User', inverse_of: 'approving_apps'
|
|
||||||
end
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
class AuthManager < Authorization
|
|
||||||
# belongs_to :manager_authorizable, polymorphic: true
|
|
||||||
has_and_belongs_to_many :authorized_users, class_name: 'User', inverse_of: 'managing_apps'
|
|
||||||
end
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
class AuthSubManager < Authorization
|
|
||||||
field :title
|
|
||||||
|
|
||||||
belongs_to :sub_manager_authorizable, polymorphic: true
|
|
||||||
has_and_belongs_to_many :authorized_users, class_name: 'User', inverse_of: 'sub_managing_apps'
|
|
||||||
end
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
class Authorization
|
|
||||||
include Mongoid::Document
|
|
||||||
include Mongoid::Timestamps
|
|
||||||
|
|
||||||
field :title
|
|
||||||
|
|
||||||
belongs_to :module_app
|
|
||||||
|
|
||||||
has_and_belongs_to_many :roles
|
|
||||||
has_and_belongs_to_many :sub_roles
|
|
||||||
|
|
||||||
delegate :update_auth_approval_users, :update_auth_manager_users, :update_auth_sub_manager_users, to: :module_app, prefix: true, allow_nil: true
|
|
||||||
|
|
||||||
after_save :update_module_app
|
|
||||||
|
|
||||||
|
|
||||||
def add_roles(roles)
|
|
||||||
users = []
|
|
||||||
roles = Array(roles)
|
|
||||||
add_operation(:roles, roles)
|
|
||||||
sub_roles = []
|
|
||||||
roles.each{|role| role.sub_roles.each{|sub_role| sub_roles << sub_role.id}}
|
|
||||||
add_operation(:sub_roles, sub_roles)
|
|
||||||
roles.each{|role| role.users.where(admin: false).each{|user| users << user}}
|
|
||||||
add_users(users, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_sub_roles(sub_roles)
|
|
||||||
users = []
|
|
||||||
sub_roles = Array(sub_roles)
|
|
||||||
add_operation(:sub_roles, sub_roles)
|
|
||||||
sub_roles.each do |sub_role|
|
|
||||||
self.roles << sub_role.role unless self.roles.include?(sub_role.role)
|
|
||||||
sub_role.users.where(admin: false).each{|user| users << user}
|
|
||||||
end
|
|
||||||
add_users(users, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_users(users, with_parents = true)
|
|
||||||
users = Array(users)
|
|
||||||
add_operation(:authorized_users, users)
|
|
||||||
users.each do |user|
|
|
||||||
user.roles.each do |role|
|
|
||||||
self.roles << role unless self.roles.include?(role)
|
|
||||||
end
|
|
||||||
user.sub_roles.each do |sub_role|
|
|
||||||
self.sub_roles << sub_role unless self.sub_roles.include?(sub_role)
|
|
||||||
end
|
|
||||||
end if with_parents
|
|
||||||
self.save
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_roles(roles)
|
|
||||||
users = []
|
|
||||||
sub_roles = []
|
|
||||||
roles = Array(roles)
|
|
||||||
remove_operation(:roles, roles)
|
|
||||||
roles.each do |role|
|
|
||||||
role.sub_roles.each{|sub_role| sub_roles << sub_role}
|
|
||||||
role.users.where(admin: false).each{|user| users << user}
|
|
||||||
end
|
|
||||||
remove_operation(:sub_role_ids, sub_roles)
|
|
||||||
remove_operation(:authorized_user_ids, users)
|
|
||||||
add_roles(self.roles)
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_sub_roles(sub_roles)
|
|
||||||
users = []
|
|
||||||
sub_roles = Array(sub_roles)
|
|
||||||
remove_operation(:sub_roles, sub_roles)
|
|
||||||
sub_roles.each do |sub_role|
|
|
||||||
users << sub_role.users.where(admin: false)
|
|
||||||
end
|
|
||||||
remove_operation(:authorized_user_ids, users)
|
|
||||||
add_roles(self.roles)
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_users(users)
|
|
||||||
users = Array(users)
|
|
||||||
remove_operation(:authorized_user_ids, users)
|
|
||||||
self.save
|
|
||||||
end
|
|
||||||
|
|
||||||
protected
|
|
||||||
|
|
||||||
def add_operation(db_field, objs)
|
|
||||||
objs.each do |obj|
|
|
||||||
self.send(db_field) << obj unless self.send(db_field).include?(obj)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_operation(db_field, obj)
|
|
||||||
self.write_attribute(db_field, self.send(db_field) - obj.map{|y| y.id})
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def update_module_app
|
|
||||||
case self._type
|
|
||||||
when "AuthApproval"
|
|
||||||
self.module_app_update_auth_approval_users
|
|
||||||
when "AuthManager"
|
|
||||||
self.module_app_update_auth_manager_users
|
|
||||||
when "AuthSubManager"
|
|
||||||
self.module_app_update_auth_sub_manager_users
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
class Category
|
class Category
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
include OrbitModel::Authorizable
|
include OrbitCoreLib::ObjectAuthable
|
||||||
|
|
||||||
field :disable, type: Boolean, default: false
|
field :disable, type: Boolean, default: false
|
||||||
field :title, localize: true
|
field :title, localize: true
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class Ckeditor::Asset
|
||||||
|
include Ckeditor::Orm::Mongoid::AssetBase
|
||||||
|
|
||||||
|
delegate :url, :current_path, :size, :content_type, :filename, :to => :data
|
||||||
|
|
||||||
|
validates_presence_of :data
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class Ckeditor::AttachmentFile < Ckeditor::Asset
|
||||||
|
mount_uploader :data, CkeditorAttachmentFileUploader, :mount_on => :data_file_name
|
||||||
|
|
||||||
|
def url_thumb
|
||||||
|
@url_thumb ||= Ckeditor::Utils.filethumb(filename)
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class Ckeditor::Picture < Ckeditor::Asset
|
||||||
|
mount_uploader :data, CkeditorPictureUploader, :mount_on => :data_file_name
|
||||||
|
|
||||||
|
def url_content
|
||||||
|
url(:content)
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,26 +1,16 @@
|
|||||||
class ModuleApp
|
class ModuleApp
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
# include OrbitCoreLib::ObjectTokenUtility
|
include OrbitCoreLib::ObjectTokenUtility
|
||||||
# include OrbitApp::ModuleAppMembershipTools
|
include OrbitApp::ModuleAppMembershipTools
|
||||||
|
|
||||||
field :auth_approval_users, type: Array, default: nil
|
|
||||||
field :auth_manager_users, type: Array, default: nil
|
|
||||||
field :auth_sub_manager_users, type: Array, default: nil
|
|
||||||
field :key
|
field :key
|
||||||
field :title
|
field :title
|
||||||
field :sidebar_order,type: Integer,default: 0
|
field :sidebar_order,type: Integer,default: 0
|
||||||
|
|
||||||
has_one :auth_manager, dependent: :destroy
|
|
||||||
has_many :auth_approvals, dependent: :destroy
|
|
||||||
has_many :auth_sub_managers, dependent: :destroy
|
|
||||||
has_many :categories, dependent: :destroy
|
has_many :categories, dependent: :destroy
|
||||||
has_many :module_tags, dependent: :destroy
|
has_many :module_tags, dependent: :destroy
|
||||||
|
|
||||||
has_many :approvals #to remove
|
|
||||||
|
|
||||||
delegate :authorized_users, to: :auth_manager, prefix: true, allow_nil: true
|
|
||||||
|
|
||||||
def refetch_setting!(reg)
|
def refetch_setting!(reg)
|
||||||
# %w{module_label category base_url version organization author intro update_info create_date}.each do |field|
|
# %w{module_label category base_url version organization author intro update_info create_date}.each do |field|
|
||||||
# self[field.to_sym] = reg.send field
|
# self[field.to_sym] = reg.send field
|
||||||
@@ -34,7 +24,6 @@ class ModuleApp
|
|||||||
self[:has_category] = reg.get_has_category
|
self[:has_category] = reg.get_has_category
|
||||||
self[:is_approvable] = reg.get_is_approvable
|
self[:is_approvable] = reg.get_is_approvable
|
||||||
self[:is_authorizable] = reg.get_is_authorizable
|
self[:is_authorizable] = reg.get_is_authorizable
|
||||||
self[:approvable_models] = reg.get_approvable_models
|
|
||||||
self[:authorizable_models] = reg.get_authorizable_models
|
self[:authorizable_models] = reg.get_authorizable_models
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -179,71 +168,4 @@ class ModuleApp
|
|||||||
self.module_tags.map{|t| t.tag }
|
self.module_tags.map{|t| t.tag }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# authorization
|
|
||||||
def update_auth_approval_users
|
|
||||||
user_ids = self.auth_approvals.inject([]) do |users, auth|
|
|
||||||
users += auth.authorized_users.map{|user| user.id}
|
|
||||||
end
|
|
||||||
self.update_attribute(:auth_approval_users, user_ids.uniq)
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_auth_manager_users
|
|
||||||
self.update_attribute(:auth_manager_users, self.auth_manager_authorized_users.map{|user| user.id})
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_auth_sub_manager_users
|
|
||||||
user_ids = self.auth_sub_managers.inject([]) do |users, auth|
|
|
||||||
users += auth.authorized_users.map{|user| user.id}
|
|
||||||
end
|
|
||||||
self.update_attribute(:auth_sub_manager_users, user_ids.uniq)
|
|
||||||
end
|
|
||||||
|
|
||||||
def managers
|
|
||||||
auth_manager_authorized_users || []
|
|
||||||
end
|
|
||||||
|
|
||||||
def user_can_manage?(user)
|
|
||||||
managers.include?(user)
|
|
||||||
end
|
|
||||||
|
|
||||||
def add_managers(users)
|
|
||||||
users = Array(users)
|
|
||||||
if auth_manager = self.auth_manager
|
|
||||||
auth_manager.update_attribute(:authorized_users, (auth_manager.authorized_users + users).uniq)
|
|
||||||
else
|
|
||||||
self.create_auth_manager(authorized_users: users)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def remove_managers(users)
|
|
||||||
users = Array(users)
|
|
||||||
users = users.delete_if{|user| user == current_user || is_admin?}
|
|
||||||
self.auth_manager.update_attribute(:authorized_users, auth_manager.authorized_users - users)
|
|
||||||
end
|
|
||||||
|
|
||||||
def is_manager?(user)
|
|
||||||
if user && !auth_manager_users.blank?
|
|
||||||
auth_manager_users.include?(user.id)
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def is_sub_manager?(user)
|
|
||||||
if user && !auth_sub_manager_users.blank?
|
|
||||||
auth_sub_manager_users.include?(user.id)
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def can_approve?(user)
|
|
||||||
if user && !auth_approval_users.blank?
|
|
||||||
auth_approval_users.include?(user.id)
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -14,12 +14,10 @@ class Site
|
|||||||
|
|
||||||
field :frontend_closed, :type => Boolean, :default => false
|
field :frontend_closed, :type => Boolean, :default => false
|
||||||
field :backend_openness_on, :type => Boolean, :default => false
|
field :backend_openness_on, :type => Boolean, :default => false
|
||||||
field :desktop_closed, :type => Boolean, :default => false
|
|
||||||
|
|
||||||
field :title_always_on, :type => Boolean, :default => false
|
field :title_always_on, :type => Boolean, :default => false
|
||||||
field :dashbroad_allow_visitor, :type => Boolean, :default => false
|
field :dashbroad_allow_visitor, :type => Boolean, :default => false
|
||||||
field :mail_settings, :type => Hash
|
field :mail_settings, :type => Hash
|
||||||
field :enabled_for, :type => Array, :default => nil
|
|
||||||
|
|
||||||
field :disk_space, :type => String
|
field :disk_space, :type => String
|
||||||
field :system_package_info, :type => Hash,:default=>{}
|
field :system_package_info, :type => Hash,:default=>{}
|
||||||
@@ -34,12 +32,9 @@ class Site
|
|||||||
field :title, localize: true
|
field :title, localize: true
|
||||||
field :footer, localize: true
|
field :footer, localize: true
|
||||||
field :sub_menu, localize: true
|
field :sub_menu, localize: true
|
||||||
field :terms_of_user, localize: true
|
|
||||||
field :google_analytics
|
|
||||||
field :default_locale
|
|
||||||
|
|
||||||
field :mobile_on, :type => Boolean, :default => false
|
field :mobile_on, :type => Boolean, :default => false
|
||||||
|
|
||||||
belongs_to :design
|
belongs_to :design
|
||||||
has_many :site_metas, :autosave => true, :dependent => :destroy
|
has_many :site_metas, :autosave => true, :dependent => :destroy
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
class PersonalPluginIntro
|
|
||||||
|
|
||||||
include Mongoid::Document
|
|
||||||
include Mongoid::Timestamps
|
|
||||||
# include OrbitCoreLib::ObjectAuthable
|
|
||||||
# include OrbitCoreLib::ObjectDisable
|
|
||||||
|
|
||||||
# has_and_belongs_to_many :users
|
|
||||||
belongs_to :user
|
|
||||||
|
|
||||||
field :text, localize: true
|
|
||||||
field :brief_intro, :type => Boolean, :default => false
|
|
||||||
field :complete_list, :type => Boolean, :default => true
|
|
||||||
|
|
||||||
|
|
||||||
def pp_object
|
|
||||||
brief_intro
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.from_id(id)
|
|
||||||
PersonalPluginIntro.find(id) rescue nil
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.is_localized?(field_name)
|
|
||||||
self.fields[field_name.to_s].localized?
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,15 +1,13 @@
|
|||||||
class User
|
class User
|
||||||
|
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Tree
|
|
||||||
include Mongoid::Tree::Ordering # use mongoid-tree because mongoid-ordering needs mongoid(~>3.0)
|
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
|
|
||||||
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :registerable, :validatable #, :timeoutable
|
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :registerable, :validatable #, :timeoutable
|
||||||
|
|
||||||
mount_uploader :avatar, AvatarUploader
|
mount_uploader :avatar, AvatarUploader
|
||||||
|
|
||||||
field :admin, :type => Boolean, :default => false
|
field :admin, :type => Boolean, :default => true
|
||||||
field :active_role
|
field :active_role
|
||||||
field :user_id
|
field :user_id
|
||||||
field :sid
|
field :sid
|
||||||
@@ -21,34 +19,26 @@ class User
|
|||||||
field :cache_dept,type: Hash
|
field :cache_dept,type: Hash
|
||||||
field :status_record,type: Hash
|
field :status_record,type: Hash
|
||||||
|
|
||||||
has_and_belongs_to_many :approving_apps, class_name: 'AuthApproval', inverse_of: 'authorized_users'
|
|
||||||
has_and_belongs_to_many :managing_apps, class_name: 'AuthManager', inverse_of: 'authorized_users'
|
|
||||||
has_and_belongs_to_many :sub_managing_apps, class_name: 'AuthSubManager', inverse_of: 'authorized_users'
|
|
||||||
|
|
||||||
has_many :attribute_values, :autosave => true, :dependent => :destroy
|
has_many :attribute_values, :autosave => true, :dependent => :destroy
|
||||||
has_many :app_auths,as: :privilege_apps,:inverse_of => :privilege_lists
|
has_many :app_auths,as: :privilege_apps,:inverse_of => :privilege_lists
|
||||||
has_many :blocked_apps, :inverse_of => :blocked_users, :class_name => "AppAuth", :dependent => :destroy
|
has_many :blocked_apps, :inverse_of => :blocked_users, :class_name => "AppAuth", :dependent => :destroy
|
||||||
has_many :privilege_apps, :inverse_of => :privilege_users, :class_name => "AppAuth", :dependent => :destroy
|
has_many :privilege_apps, :inverse_of => :privilege_users, :class_name => "AppAuth", :dependent => :destroy
|
||||||
|
|
||||||
# has_many :managing_apps,:class_name => "AppManager", :dependent => :destroy
|
has_many :managing_apps,:class_name => "AppManager", :dependent => :destroy
|
||||||
has_one :desktop, :autosave => true, :dependent => :destroy
|
has_one :desktop, :autosave => true, :dependent => :destroy
|
||||||
has_one :facebook, :autosave => true, :dependent => :destroy
|
has_one :facebook, :autosave => true, :dependent => :destroy
|
||||||
has_many :other_accounts, :autosave => true, :dependent => :destroy
|
has_many :other_accounts, :autosave => true, :dependent => :destroy
|
||||||
has_many :assets, as: :assetable
|
|
||||||
# has_many :journals, :autosave => true, :dependent => :destroy
|
# has_many :journals, :autosave => true, :dependent => :destroy
|
||||||
# has_many :papers, :autosave => true, :dependent => :destroy
|
# has_many :papers, :autosave => true, :dependent => :destroy
|
||||||
has_and_belongs_to_many :sub_role_tags
|
has_and_belongs_to_many :sub_role_tags
|
||||||
|
|
||||||
has_many :user_actions, :dependent => :destroy
|
has_many :user_actions, :dependent => :destroy
|
||||||
|
|
||||||
has_many :personal_plugin_intro
|
|
||||||
|
|
||||||
# has_and_belongs_to_many :statuses
|
# has_and_belongs_to_many :statuses
|
||||||
has_and_belongs_to_many :roles
|
has_and_belongs_to_many :roles
|
||||||
has_and_belongs_to_many :sub_roles
|
has_and_belongs_to_many :sub_roles
|
||||||
has_and_belongs_to_many :role_statuses
|
has_and_belongs_to_many :role_statuses
|
||||||
has_and_belongs_to_many :role_categorys
|
has_and_belongs_to_many :role_categorys
|
||||||
|
|
||||||
accepts_nested_attributes_for :attribute_values, :allow_destroy => true
|
accepts_nested_attributes_for :attribute_values, :allow_destroy => true
|
||||||
|
|
||||||
before_create :initialize_desktop
|
before_create :initialize_desktop
|
||||||
@@ -99,9 +89,9 @@ class User
|
|||||||
var[:id].each do |id,val|
|
var[:id].each do |id,val|
|
||||||
# binding.pry if id == '5052c5b22b5c49ab02000004'
|
# binding.pry if id == '5052c5b22b5c49ab02000004'
|
||||||
if (val=="true")
|
if (val=="true")
|
||||||
self.role_ids.reject!{|t| t.to_s == id}
|
self.roles = self.roles.reject{|t| t.id.to_s==id}
|
||||||
elsif(val=="false")
|
elsif(val=="false")
|
||||||
self.role_ids += Array(id)
|
self.roles << Role.find(id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -116,9 +106,9 @@ class User
|
|||||||
# binding.pry if id == '5052c5b22b5c49ab02000004'
|
# binding.pry if id == '5052c5b22b5c49ab02000004'
|
||||||
|
|
||||||
if ( self.roles.include?(@roid) == false or val=="true")
|
if ( self.roles.include?(@roid) == false or val=="true")
|
||||||
self.sub_role_ids.reject!{|t| t.to_s == id}
|
self.sub_roles = self.sub_roles.reject{|t| t.id.to_s==id}
|
||||||
elsif(val=="false")
|
elsif(val=="false")
|
||||||
self.sub_role_ids += Array(id)
|
self.sub_roles << SubRole.find(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -283,8 +273,8 @@ class User
|
|||||||
end
|
end
|
||||||
|
|
||||||
def managed_module_apps
|
def managed_module_apps
|
||||||
self.managing_apps.inject([]) do |managed_apps, auth_manager|
|
self.managing_apps.inject([]) do |managed_apps, app_manager|
|
||||||
managed_apps << auth_manager.module_app
|
managed_apps << app_manager.managing_app unless app_manager.managing_app.blank?
|
||||||
managed_apps
|
managed_apps
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -21,9 +21,6 @@ class AvatarUploader < CarrierWave::Uploader::Base
|
|||||||
# def default_url
|
# def default_url
|
||||||
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
||||||
# end
|
# end
|
||||||
def default_url
|
|
||||||
[version_name, (Site.first.default_image.file.url rescue "person.png")].compact.join('_')
|
|
||||||
end
|
|
||||||
|
|
||||||
# Process files as they are uploaded:
|
# Process files as they are uploaded:
|
||||||
# process :scale => [200, 300]
|
# process :scale => [200, 300]
|
||||||
|
|||||||
@@ -1,23 +1,16 @@
|
|||||||
<tr id="asset_<%= asset.id %>" class="with_action">
|
<tr id="asset_<%= asset.id %>" class="with_action">
|
||||||
|
<td><%= check_box_tag 'to_delete[]', asset.id, false, :class => "checkbox_in_list" %></td>
|
||||||
|
<td><%= asset.title rescue nil %></td>
|
||||||
<td>
|
<td>
|
||||||
<%= check_box_tag 'files[]', asset.id, false, :class => "checkbox_in_list" %>
|
|
||||||
<input type="hidden" value="<%= asset.data.url %>" id="url_<%= asset.id %>" />
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<input type="hidden" value="<%= asset.description_translations[locale] rescue nil %>" id="<%= locale %>_desc_<%= asset.id %>" />
|
|
||||||
<input type="hidden" value="<%= asset.title_translations[locale] rescue nil %>" id="<%= locale %>_title_<%= asset.id %>" />
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
<td><%= asset.title_translations[I18n.locale.to_s] rescue nil %></td>
|
|
||||||
<!-- <td>
|
|
||||||
<i class="icons-pictures img-peview" rel="popover" data-content="<img src='<%= asset.data.url %>' />" data-original-title="<%= asset.data.filename %>"></i>
|
<i class="icons-pictures img-peview" rel="popover" data-content="<img src='<%= asset.data.url %>' />" data-original-title="<%= asset.data.filename %>"></i>
|
||||||
<div class="quick-edit">
|
<div class="quick-edit">
|
||||||
<ul class="nav nav-pills hide">
|
<ul class="nav nav-pills hide">
|
||||||
<li><%#= link_to t(:edit), edit_admin_asset_path(asset), :remote => true, :class => 'edit' %></li>
|
<li><%= link_to t(:edit), edit_admin_asset_path(asset), :remote => true, :class => 'edit' %></li>
|
||||||
<li class="dropdown"><%#= link_to t(:delete_), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :class => 'delete' %></li>
|
<li class="dropdown"><%= link_to t(:delete_), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :class => 'delete' %></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td> -->
|
</td>
|
||||||
<!-- <td><%#= asset.data.file.content_type rescue nil %></td> -->
|
<td><%= asset.data.file.content_type rescue nil %></td>
|
||||||
<td><%= number_to_human_size(asset.data.file.file_length) rescue nil %></td>
|
<td><%= number_to_human_size(asset.data.file.file_length) rescue nil %></td>
|
||||||
<td><%= asset.description rescue nil %></td>
|
<td><%= asset.description rescue nil %></td>
|
||||||
<td>
|
<td>
|
||||||
@@ -29,7 +22,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
</tr>
|
||||||
<a href="<%= edit_admin_asset_path(asset) %>" class="editform">Edit</a>
|
|
||||||
</td>
|
<script type="text/javascript">
|
||||||
</tr>
|
$('.img-peview').popover({
|
||||||
|
delay: { show: 100, hide: 300 }
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -1,15 +1,18 @@
|
|||||||
<%= flash_messages %>
|
<div id='pop_up_content' class="main2">
|
||||||
<div class="modal-header">
|
<h1><%= t('editing.asset') %></h1>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
||||||
<h3><%= t('editing.asset') %></h3>
|
<%= flash_messages %>
|
||||||
</div>
|
|
||||||
<%= form_for @asset, :url => admin_asset_path(@asset), :remote => true do |f| %>
|
<%= form_for @asset, :url => admin_asset_path(@asset), :html => {:id => (is_html ? nil : 'ajaxForm'), :multipart => true } do |f| %>
|
||||||
<div class="modal-body" id="modal_body">
|
|
||||||
<%= f.error_messages %>
|
<%= f.error_messages %>
|
||||||
<%= render :partial => "form", :locals => { :f => f } %>
|
<%= render :partial => "form", :locals => { :f => f } %>
|
||||||
</div>
|
<div class="button_bar">
|
||||||
<div class="modal-footer">
|
<% if is_html %>
|
||||||
<a href="#" class="btn" data-dismiss="modal">Close</a>
|
<%= link_back %>
|
||||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
<%= f.submit t(:edit) %>
|
||||||
</div>
|
<% else %>
|
||||||
<% end %>
|
<a id='ajax_form_submit' class="btn btn-primary"><%= t(:update_) %></a>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
@@ -1,46 +1,38 @@
|
|||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<ul class="nav nav-pills language-nav">
|
<label for="title" class="control-label"><%= t :title %></label>
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
<div class="controls">
|
||||||
<li <%= ( i == 0 ) ? "class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
<%= f.fields_for :title_translations do |f| %>
|
||||||
<% end %>
|
<% @site_valid_locales.each do |locale| %>
|
||||||
</ul>
|
<%= content_tag :label do -%>
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
<div>
|
||||||
<div class="<%= locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
|
<%= I18nVariable.from_locale(locale) %>
|
||||||
<div class="control-group input-title">
|
<%= f.text_field locale, :class => "input-large", :value => (@asset.title_translations[locale] rescue nil) %>
|
||||||
<%= f.label :title , t('asset.title'), :class=>"control-label muted" %>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.fields_for :title_translations do |f| %>
|
|
||||||
<%= f.text_field locale, :class=>'post-title', :value => (@asset.title_translations[locale] rescue nil) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<% end %>
|
||||||
<div class="control-group input-content">
|
<% end %>
|
||||||
<%= f.label :description ,t('asset.description'), :class => "control-label muted" %>
|
|
||||||
<%= f.fields_for :description_translations do |f| %>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="textarea">
|
|
||||||
<%= f.text_area locale, :style=>"width:100%;height:100px", :class => '', :value => (@asset.description_translations[locale] rescue nil) %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Tag</label>
|
|
||||||
<div class="controls" data-toggle="buttons-checkbox">
|
|
||||||
<% @tags.each do |tag| %>
|
|
||||||
<label class="checkbox inline btn <%= 'active' if @asset.tag_ids.include?(tag.id) %>">
|
|
||||||
<%= check_box_tag 'asset[tag_ids][]', tag.id, @asset.tag_ids.include?(tag.id)%>
|
|
||||||
<%= tag.name %>
|
|
||||||
</label>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label muted"><%= f.label :data, t(:data) %></label>
|
<label class="control-label"><%= f.label :category, t(:category) %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.select :asset_category_id, @asset_categories.collect{|t| [ t.title, t.id ]}, {}, :class => "input-large" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t :tags %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<% @tags.each do |tag| %>
|
||||||
|
<%= content_tag :label, :class => "checkbox inline" do -%>
|
||||||
|
<%= check_box_tag 'asset[tag_ids][]', tag.id, @asset.tag_ids.include?(tag.id) %>
|
||||||
|
<%= tag.name %>
|
||||||
|
<%= hidden_field_tag 'asset[tag_ids][]', '' %>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= f.label :data, t(:data) %></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<%= f.file_field :data, :class => 'upload' %>
|
<%= f.file_field :data, :class => 'upload' %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<%= render_sort_bar(true, delete_admin_assets_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]),
|
||||||
|
['title', 'title','span4', :title],
|
||||||
|
['description', 'description', 'span1-2', :data],
|
||||||
|
['intro', 'intro', 'span1-2', :type],
|
||||||
|
['intro', 'intro', 'span1-2', :size],
|
||||||
|
['intro', 'intro', 'span1-2', :description],
|
||||||
|
['intro', 'intro', 'span1-2', :tags]).html_safe %>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<% if !request.xhr? %>
|
||||||
|
<textarea>
|
||||||
|
<% end %>
|
||||||
|
var returnurl = "<%= @asset.data.url %>";
|
||||||
|
var returntitle = "<%= show_all_fields(@asset, 'title') %>";
|
||||||
|
var returndescription = "<%= show_all_fields(@asset, 'description') %>";
|
||||||
|
var win = tinyMCEPopup.getWindowArg("window");
|
||||||
|
win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = returnurl;
|
||||||
|
if(win.document.getElementById(tinyMCEPopup.getWindowArg("alt")))
|
||||||
|
win.document.getElementById(tinyMCEPopup.getWindowArg("alt")).value = returndescription;
|
||||||
|
|
||||||
|
win.document.getElementById(tinyMCEPopup.getWindowArg("title")).value = returntitle;
|
||||||
|
if (typeof(win.ImageDialog) != "undefined") {
|
||||||
|
// we are, so update image dimensions...
|
||||||
|
if (win.ImageDialog.getImageData)
|
||||||
|
win.ImageDialog.getImageData();
|
||||||
|
|
||||||
|
// ... and preview if necessary
|
||||||
|
if (win.ImageDialog.showPreviewImage)
|
||||||
|
win.ImageDialog.showPreviewImage(returnurl);
|
||||||
|
}
|
||||||
|
tinyMCEPopup.close();
|
||||||
|
<% if !request.xhr? %>
|
||||||
|
</textarea>
|
||||||
|
<% end %>
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
|
|
||||||
$("#tbody_assets").html("<%= j render :partial => 'asset', :collection => @assets %>");
|
|
||||||
$("#asset_pagination").html("<%= j paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>");
|
|
||||||
@@ -1 +1,9 @@
|
|||||||
|
<% content_for :secondary do %>
|
||||||
|
<div class="assets_setup">
|
||||||
|
<ul class="list">
|
||||||
|
<li><%= link_to t('new.asset'), new_admin_asset_path, :remote => true, :class => 'button positive' %></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end -%>
|
||||||
|
|
||||||
<%= render :partial => 'edit', :locals => {:is_html => true} %>
|
<%= render :partial => 'edit', :locals => {:is_html => true} %>
|
||||||
@@ -1,382 +1,30 @@
|
|||||||
<style>
|
<%= render 'filter' %>
|
||||||
/* File Upload */
|
<table id="asset_sort_list" class="table main-list">
|
||||||
#upload-panel {
|
<thead>
|
||||||
clear: both;
|
<tr>
|
||||||
}
|
<th class="span1"></th>
|
||||||
#upload-panel iframe {
|
<th class="span4"></th>
|
||||||
width: 100%;
|
<th class="span1-2"></th>
|
||||||
border: none;
|
<th class="span1-2"></th>
|
||||||
}
|
<th class="span1-2"></th>
|
||||||
#fileupload {
|
<th class="span1-2"></th>
|
||||||
position: relative;
|
<th class="span1-2"></th>
|
||||||
clear: both;
|
</tr>
|
||||||
overflow: hidden;
|
</thead>
|
||||||
margin: 40px 0 15px;
|
<tbody id="tbody_assets" class="sort-holder">
|
||||||
height: 254px;
|
<%= render :partial => 'asset', :collection => @assets %>
|
||||||
border: 1px solid #d4d4d4;
|
</tbody>
|
||||||
border-radius: 4px;
|
</table>
|
||||||
background-color: #FDFDFD;
|
|
||||||
/*-webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, .15) inset;
|
|
||||||
box-shadow: 0px 0px 10px rgba(0, 0, 0, .15) inset;*/
|
|
||||||
}
|
|
||||||
#fileupload table {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar .navbar {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar .navbar .add-photo {
|
|
||||||
border: none;
|
|
||||||
border-right: 1px solid #d4d4d4;
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 10px 15px 10px;
|
|
||||||
color: #777777;
|
|
||||||
text-decoration: none;
|
|
||||||
text-shadow: 0 1px 0 #ffffff;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar .navbar .add-photo:hover {
|
|
||||||
color: #333333;
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #EDEDED;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar .navbar .fileinput-button {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar .navbar .fileinput-button input {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
margin: 0;
|
|
||||||
font-size: 23px;
|
|
||||||
opacity: 0;
|
|
||||||
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
|
||||||
filter: alpha(opacity=0);
|
|
||||||
cursor: pointer;
|
|
||||||
-webkit-transform: translate(-300px, 0) scale(4);
|
|
||||||
-moz-transform: translate(-300px, 0) scale(4);
|
|
||||||
-ms-transform: translate(-300px, 0) scale(4);
|
|
||||||
-o-transform: translate(-300px, 0) scale(4);
|
|
||||||
transform: translate(-300px, 0) scale(4);
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar .navbar-inner {
|
|
||||||
border-width: 0 0 1px;
|
|
||||||
border-radius: 4px 4px 0 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fileupload .fileupload-progress .progress {
|
<div class="form-actions form-fixed pagination-right">
|
||||||
position: absolute;
|
<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t(:add), new_admin_asset_path, :remote => true, :class => 'btn btn-primary pull-right' %>
|
||||||
right: 0;
|
<div id="asset_pagination" class="paginationFixed">
|
||||||
left: 0;
|
<%= paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]}, :remote => true %>
|
||||||
margin-bottom: 0;
|
|
||||||
height: 5px;
|
|
||||||
border-radius: 0;
|
|
||||||
background-color: transparent;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-progress .progress-success.progress-striped .bar {
|
|
||||||
background-color: #0088CC;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-progress .progress-extended {
|
|
||||||
position: absolute;
|
|
||||||
top: 1px;
|
|
||||||
right: 0;
|
|
||||||
padding-right: 15px;
|
|
||||||
color: #0088CC;
|
|
||||||
text-align: right;
|
|
||||||
text-shadow: 0 1px 0 #ffffff;
|
|
||||||
letter-spacing: -0.1em;
|
|
||||||
font-size: 12px;
|
|
||||||
font-family: 'Varela Round', sans-serif;
|
|
||||||
line-height: 40px;
|
|
||||||
}
|
|
||||||
#fileupload .fileupload-buttonbar {
|
|
||||||
position: relative;
|
|
||||||
z-index: 3;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone {
|
|
||||||
margin: 15px 10px 10px;
|
|
||||||
padding: 30px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 2em;
|
|
||||||
font-family: 'Raleway';
|
|
||||||
line-height: 1.2em;
|
|
||||||
color: #e4e4e4;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone div[data-icons] {
|
|
||||||
font-size: 4em;
|
|
||||||
height: 70px;
|
|
||||||
padding-top: 30px;
|
|
||||||
text-shadow: 0px -1px 0px #ececec;
|
|
||||||
color: #f5f5f5;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone.drop {
|
|
||||||
position: absolute;
|
|
||||||
top: 37px;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
border: 2px dashed #0088CC;
|
|
||||||
border-radius: 10px;
|
|
||||||
color: #0088CC;
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone.fade {
|
|
||||||
opacity: .3;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone.in {
|
|
||||||
opacity: .7;
|
|
||||||
z-index: 2;
|
|
||||||
border-color: #faa732;
|
|
||||||
color: #faa732;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone.drop div[data-icons] {
|
|
||||||
text-shadow: 0px -1px 0px #0c5f80;
|
|
||||||
color: #0088CC;
|
|
||||||
}
|
|
||||||
#fileupload #dropzone.in div[data-icons] {
|
|
||||||
text-shadow: 0px -1px 0px #a28a10;
|
|
||||||
color: #faa732;
|
|
||||||
}
|
|
||||||
#fileupload #file-list {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
height: 209px;
|
|
||||||
margin: 2px 0;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .pane {
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .files {
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px 14px 10px 10px;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .files > li {
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .files > li:nth-child(even) {
|
|
||||||
background-color: #e9e9e9;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .files ul {
|
|
||||||
position: relative;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .files ul li {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .files ul li.action-bnt {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .preview {
|
|
||||||
width: 80px;
|
|
||||||
min-height: 1px;
|
|
||||||
margin-right: 10px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .name {
|
|
||||||
width: 150px;
|
|
||||||
max-width: 250px;
|
|
||||||
margin-left: 15px;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .progress {
|
|
||||||
position: absolute;
|
|
||||||
left: -5px;
|
|
||||||
right: -5px;
|
|
||||||
bottom: -5px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
height: 5px;
|
|
||||||
box-shadow: none;
|
|
||||||
background-color: transparent;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .size {
|
|
||||||
width: 80px;
|
|
||||||
}
|
|
||||||
#fileupload #file-list .action-bnt {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<ul class="nav nav-tabs module-nav">
|
|
||||||
<li class="active">
|
|
||||||
<a href="#filemanager" data-toggle="tab">File Manager</a>
|
|
||||||
</li>
|
|
||||||
<li><a href="#upload" data-toggle="tab">Upload</a></li>
|
|
||||||
</ul>
|
|
||||||
<div class="tab-pane fade in active" id="filemanager">
|
|
||||||
<a href="<%= admin_module_tags_path(:module_app_id => @module_app_id.to_s) %>"> Tag Management </a>
|
|
||||||
<div id="panel_l" style="width:200px;float:left;margin:5px 5px 5px 5px;">
|
|
||||||
preview is here
|
|
||||||
</div>
|
</div>
|
||||||
<div id="panel_r" class="tab-pane fade in active" style="width: 1200px;" >
|
|
||||||
<table id="asset_sort_list" class="table main-list">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="span1"></th>
|
|
||||||
<th class="span4">Name</th>
|
|
||||||
<th class="span1-2">Size</th>
|
|
||||||
<th class="span1-2">Description</th>
|
|
||||||
<th class="span2">Tags</th>
|
|
||||||
<th class="span1">Action</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="tbody_assets" class="sort-holder">
|
|
||||||
<%= render :partial => 'asset', :collection => @assets %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="form-actions form-fixed pagination-right">
|
|
||||||
<button class="btn btn-primary" id="insert_btn" style="display:none;">Insert</button>
|
|
||||||
<button class="btn btn-primary" id="delete_btn" style="display:none;">Delete</button>
|
|
||||||
<div id="asset_pagination" class="paginationFixed">
|
|
||||||
<%= paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]}, :remote => true %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane fade" id="upload">
|
|
||||||
<form action="<%= file_upload_admin_assets_path %>", id='fileupload'>
|
|
||||||
<!-- Redirect browsers with JavaScript disabled to the origin page -->
|
|
||||||
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
|
||||||
<div class="fileupload-buttonbar">
|
|
||||||
<div class="navbar">
|
|
||||||
<div class="navbar-inner">
|
|
||||||
<ul class="nav">
|
|
||||||
<li>
|
|
||||||
<div class="fileinput-button add-photo">
|
|
||||||
<i class="icon-plus icon-white"></i>
|
|
||||||
<span>Add files...</span>
|
|
||||||
<input type="file" name="files[]" multiple>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<button type="submit" class="start add-photo">
|
|
||||||
<i class="icon-upload icon-white"></i>
|
|
||||||
<span>Start upload</span>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<button type="reset" class="cancel add-photo">
|
|
||||||
<i class="icon-ban-circle icon-white"></i>
|
|
||||||
<span>Cancel upload</span>
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<!-- <li>
|
|
||||||
<button type="button" class="delete">
|
|
||||||
<i class="icons-trash icon-white"></i>
|
|
||||||
<span>Delete</span>
|
|
||||||
</button>
|
|
||||||
</li> -->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- The global progress information -->
|
|
||||||
<div class="fileupload-progress">
|
|
||||||
<!-- The global progress bar -->
|
|
||||||
<div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100">
|
|
||||||
<div class="bar" style="width:0%;"></div>
|
|
||||||
</div>
|
|
||||||
<!-- The extended global progress information -->
|
|
||||||
<div class="progress-extended"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Drop Zone -->
|
|
||||||
<div id="dropzone" class="drop">
|
|
||||||
<div data-icons=""></div>
|
|
||||||
Drop files here
|
|
||||||
</div>
|
|
||||||
<!-- The loading indicator is shown during file processing -->
|
|
||||||
<div class="fileupload-loading"></div>
|
|
||||||
<!-- The table listing the files available for upload/download -->
|
|
||||||
<div id="file-list" class="nano">
|
|
||||||
<div class="content">
|
|
||||||
<ul role="presentation" class="files clearfix">
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div id="editform" class="modal hide fade">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% content_for :page_specific_javascript do %>
|
<% content_for :page_specific_javascript do %>
|
||||||
<%= javascript_include_tag "file-upload/vendor/jquery.ui.widget.js" %>
|
<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %>
|
||||||
<%= javascript_include_tag "file-upload/tmpl.min.js" %>
|
<%= javascript_include_tag "inc/modal-preview" %>
|
||||||
<%= javascript_include_tag "file-upload/load-image.min.js" %>
|
|
||||||
<%= javascript_include_tag "file-upload/canvas-to-blob.min.js" %>
|
|
||||||
<%= javascript_include_tag "file-upload/jquery.iframe-transport.js" %>
|
|
||||||
<%= javascript_include_tag "file-upload/jquery.fileupload.js" %>
|
|
||||||
<%= javascript_include_tag "file-upload/jquery.fileupload-fp.js" %>
|
|
||||||
<%= javascript_include_tag "file-upload/jquery.fileupload-ui.js" %>
|
|
||||||
<%= javascript_include_tag "file-upload/drop-zone.js" %>
|
|
||||||
<%= javascript_include_tag "admin/filemanager.js" %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<script id="template-upload" type="text/x-tmpl">
|
|
||||||
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
|
||||||
<li class="template-upload fade">
|
|
||||||
<ul class="clearfix">
|
|
||||||
<li class="action-bnt">
|
|
||||||
{% if (o.files.valid && !i) { %}
|
|
||||||
<div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0">
|
|
||||||
<div class="bar" style="width:0%;"></div>
|
|
||||||
</div>
|
|
||||||
{% if (!o.options.autoUpload) { %}
|
|
||||||
<button class="btn btn-primary start">
|
|
||||||
<i class="icon-upload icon-white"></i>
|
|
||||||
</button>
|
|
||||||
{% } %}
|
|
||||||
{% } %}
|
|
||||||
{% if (!i) { %}
|
|
||||||
<button class="btn btn-warning cancel">
|
|
||||||
<i class="icon-ban-circle icon-white"></i>
|
|
||||||
</button>
|
|
||||||
{% } %}
|
|
||||||
</li>
|
|
||||||
<li class="preview pull-left"><span class="fade"></span></li>
|
|
||||||
<li class="name-size">
|
|
||||||
<p>{%=file.name%}</p>
|
|
||||||
{% if (file.error) { %}
|
|
||||||
<p class="error"><span class="label label-important">Error</span> {%=file.error%}</p>
|
|
||||||
{% } else if (o.files.valid && !i) { %}
|
|
||||||
<p class="label label-info">{%=o.formatFileSize(file.size)%}</p>
|
|
||||||
{% } %}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{% } %}
|
|
||||||
</script>
|
|
||||||
<!-- The template to display files available for download -->
|
|
||||||
<script id="template-download" type="text/x-tmpl">
|
|
||||||
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
|
||||||
<li class="template-download fade">
|
|
||||||
<ul class="clearfix">
|
|
||||||
{% if (file.error) { %}
|
|
||||||
<li class="name-size">
|
|
||||||
<p>{%=file.name%}</p>
|
|
||||||
<p class="error"><span class="label label-important">Error</span> {%=file.error%}</p>
|
|
||||||
</li>
|
|
||||||
{% } else { %}
|
|
||||||
<li class="preview">
|
|
||||||
{% if (file.thumbnail_url) { %}
|
|
||||||
<a href="{%=file.url%}" title="{%=file.name%}" data-gallery="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
|
|
||||||
{% } %}
|
|
||||||
</li>
|
|
||||||
<li class="name-size">
|
|
||||||
<p><a href="{%=file.url%}" title="{%=file.name%}" data-gallery="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a></p>
|
|
||||||
<p ><span class="label label-success">Success</span> File uploaded successfully!</p>
|
|
||||||
<p class="label label-info">{%=o.formatFileSize(file.size)%}</p>
|
|
||||||
</li>
|
|
||||||
{% } %}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{% } %}
|
|
||||||
</script>
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
$("#delete_all").attr("action", "<%= delete_admin_assets_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]) %>");
|
||||||
|
$("#sort_headers").html("<%= j render 'sort_headers' %>");
|
||||||
|
$("#tbody_assets").html("<%= j render :partial => 'asset', :collection => @assets %>");
|
||||||
|
$("#asset_pagination").html("<%= j paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>");
|
||||||
@@ -1 +0,0 @@
|
|||||||
<%= render :partial => 'asset', :object => @asset %>
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<li class="filter-item selected_user <%= 'check-item' unless user == current_user || user.admin %>" id="<%= user.id %>">
|
<li class="filter-item selected_user <%= 'check-item' unless user == current_user || is_admin? %>" id="<%= user.id %>">
|
||||||
<label>
|
<label>
|
||||||
<%= image_tag (user.avatar? ? user.avatar.thumb : 'menber-pic.png'), :class => "user-pic" %>
|
<%= image_tag (user.avatar? ? user.avatar.thumb : 'menber-pic.png'), :class => "user-pic" %>
|
||||||
<span class="user-name"><%= user.name %></span>
|
<span class="user-name"><%= user.name %></span>
|
||||||
<span><%= get_user_module_role(user) %></span>
|
<span><%= get_user_module_role(user) %></span>
|
||||||
</label>
|
</label>
|
||||||
<% unless user == current_user || user.admin %>
|
<% unless user == current_user || is_admin? %>
|
||||||
<input type="checkbox">
|
<input type="checkbox">
|
||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
@@ -13,13 +13,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mini-layout-body span10">
|
<div class="mini-layout-body span10">
|
||||||
<%= link_to t(:module_authorization), admin_authorizations_path(@module_app.key) if @module_app.is_authorizable %>
|
<%= link_to t(:module_authorization), admin_authorizations_path(@module_app.key) %>
|
||||||
<% @module_app.authorizable_models.each do |authorizable_model| %>
|
<% @module_app.authorizable_models.each do |authorizable_model| %>
|
||||||
<%= link_to (authorizable_model.eql?('Category') ? t(:category_auth) : "#{authorizable_model.underscore.humanize.capitalize} #{t(:authorization_)}"), admin_authorizations_path(@module_app.key, type: "#{authorizable_model.underscore}_authorization") %>
|
<%= link_to (authorizable_model.eql?('Category') ? t(:category_auth) : "#{authorizable_model.underscore.humanize.capitalize} #{t(:authorization_)}"), admin_authorizations_path(@module_app.key, type: authorizable_model.underscore) %>
|
||||||
<% end %>
|
|
||||||
<% @module_app.approvable_models.each do |approvable_model| %>
|
|
||||||
<%= link_to (approvable_model.eql?('Category') ? t(:approval_) : "#{approvable_model.underscore.humanize.capitalize} #{t(:approval_)}"), admin_authorizations_path(@module_app.key, type: "#{approvable_model.underscore}_approval") %>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<%= link_to t(:approval_), admin_authorizations_path(@module_app.key, type: 'approval') if @module_app.is_approvable %>
|
||||||
<% if @error %>
|
<% if @error %>
|
||||||
<%= @error %>
|
<%= @error %>
|
||||||
<% else %>
|
<% else %>
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
$("#card-list").append("<%= j render partial: 'user', collection: @users %>");
|
||||||
|
$("#member-filter").modal('hide');
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
$("#card-list").html("<%= j render partial: 'user', collection: @users %>");
|
|
||||||
$("#member-filter").modal('hide');
|
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<li><%= link_to show_toggle_archive_btn(category) , toggle_admin_module_app_category_path(@module_app_id, category), method: :post, remote: true, class: "archive_toggle" %></li>
|
<li><%= link_to show_toggle_archive_btn(category) , toggle_admin_module_app_category_path(@module_app_id, category), method: :post, remote: true, class: "archive_toggle" %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if is_manager? || is_admin? %>
|
<% if is_manager? || is_admin? %>
|
||||||
<li><%= link_to t(:category_auth), admin_authorizations_path(@module_app.key, 'category_authorization', category.id) %></li>
|
<li><%= link_to t(:category_auth), admin_authorizations_path(@module_app.key, 'category', category.id) %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= index_table %>
|
<%= index_table %>
|
||||||
|
|
||||||
<%= @index_footer %>
|
<%= @index_footer %>
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<%= render_sort_bar(true, delete_admin_designs_path(:direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]),
|
||||||
|
['title', 'title','span2', :title],
|
||||||
|
['', '', 'span1', :default],
|
||||||
|
['intro', 'intro', 'span7', :intro],
|
||||||
|
['author', 'author', 'span2', :author]).html_safe %>
|
||||||
@@ -14,23 +14,15 @@
|
|||||||
<div id="sidebar-menu">
|
<div id="sidebar-menu">
|
||||||
<div class="scroller">
|
<div class="scroller">
|
||||||
<ul class="sidebar-nav no-sub-nav">
|
<ul class="sidebar-nav no-sub-nav">
|
||||||
<li title="Structure"><%= link_to admin_items_path do %><span><i class="icons-flow-tree"></i></span><%end%></li>
|
<li title="Structure"><a href="/orbit_4.0.1/admin/items/items.shtml?sidebarNavList=0&subNavBlockList=0"><span><i class="icons-flow-tree"></i></span></a></li>
|
||||||
|
<li title="Site Map"><a href="/orbit_4.0.1/admin/sitemap/sitemap.shtml?sidebarNavList=1&subNavBlockList=0"><span><i class="icons-directions"></i></span></a></li>
|
||||||
<li title="Site Map"><%= link_to admin_site_sitemap_path(@site), :class => active_for_action('sites', 'sitemap') do %><span><i class="icons-directions"></i></span><%end%></li>
|
<li title="Modules"><a href="/orbit_4.0.1/admin/modules/all.shtml?sidebarNavList=2&subNavBlockList=0"><span><i class="icons-layout"></i></span></a></li>
|
||||||
|
<li title="Templates"><a href="/orbit_4.0.1/admin/templates/all.shtml?sidebarNavList=3&subNavBlockList=0"><span><i class="icons-brush"></i></span></a></li>
|
||||||
<li title="Modules"><%= link_to admin_module_store_path, :class => active_for_action('module_store', 'index') do %><span><i class="icons-layout"></i></span><%end%></li>
|
<li title="Site Info"><a href="/orbit_4.0.1/admin/site_info/index.shtml?sidebarNavList=4&subNavBlockList=0"><span><i class="icons-browser"></i></span></a></li>
|
||||||
|
<li title="Search Engine"><a href="/orbit_4.0.1/admin/search_engine/index.shtml?sidebarNavList=5&subNavBlockList=0"><span><i class="icons-search"></i></span></a></li>
|
||||||
<li title="Templates"><%= link_to admin_designs_path, :class => active_for_action('template_store', 'index') do %><span><i class="icons-brush"></i></span><%end%></li>
|
<li title="Preference"><a href="/orbit_4.0.1/admin/preference/index.shtml?sidebarNavList=7&subNavBlockList=0"><span><i class="icons-cog"></i></span></a></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>
|
||||||
|
</ul>
|
||||||
<li title="Site Info"><%= link_to admin_site_site_info_path(@site), :class => active_for_action('sites', 'site_info') do %><span><i class="icons-browser"></i></span><%end%></li>
|
|
||||||
|
|
||||||
<li title="Search Engine"><%= link_to admin_site_search_engine_path(@site), :class => active_for_action('sites', 'site_info') do %><span><i class="icons-search"></i></span><%end%></li>
|
|
||||||
|
|
||||||
<li title="Preference"><%= link_to admin_site_preference_path(@site), :class => active_for_action('sites', 'preference') do %><span><i class="icons-cog"></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>
|
|
||||||
--> </ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sub-nav-arrow"></div>
|
<div class="sub-nav-arrow"></div>
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
<%= render 'node_and_children', node: node %>
|
<%= render 'node_and_children', node: node %>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<%= render 'layouts/delete_modal', delete_options: {remote: true} %>
|
<%= render 'layouts/delete_modal' %>
|
||||||
|
|
||||||
|
<div id="view-page" class="nano" style="display:none">
|
||||||
|
<div class="page-info clearfix">
|
||||||
|
<a class="pull-right" href="javascript:$.pageslide.close()"><i class="icons-arrow-left-2"></i></a>
|
||||||
|
<h3 class="page-name"></h3>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<%= javascript_include_tag "lib/jquery.pageslide.js" %>
|
<%= javascript_include_tag "lib/jquery.pageslide.js" %>
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
<input id="filter-input" class="search-query input-medium" type="text" placeholder="<%= t('search.tags') %>" value="">
|
<input id="filter-input" class="search-query input-medium" type="text" placeholder="<%= t('search.tags') %>" value="">
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div id="tags_index">
|
<div id="tags_index">
|
||||||
<%= render 'index' %>
|
<%= render 'index' %>
|
||||||
</div>
|
</div>
|
||||||
@@ -9,6 +9,12 @@
|
|||||||
$('#app_page_url').html("<div class='well'><%= t('default_widget.no_support_setting')%></div>");
|
$('#app_page_url').html("<div class='well'><%= t('default_widget.no_support_setting')%></div>");
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<% if @app_frontend_urls.first =='default_widget' %>
|
||||||
|
$('#app_page_frontend_style').html("<%= escape_javascript(select 'page', 'frontend_style', @selected[:module_app].widgets[@selected[:app_frontend_url]]) %>");
|
||||||
|
<% else %>
|
||||||
|
$('#app_page_frontend_style').html("<%= t('default_widget.no_support_setting')%>");
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if show_default_widget_setting_panel %>
|
<% if show_default_widget_setting_panel %>
|
||||||
$('#app_page_tag').html("<%= j render :partial => 'admin/page_parts/widget_data_source_tag',:locals=>{:object=>@item} %>");
|
$('#app_page_tag').html("<%= j render :partial => 'admin/page_parts/widget_data_source_tag',:locals=>{:object=>@item} %>");
|
||||||
|
|
||||||
|
|||||||
@@ -1,117 +0,0 @@
|
|||||||
<% # encoding: utf-8 %>
|
|
||||||
|
|
||||||
<% content_for :side_bar do %>
|
|
||||||
<%= render :partial => 'layouts/side_bar', :locals => {:link_name => t(:user), :link_url => admin_site_site_info_path(@site), :icon => 'icons-users', :side_bar_content => 'admin/users_new_interface/side_bar'} %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% content_for :page_specific_css do %>
|
|
||||||
<%= stylesheet_link_tag "lib/main-forms" %>
|
|
||||||
<%= stylesheet_link_tag "lib/fileupload" %>
|
|
||||||
<%= stylesheet_link_tag "lib/main-list" %>
|
|
||||||
<% end %>
|
|
||||||
<% content_for :page_specific_javascript do %>
|
|
||||||
<%= javascript_include_tag "lib/bootstrap-fileupload" %>
|
|
||||||
<%= javascript_include_tag "lib/file-type" %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<%= form_for(:plugin_intro, :url => @url, :method => @verb, html: {class: "form-horizontal main-forms previewable"} ) do |f| %>
|
|
||||||
|
|
||||||
<%= f.error_messages %>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
|
|
||||||
<!-- Input Area -->
|
|
||||||
<div class="input-area">
|
|
||||||
|
|
||||||
<!-- Module Tabs -->
|
|
||||||
<div class="nav-name"><strong><%= I18n.t("module_name.#{@app_type_name}") %></strong></div>
|
|
||||||
<ul class="nav nav-pills module-nav">
|
|
||||||
<li></li>
|
|
||||||
<li class="active">
|
|
||||||
<a href="#basic" data-toggle="tab"><%= t(:basic) %></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- Module -->
|
|
||||||
<div class="tab-content module-area">
|
|
||||||
|
|
||||||
<!-- Basic Module -->
|
|
||||||
<div class="tab-pane fade in active" id="basic">
|
|
||||||
|
|
||||||
<% if !params[:user_id].blank? %>
|
|
||||||
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t("personal_plugins.author") %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= User.from_id(params[:user_id]).name rescue ''%>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<!-- frontend_page -->
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t("personal_plugins.frontend_page") %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box :brief_intro, :checked => @set_type.brief_intro %> <%= t("personal_plugins.brief_intro") %>
|
|
||||||
<%= f.check_box :complete_list, :checked => @set_type.complete_list %> <%= t("personal_plugins.complete_list") %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Language Tabs -->
|
|
||||||
<div class="nav-name"><strong><%= t(:language) %></strong></div>
|
|
||||||
<ul class="nav nav-pills language-nav">
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<li class="<%= 'active' if i == 0 %>">
|
|
||||||
<a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a>
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- Language -->
|
|
||||||
<div class="tab-content language-area">
|
|
||||||
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
|
|
||||||
<div class="<%= locale %> tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
|
|
||||||
|
|
||||||
<!-- Content -->
|
|
||||||
<div class="control-group input-content">
|
|
||||||
<label class="control-label muted"><%= t(:content) %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="textarea">
|
|
||||||
<%= f.fields_for :text_translations do |f| %>
|
|
||||||
<%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@set_type.text_translations[locale] rescue nil) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Form Actions -->
|
|
||||||
<div class="form-actions">
|
|
||||||
<%= f.hidden_field :user_id, :value => params[:user_id] if !params[:user_id].blank? %>
|
|
||||||
<%= f.submit t('submit'), class: 'btn btn-primary' %>
|
|
||||||
<%= link_to t('cancel'), get_go_back, :class=>"btn" %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<% end %>
|
|
||||||
@@ -7,8 +7,8 @@
|
|||||||
<%= link_to t(:all_plugin_summary)%>
|
<%= link_to t(:all_plugin_summary)%>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<% @plugins.each do |plugin| %>
|
<% @plugins.each do |plugin| %>
|
||||||
<%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.app_name ? "active" : nil) do %>
|
<%= content_tag :li, :class=>(params[:show_plugin_profile] == plugin.name ? "active" : nil) do %>
|
||||||
<%= link_to plugin.name, admin_plugins_path(:show_plugin_profile => plugin.app_name) %>
|
<%= link_to plugin.name, admin_plugins_path(:show_plugin_profile => plugin.name) %>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,26 @@
|
|||||||
<nav id="sidebar">
|
<%= content_tag :li, :class => active_for_controllers('sites') do -%>
|
||||||
<h2 class="position"><a href="#"><i class="icons-cog"></i></a></h2>
|
<%= link_to content_tag(:i, nil, :class => 'icons-cog') + content_tag(:span, t('site.settings')), admin_site_site_info_path(@site) %>
|
||||||
<div id="sidebar-menu">
|
|
||||||
<div class="scroller">
|
|
||||||
<ul class="sidebar-nav no-sub-nav">
|
|
||||||
<li title="Structure"><%= link_to admin_items_path do %><span><i class="icons-flow-tree"></i></span><%end%></li>
|
|
||||||
|
|
||||||
<li title="Site Map"><%= link_to admin_site_sitemap_path(@site), :class => active_for_action('sites', 'sitemap') do %><span><i class="icons-directions"></i></span><%end%></li>
|
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('sites')) do -%>
|
||||||
|
<%= content_tag :li, link_to(t('site.info'), admin_site_site_info_path(@site)), :class => active_for_action('sites', 'site_info') %>
|
||||||
|
<%#= content_tag :li, link_to(t(:system_info), admin_site_system_info_path(@site)), :class => active_for_action('sites', 'system_info') %>
|
||||||
|
<%#= content_tag :li, link_to(t('site.language'), admin_site_language_path(@site)), :class => active_for_action('sites', 'language') %>
|
||||||
|
<%= content_tag :li, link_to(t('mail.setting'), admin_site_mail_setting_path(@site)), :class => active_for_action('sites', 'mail_setting') %>
|
||||||
|
<%#= content_tag :li, link_to(t(:theme), admin_site_ui_theme_path(@site)), :class => active_for_action('sites', 'ui_theme') %>
|
||||||
|
<%= content_tag :li, link_to(t('sitemap'), admin_site_sitemap_path(@site)), :class => active_for_action('sites', 'sitemap') %>
|
||||||
|
<%= content_tag :li, link_to(t('user_actions'), admin_user_actions_path), :class => active_for_action('user_actions', 'index') %>
|
||||||
|
<% end -%>
|
||||||
|
|
||||||
<li title="Modules"><%= link_to admin_module_store_path, :class => active_for_action('module_store', 'index') do %><span><i class="icons-layout"></i></span><%end%></li>
|
<% end -%>
|
||||||
|
|
||||||
<li title="Templates"><%= link_to admin_designs_path, :class => active_for_action('template_store', 'index') do %><span><i class="icons-brush"></i></span><%end%></li>
|
<%= content_tag :li, :class => active_for_controllers('designs') do -%>
|
||||||
|
<%= link_to content_tag(:i, nil, :class => 'icons-brush') + content_tag(:span, t(:template)), admin_designs_path %>
|
||||||
|
<% end -%>
|
||||||
|
|
||||||
|
<%= content_tag :li, :class => active_for_controllers('template_store', 'module_store') do -%>
|
||||||
<li title="Site Info"><%= link_to admin_site_site_info_path(@site), :class => active_for_action('sites', 'site_info') do %><span><i class="icons-browser"></i></span><%end%></li>
|
<%= link_to content_tag(:i, nil, :class => 'icons-cart') + content_tag(:span, t(:purchase)), admin_purchases_path %>
|
||||||
|
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('template_store', 'module_store')) do -%>
|
||||||
<li title="Search Engine"><%= link_to admin_site_search_engine_path(@site), :class => active_for_action('sites', 'search_engine') do %><span><i class="icons-search"></i></span><%end%></li>
|
<%= content_tag :li, link_to(t('store.template'), admin_template_store_path), :class => active_for_action('template_store', 'index') %>
|
||||||
|
<%= content_tag :li, link_to(t('store.module'), admin_module_store_path), :class => active_for_action('module_store', 'index') %>
|
||||||
<li title="Preference"><%= link_to admin_site_preference_path(@site), :class => active_for_action('sites', 'preference') do %><span><i class="icons-cog"></i></span><%end%></li>
|
<% end %>
|
||||||
|
<% end -%>
|
||||||
<!-- <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>
|
|
||||||
--> </ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="sub-nav-arrow"></div>
|
|
||||||
</nav>
|
|
||||||
@@ -1,10 +1,16 @@
|
|||||||
<% sitemap_block.children.each_with_index do |child, i| %>
|
<div class="map-block <%= 'disabled' if !sitemap_block.show_in_sitemap_for(temp_locale) %>">
|
||||||
<li "<%= 'disabled' if !child.show_in_sitemap_for(temp_locale) %>">
|
<h4>
|
||||||
<h6>
|
<button id="<%= sitemap_block.id %>" class="onoff pull-right" temp_locale="<%= temp_locale %>"><%= sitemap_block.show_in_sitemap_for(temp_locale) ? t('on_upcase') : t('off_upcase') %></button>
|
||||||
<%= content_tag :button, :id => child.id, :temp_locale => temp_locale, :disabled => !child.show_in_sitemap_for(temp_locale) do %>
|
<span><%= sitemap_block_counter + 1 %> <%= sitemap_block.title_translations[temp_locale] %></span>
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<% sitemap_block.children.each_with_index do |child, i| %>
|
||||||
|
<li class="clear <%= 'disabled' if !child.show_in_sitemap_for(temp_locale) %>">
|
||||||
|
<%= content_tag :button, :id => child.id, :class => "onoff pull-right", :temp_locale => temp_locale, :disabled => !child.show_in_sitemap_for(temp_locale) do %>
|
||||||
|
<%= child.show_in_sitemap_for(temp_locale) ? t('on_upcase') : t('off_upcase') %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<input type="checkbox" class="toggle-check" data-deploy="right">
|
<span><%= "#{sitemap_block_counter + 1}-#{i + 1}" %> <%= child.title_translations[temp_locale] %></span>
|
||||||
<span><%= "#{sitemap_block_counter + 1}-#{i + 1}" %> <%= child.title_translations[temp_locale] %></span>
|
</li>
|
||||||
</h6>
|
|
||||||
</li>
|
|
||||||
<% end if sitemap_block.children %>
|
<% end if sitemap_block.children %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
@@ -1,217 +0,0 @@
|
|||||||
<% 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'} %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<%= stylesheet_link_tag "lib/wrap-nav"%>
|
|
||||||
<%= stylesheet_link_tag "lib/main-forms"%>
|
|
||||||
<%= stylesheet_link_tag "lib/fileupload"%>
|
|
||||||
<%= stylesheet_link_tag "lib/togglebox"%>
|
|
||||||
|
|
||||||
<%= javascript_include_tag 'lib/bootstrap-fileupload' %>
|
|
||||||
<%= javascript_include_tag 'lib/site_set' %>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<%= form_for @site, :url => admin_site_path(@site), :html => {:class => "form-horizontal main-forms"} do |f| %>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Input Area -->
|
|
||||||
<div class="input-area">
|
|
||||||
|
|
||||||
<div class="nav-name"><strong>Classification</strong></div>
|
|
||||||
<ul class="nav nav-pills language-nav">
|
|
||||||
<li class="active">
|
|
||||||
<a href="#sidebar-nav" data-toggle="tab">Sidebar Nav</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#system-email" data-toggle="tab">System Email</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#openness" data-toggle="tab">Openness</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#language-set" data-toggle="tab">Language</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#orbitBar-them" data-toggle="tab">OrbitBar Theme</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="tab-content">
|
|
||||||
|
|
||||||
<!-- Sidebar Nav -->
|
|
||||||
<div id="sidebar-nav" class="tab-pane fade in active">
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Enable Sidebar Sub Nav</label>
|
|
||||||
<div class="controls">
|
|
||||||
<input type="checkbox" class="toggle-check set-sidebar-state" data-disabled="true">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- System Email -->
|
|
||||||
<%= f.fields_for :site_settings, @site['site_settings'] do |f| %>
|
|
||||||
|
|
||||||
<div id="system-email" class="tab-pane fade">
|
|
||||||
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.address' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.text_field :address, :value => (@site['site_settings']['address'] rescue nil), :class=>"input-large", :placeholder=>"Email Address" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.domain' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.text_field :port, :value => (@site['site_settings']['port'] rescue nil), :class=>"input-large", :placeholder=>"Domain" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.authentication' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.text_field :authentication, :value => (@site['site_settings']['authentication'] rescue nil), :class=>"input-large", :placeholder =>"Authentication" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.user_name' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.text_field :user_name, :value => (@site['site_settings']['user_name'] rescue nil), :class=>"input-large", :placeholder=>"User Name" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.password' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.text_field :password, :value => (@site['site_settings']['password'] rescue nil), :class=>"input-large", :placeholder=>"Password" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.port' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.text_field :port, :value => (@site['site_settings']['port'] rescue nil),:placeholder=>"Port", :class=>"input-mini" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.tls' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box :tls, :checked => (@site['site_settings']['tls'].eql?('1') rescue false),:class=>"toggle-check" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= t 'mail.enable_starttls_auto' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box 'enable_starttls_auto', :checked => (@site['site_settings']['enable_starttls_auto'].eql?('1') rescue false), :class=>"toggle-check" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Openness -->
|
|
||||||
<div id="openness" class="tab-pane fade">
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= I18n.t('site.frontend_closed')%></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box :frontend_closed , :class=>"toggle-check"%>
|
|
||||||
<span class="help-block">Only can be viewed by users logged in</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted"><%= I18n.t('site.backend_openness_on') %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box :backend_openness_on , :class=>"toggle-check" %>
|
|
||||||
<span class="help-block">All users can visit backend pages</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Disable personal desktop</label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box :desktop_closed , :class=>"toggle-check" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Language -->
|
|
||||||
<div id="language-set" class="tab-pane fade">
|
|
||||||
<!-- <div class="control-group">
|
|
||||||
<label class="control-label muted">Enable User Language Detection</label>
|
|
||||||
<div class="controls">
|
|
||||||
<input type="checkbox" class="toggle-check" data-disabled="true">
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Default Language</label>
|
|
||||||
<div class="controls">
|
|
||||||
<% @site_in_use_locales.each do |locale| %>
|
|
||||||
<%= check_box_tag :default_locale, locale, (@site.enabled_for.nil?), :class=>"toggle-check" %>
|
|
||||||
<%= I18nVariable.from_locale(locale) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Enable Language</label>
|
|
||||||
<div class="controls">
|
|
||||||
<% @site_valid_locales.each do |valid_locale| %>
|
|
||||||
<%= check_box_tag 'site[enabled_for][]', valid_locale, (@site.enabled_for.nil?), :class=>"toggle-check" %>
|
|
||||||
<%= I18nVariable.from_locale(valid_locale) %>
|
|
||||||
<% end %>
|
|
||||||
<%= hidden_field_tag 'site[enabled_for][]', '' %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- OrbitBar Them -->
|
|
||||||
<div id="orbitBar-them" class="tab-pane fade">
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">OrbitBar Logo Icon</label>
|
|
||||||
<div class="controls">
|
|
||||||
<!-- if this page editing please add class "fileupload-edit" -->
|
|
||||||
<div class="fileupload fileupload-new clearfix" data-provides="fileupload">
|
|
||||||
<div class="fileupload-new thumbnail pull-left">
|
|
||||||
<% if @site.default_image %>
|
|
||||||
<%= image_tag( @site.default_image, :size=>"120x120") rescue ''%>
|
|
||||||
<% else %>
|
|
||||||
<img class="pull-left upload-picture" src="/assets/default-img.png" />
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<div class="fileupload-preview fileupload-exists thumbnail pull-left"></div>
|
|
||||||
<span class="btn btn-file">
|
|
||||||
<% if @site.default_image.file.present?%>
|
|
||||||
<%= f.file_field :default_image, :id => "input-upload", :class => 'fileupload-new', :onchange => "document.getElementById('fu').innerHTML = this.form.fu.value = this.value;" %>Change
|
|
||||||
<%else%>
|
|
||||||
<%= f.file_field :default_image, :id => "input-upload", :class => 'fileupload-new', :onchange => "document.getElementById('fu').innerHTML = this.form.fu.value = this.value;" %>Select Image
|
|
||||||
<%end%>
|
|
||||||
</span>
|
|
||||||
<a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Cancel</a>
|
|
||||||
<div class="controls" data-toggle="buttons-checkbox">
|
|
||||||
<label class="checkbox inline btn btn-danger fileupload-remove">
|
|
||||||
<% if @site.default_image.file %>
|
|
||||||
<label class="checkbox">
|
|
||||||
<%= check_box_tag 'site[remove_default_image]' %>
|
|
||||||
<%= t(:delete_) %>
|
|
||||||
</label>
|
|
||||||
<% end %>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- Form Actions -->
|
|
||||||
<div class="form-actions">
|
|
||||||
<%= f.submit t("submit"), :class => "btn btn-primary" %>
|
|
||||||
<%= f.submit t("cancel"), :class => "btn ", :type => 'reset' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</fieldset>
|
|
||||||
<%end%>
|
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
<% # encoding: utf-8 %>
|
|
||||||
|
|
||||||
<% 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'} %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<%= stylesheet_link_tag "lib/wrap-nav"%>
|
|
||||||
<%= stylesheet_link_tag "lib/main-forms"%>
|
|
||||||
<%= stylesheet_link_tag "lib/togglebox"%>
|
|
||||||
|
|
||||||
<%= javascript_include_tag 'lib/ckeditor/ckeditor' %>
|
|
||||||
<%= javascript_include_tag 'lib/ckeditor/replace/site_info' %>
|
|
||||||
<%= javascript_include_tag 'lib/site_set' %>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<%= form_for @site, :url => admin_site_path(@site), :html => {:class => "form-horizontal main-forms"} do |f| %>
|
|
||||||
|
|
||||||
<fieldset>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Input Area -->
|
|
||||||
<div class="input-area">
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Title-->
|
|
||||||
<div class="control-group input-title">
|
|
||||||
<label class="control-label muted">Google Search Syntax</label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= text_field_tag 'site[search][sitesearch]',(@site.search["sitesearch"] rescue nil),{ :class => "input-block-level" ,:placeholder => t("search.sitesearch") }%>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- CKeditor Site Header -->
|
|
||||||
<div class="control-group input-content">
|
|
||||||
<label class="control-label muted">Google Analytics Code</label>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="textarea">
|
|
||||||
<%= f.text_area :google_analytics, :class => "input-block-level"%>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<!-- Description -->
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Keywords</label>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="tab-content textarea-lang">
|
|
||||||
<div class="btn-group" data-toggle="buttons-radio">
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#textarea_<%= locale %>_0" data-toggle="tab"><%= I18nVariable.from_locale(locale) %></a>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<div class="tab-pane fade in <%= ( i == 0 ) ? "active" : '' %>" id="textarea_<%= locale %>_0">
|
|
||||||
<%= f.fields_for :keywords do |f| %>
|
|
||||||
<%= f.text_area locale, :class=>'resizable', :value => (@site.keywords(locale) rescue nil), :placeholder => I18nVariable.from_locale(locale), :rows=>"3" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Description</label>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="tab-content textarea-lang">
|
|
||||||
<div class="btn-group" data-toggle="buttons-radio">
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<a class="btn <%= ( i == 0 ) ? "active" : '' %>" href="#textarea_<%= locale %>_0" data-toggle="tab"><%= I18nVariable.from_locale(locale) %></a>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<div class="tab-pane fade in <%= ( i == 0 ) ? "active" : '' %>" id="textarea_<%= locale %>_0">
|
|
||||||
<%= f.fields_for :description do |f| %>
|
|
||||||
<%= f.text_area locale, :class=>'resizable', :value => (@site.description(locale) rescue nil), :placeholder => I18nVariable.from_locale(locale), :rows=>"3" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- Form Actions -->
|
|
||||||
<div class="form-actions">
|
|
||||||
<%= f.submit t("submit"), :class => "btn btn-primary" %>
|
|
||||||
<%= f.submit t("cancel"), :class => "btn ", :type => 'reset' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</fieldset>
|
|
||||||
<% end %>
|
|
||||||
@@ -4,116 +4,127 @@
|
|||||||
<%= 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 %>
|
||||||
|
|
||||||
<head>
|
<div id="poststuff">
|
||||||
<%= stylesheet_link_tag "lib/wrap-nav"%>
|
<%= form_for @site, :url => admin_site_path(@site), :html => {:class => "clear"} do |f| %>
|
||||||
<%= stylesheet_link_tag "lib/main-forms"%>
|
<div id="post-body">
|
||||||
<%= stylesheet_link_tag "lib/togglebox"%>
|
<div id="post-body-content" class="clear">
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
<%= javascript_include_tag 'lib/ckeditor/ckeditor' %>
|
<% @site_valid_locales.each do |locale|%>
|
||||||
<%= javascript_include_tag 'lib/ckeditor/replace/site_info' %>
|
<%#= raise @site_valid_locales.inspect %>
|
||||||
<%= javascript_include_tag 'lib/site_set' %>
|
<%= content_tag :li, link_to(I18nVariable.from_locale(locale), ".#{locale}", :data => {:toggle => "tab"}), :class => (active_when_current_locale_eq locale) %>
|
||||||
</head>
|
<% end %>
|
||||||
|
</ul>
|
||||||
<%= form_for @site, :url => admin_site_path(@site), :html => {:class => "form-horizontal main-forms"} do |f| %>
|
<div class="tab-content form-horizontal">
|
||||||
|
<div class="control-group" style="margin-bottom: 0;">
|
||||||
<fieldset>
|
<div class="controls">
|
||||||
<!-- Input Area -->
|
<label class="checkbox">
|
||||||
<div class="input-area">
|
<%= f.check_box :title_always_on %> <%= t :always_display_title %>
|
||||||
|
</label>
|
||||||
<!-- Language Tabs -->
|
|
||||||
<div class="nav-name"><strong>Language</strong></div>
|
|
||||||
<ul class="nav nav-pills language-nav">
|
|
||||||
<% @site_valid_locales.each do |locale|%>
|
|
||||||
<%#= raise @site_valid_locales.inspect %>
|
|
||||||
<%= content_tag :li, link_to(I18nVariable.from_locale(locale), ".#{locale}", :data => {:toggle => "tab"}), :class => (active_when_current_locale_eq locale) %>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- Language -->
|
|
||||||
<div class="tab-content language-area">
|
|
||||||
|
|
||||||
<% @site_valid_locales.each do |locale|%>
|
|
||||||
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
|
||||||
<div class="control-group input-title">
|
|
||||||
<label class="control-label muted"><%= t 'site.title' %></label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.fields_for :title_translations do |f| %>
|
|
||||||
<%= f.text_field locale, :class => "input-xxlarge", :value => (@site.title_translations[locale] rescue nil) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<!-- Always shoe in the title bar -->
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Always show in the title bar
|
|
||||||
</label>
|
|
||||||
<div class="controls">
|
|
||||||
<%= f.check_box :title_always_on, :class => "toggle-check" %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<!-- CKeditor Site Header -->
|
|
||||||
<% @site_valid_locales.each do |locale|%>
|
|
||||||
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
|
||||||
<label class="control-label muted"><%= t('site.header')%></label>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="textarea">
|
|
||||||
<%= f.fields_for :sub_menu_translations do |f| %>
|
|
||||||
<%= f.text_area locale, :class => "ckeditor input-block-level", :value => (@site.sub_menu_translations[locale] rescue nil) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<%end%>
|
|
||||||
<%end%>
|
|
||||||
|
|
||||||
<!-- Sitemap menu in Header -->
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Sitemap menu in header
|
|
||||||
</label>
|
|
||||||
<div class="controls">
|
|
||||||
<input type="checkbox" class="toggle-check" data-disabled="true">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<!-- Terms of Use -->
|
|
||||||
<div class="control-group">
|
|
||||||
<label class="control-label muted">Terms of Use
|
|
||||||
</label>
|
|
||||||
<div class="controls">
|
|
||||||
<input type="checkbox" class="toggle-check terms" data-disabled="true" checked="checked">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- CKeditor Default Terms of Use -->
|
|
||||||
<div class="control-group input-content hide">
|
|
||||||
<% @site_valid_locales.each do |locale|%>
|
|
||||||
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
|
||||||
<label class="control-label muted">Default Terms of Use</label>
|
|
||||||
<div class="controls">
|
|
||||||
<div class="textarea">
|
|
||||||
<%= f.fields_for :terms_of_user_translations do |f| %>
|
|
||||||
<%= f.text_area locale, :class => "ckeditor input-block-level", :value => (@site.terms_of_user_translations[locale] rescue nil) %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<%end%>
|
|
||||||
<%end%>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- Form Actions -->
|
|
||||||
<div class="form-actions">
|
|
||||||
<%= f.submit t("submit"), :class => "btn btn-primary" %>
|
|
||||||
<%= f.submit t("cancel"), :class => "btn ", :type => 'reset' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<% @site_valid_locales.each do |locale|%>
|
||||||
|
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.title' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.fields_for :title_translations do |f| %>
|
||||||
|
<%= f.text_field locale, :class => "input-xxlarge", :value => (@site.title_translations[locale] rescue nil) %>
|
||||||
|
<% end %>
|
||||||
|
<p class="help-block"><%= (t 'site.title_help').html_safe %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.openness' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.check_box :frontend_closed %><%= I18n.t('site.frontend_closed') %><br/>
|
||||||
|
<%= f.check_box :backend_openness_on %><%= I18n.t('site.backend_openness_on') %>
|
||||||
|
<p class="help-block"><%= (t 'site.search_help').html_safe %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.search' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= text_field_tag 'site[search][domains]',(@site.search["domains"] rescue nil), {:class => "input-xxlarge" ,:placeholder => t("search.domains") }%>
|
||||||
|
<%= text_field_tag 'site[search][sitesearch]',(@site.search["sitesearch"] rescue nil),{ :class => "input-xxlarge" ,:placeholder => t("search.sitesearch") }%>
|
||||||
|
<p class="help-block"><%= (t 'site.search_help').html_safe %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</fieldset>
|
<% @site_valid_locales.each do |locale|%>
|
||||||
<% end %>
|
<%= content_tag :div, :class => "tab-pane fade #{active_when_current_locale_eq locale} #{locale}" do %>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.keywords' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.fields_for :keywords do |f| %>
|
||||||
|
<%= f.text_area locale, :class => "input-xxlarge textarea-height-s", :value => (@site.keywords(locale) rescue nil) %>
|
||||||
|
<% end %>
|
||||||
|
<p class="help-block"><%= (t 'site.keywords_help').html_safe %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.description' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.fields_for :description do |f| %>
|
||||||
|
<%= f.text_area locale, :class => "input-xxlarge textarea-height-s", :value => (@site.description(locale) rescue nil) %>
|
||||||
|
<% end %>
|
||||||
|
<p class="help-block"><%= (t 'site.description_help').html_safe %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.header' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.fields_for :sub_menu_translations do |f| %>
|
||||||
|
<%= f.text_area locale, :class => "tinymce_textarea input-xxlarge", :value => (@site.sub_menu_translations[locale] rescue nil) %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.footer' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.fields_for :footer_translations do |f| %>
|
||||||
|
<%= f.text_area locale, :class => "tinymce_textarea input-xxlarge", :value => (@site.footer_translations[locale] rescue nil) %>
|
||||||
|
<% end %>
|
||||||
|
<p class="help-block"><%= (t 'site.footer_help').html_safe %></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"><%= t 'site.default_image' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<%= f.file_field :default_image, :id => "input-upload", :class => 'upload', :onchange => "document.getElementById('fu').innerHTML = this.form.fu.value = this.value;" %>
|
||||||
|
<span id='fu' class="file-name"></span>
|
||||||
|
<!--請程式務必將圖片尺寸加入到行內裡-->
|
||||||
|
<% if @site.default_image %>
|
||||||
|
<%= image_tag( @site.default_image, :size=>"120x120") rescue ''%>
|
||||||
|
<% else %>
|
||||||
|
<img class="pull-left upload-picture" src="/assets/default-img.png" />
|
||||||
|
<% end %>
|
||||||
|
<br>
|
||||||
|
<% if @site.default_image.file %>
|
||||||
|
<label class="checkbox">
|
||||||
|
<%= check_box_tag 'site[remove_default_image]' %>
|
||||||
|
<%= t(:delete_) %>
|
||||||
|
</label>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<div class="control-group" style="margin-bottom: 0;">
|
||||||
|
<label class="control-label"><%= t 'site.mobile_version' %></label>
|
||||||
|
<div class="controls">
|
||||||
|
<label class="checkbox">
|
||||||
|
<%= f.check_box :mobile_on %>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-actions">
|
||||||
|
<%= f.submit t("submit"), :class => "btn btn-primary" %>
|
||||||
|
<%= f.submit t("cancel"), :class => "btn ", :type => 'reset' %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
@@ -1,23 +1,21 @@
|
|||||||
<head>
|
|
||||||
<!-- Meta -->
|
|
||||||
<!--#include virtual="/orbit_4.0.1/include/meta.html"-->
|
|
||||||
|
|
||||||
<!-- Basic CSS -->
|
|
||||||
<!--#include virtual="/orbit_4.0.1/include/basic_css.html"-->
|
|
||||||
<%= stylesheet_link_tag "lib/wrap-nav"%>
|
|
||||||
<%= stylesheet_link_tag "lib/filter"%>
|
|
||||||
<%= stylesheet_link_tag "lib/sitemap"%>
|
|
||||||
<%= stylesheet_link_tag "lib/togglebox"%>
|
|
||||||
|
|
||||||
<%= javascript_include_tag 'lib/sitemap' %>
|
|
||||||
<%= javascript_include_tag 'lib/masonry.pkgd.min' %>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<% 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 %>
|
||||||
|
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||||
|
<li <%= ( i == 0 ) ? " class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<% @site_valid_locales.each_with_index do |temp_locale, i| %>
|
||||||
|
<div class="tab-pane site-map <%= temp_locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
|
||||||
|
<%= render :partial => 'sitemap_block', :collection => @items, :locals => {:temp_locale => temp_locale} %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<% content_for :page_specific_javascript do %>
|
<% content_for :page_specific_javascript do %>
|
||||||
<%= javascript_include_tag "lib/jquery.masonry.min.js" %>
|
<%= javascript_include_tag "lib/jquery.masonry.min.js" %>
|
||||||
<script>
|
<script>
|
||||||
@@ -58,35 +56,4 @@
|
|||||||
$.getScript('<%= admin_sites_path %>' + '/' + $(this).attr('id') + '/sitemap_toggle?parent=true&temp_locale=' + $(this).attr('temp_locale'));
|
$.getScript('<%= admin_sites_path %>' + '/' + $(this).attr('id') + '/sitemap_toggle?parent=true&temp_locale=' + $(this).attr('temp_locale'));
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<section id="main-wrap">
|
|
||||||
<div class="wrap-inner">
|
|
||||||
|
|
||||||
<div id="sitemap">
|
|
||||||
<ul id="map-tree-language" class="nav nav-pills">
|
|
||||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
|
||||||
<li <%= ( i == 0 ) ? " class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
<% @site_valid_locales.each_with_index do |temp_locale, i| %>
|
|
||||||
<div class="tab-content map-tree-content">
|
|
||||||
<div class="line"></div>
|
|
||||||
<ul id="<%= temp_locale %>" class="map-tree tab-pane fade <%= ( i == 0 ) ? "in active" : '' %>">
|
|
||||||
<%= render :partial => 'sitemap_block', :collection => @items, :locals => {:temp_locale => temp_locale} %>
|
|
||||||
</ul>
|
|
||||||
<% end %>
|
|
||||||
<br/><br/><br/>
|
|
||||||
|
|
||||||
|
|
||||||
<% @site_valid_locales.each_with_index do |temp_locale, i| %>
|
|
||||||
<div class="tab-pane site-map <%= temp_locale %> fade tab-pane <%= ( i == 0 ) ? "in active" : '' %>">
|
|
||||||
<%= render :partial => 'sitemap_block', :collection => @items, :locals => {:temp_locale => temp_locale} %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="accordion-inner pagination-right" data-toggle="buttons-checkbox">
|
<div class="accordion-inner pagination-right" data-toggle="buttons-checkbox">
|
||||||
<% @roles.each do |role| %>
|
<% @roles.each do |role| %>
|
||||||
<%#= link_to role.title, url_for(:filter => @filter, :new_filter => {:type => 'role', :id => role.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn btn-small #{is_filter_active?('role', role.id)}" %>
|
<%#= link_to role.title, url_for(:filter => @filter, :new_filter => {:type => 'role', :id => role.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn btn-small #{is_filter_active?('role', role.id)}" %>
|
||||||
<%= link_to role.title, url_for(:at=>params[:at],:filter => @filter, :new_filter => {:type => 'role', :id => role.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn btn-small #{' active' if (@filter['role'].include?(role.id) rescue nil)}" %>
|
<%= link_to role.title, url_for(:filter => @filter, :new_filter => {:type => 'role', :id => role.id}, :sort => params[:sort], :direction => params[:direction], :sort_options => params[:sort_options]), :class => "btn btn-small #{' active' if (@filter['role'].include?(role.id) rescue nil)}" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= render :partial => 'clear_filters', :locals => {:type => 'role'} %>
|
<%= render :partial => 'clear_filters', :locals => {:type => 'role'} %>
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
<%= render :partial=>"infos"%>
|
<%= render :partial=>"infos"%>
|
||||||
|
|
||||||
<div id="roles-area" class="input-area">
|
|
||||||
<%= render :partial=>"roles"%>
|
<%= render :partial=>"roles"%>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<% content_for :page_specific_javascript do -%>
|
<% content_for :page_specific_javascript do -%>
|
||||||
|
|||||||