Timeline merge plus font update
This commit is contained in:
commit
a0c09046a8
603 files changed
+26289
-2610
No files matched your search
@@ -1,4 +1,4 @@
|
||||
$('#submit_button').live('click', function(){
|
||||
$(document).on('click', '#ajax_form_submit', function(){
|
||||
$('#ajaxForm').ajaxSubmit({
|
||||
beforeSubmit: function(a,f,o) {
|
||||
o.dataType = 'script';
|
||||
|
||||
@@ -6,23 +6,14 @@ $('.bulletin_files_block a.delete').live('click', function(){
|
||||
$(this).parents('.list_item').remove();
|
||||
});
|
||||
|
||||
$('.action a.remove_existing_record').live('click', function(){
|
||||
$(document).on('click', '.action a.remove_existing_record', function(){
|
||||
$(this).next('.should_destroy').attr('value', 1);
|
||||
//$("#bulletin_" + $(this).prev().attr('value')).hide();
|
||||
$("tr#bulletin_" + $(this).prev().attr('value')).hide();
|
||||
$("tr #" + $(this).prev().attr('value')).hide();
|
||||
});
|
||||
|
||||
$('.quick_edit_cancel').live('click', function(){
|
||||
$(document).on('click', '.quick_edit_cancel', function(){
|
||||
tr = $(this).attr('rel');
|
||||
$('#' + tr).hide();
|
||||
$("tr#bulletin_file_" + $(this).prev().attr('value')).hide();
|
||||
$("tr#bulletin_link_" + $(this).prev().attr('value')).hide();
|
||||
});
|
||||
|
||||
$(document).on('click', '.list-remove', function(){
|
||||
$('#delete_bulletins').submit();
|
||||
});
|
||||
|
||||
$(document).on('click', '#check_all_bulletins', function(){
|
||||
$('.checkbox_in_list').attr("checked", this.checked);
|
||||
});
|
||||
@@ -7,7 +7,7 @@
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require jquery-ui
|
||||
//= require jquery.tinyscrollbar.min
|
||||
//= require jquery.tinyscrollbar
|
||||
//= require jquery.miniColors.min
|
||||
//= require bootstrap
|
||||
//= require orbitdesktopAPI
|
||||
|
||||
@@ -66,7 +66,7 @@ $(document).ready(function(){
|
||||
function getEvent(selet){
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/static/Other.xml",
|
||||
url: "/static/nccu_calendar.xml",
|
||||
dataType: "xml",
|
||||
timeout: 1000,
|
||||
error: function(xml){
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
jQuery(document).ajaxStart(function(){
|
||||
$('<div class="modal-backdrop fade in" id="sys_modal"><img src="/assets/ajax-loader.gif" style="margin-top: 25%;margin-left: 50%;"></div>').appendTo('body');
|
||||
});
|
||||
|
||||
jQuery(document).ajaxComplete(function(){
|
||||
$("#sys_modal").hide().remove();
|
||||
});
|
||||
@@ -0,0 +1,137 @@
|
||||
/*!
|
||||
* jQuery imagesLoaded plugin v2.0.1
|
||||
* http://github.com/desandro/imagesloaded
|
||||
*
|
||||
* MIT License. by Paul Irish et al.
|
||||
*/
|
||||
|
||||
/*jshint curly: true, eqeqeq: true, noempty: true, strict: true, undef: true, browser: true */
|
||||
/*global jQuery: false */
|
||||
|
||||
;(function($, undefined) {
|
||||
'use strict';
|
||||
|
||||
// blank image data-uri bypasses webkit log warning (thx doug jones)
|
||||
var BLANK = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
|
||||
|
||||
$.fn.imagesLoaded = function( callback ) {
|
||||
var $this = this,
|
||||
deferred = $.isFunction($.Deferred) ? $.Deferred() : 0,
|
||||
hasNotify = $.isFunction(deferred.notify),
|
||||
$images = $this.find('img').add( $this.filter('img') ),
|
||||
loaded = [],
|
||||
proper = [],
|
||||
broken = [];
|
||||
|
||||
function doneLoading() {
|
||||
var $proper = $(proper),
|
||||
$broken = $(broken);
|
||||
|
||||
if ( deferred ) {
|
||||
if ( broken.length ) {
|
||||
deferred.reject( $images, $proper, $broken );
|
||||
} else {
|
||||
deferred.resolve( $images );
|
||||
}
|
||||
}
|
||||
|
||||
if ( $.isFunction( callback ) ) {
|
||||
callback.call( $this, $images, $proper, $broken );
|
||||
}
|
||||
}
|
||||
|
||||
function imgLoaded( img, isBroken ) {
|
||||
// don't proceed if BLANK image, or image is already loaded
|
||||
if ( img.src === BLANK || $.inArray( img, loaded ) !== -1 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// store element in loaded images array
|
||||
loaded.push( img );
|
||||
|
||||
// keep track of broken and properly loaded images
|
||||
if ( isBroken ) {
|
||||
broken.push( img );
|
||||
} else {
|
||||
proper.push( img );
|
||||
}
|
||||
|
||||
// cache image and its state for future calls
|
||||
$.data( img, 'imagesLoaded', { isBroken: isBroken, src: img.src } );
|
||||
|
||||
// trigger deferred progress method if present
|
||||
if ( hasNotify ) {
|
||||
deferred.notifyWith( $(img), [ isBroken, $images, $(proper), $(broken) ] );
|
||||
}
|
||||
|
||||
// call doneLoading and clean listeners if all images are loaded
|
||||
if ( $images.length === loaded.length ){
|
||||
setTimeout( doneLoading );
|
||||
$images.unbind( '.imagesLoaded' );
|
||||
}
|
||||
}
|
||||
|
||||
// if no images, trigger immediately
|
||||
if ( !$images.length ) {
|
||||
doneLoading();
|
||||
} else {
|
||||
$images.bind( 'load.imagesLoaded error.imagesLoaded', function( event ){
|
||||
// trigger imgLoaded
|
||||
imgLoaded( event.target, event.type === 'error' );
|
||||
}).each( function( i, el ) {
|
||||
var src = el.src;
|
||||
|
||||
// find out if this image has been already checked for status
|
||||
// if it was, and src has not changed, call imgLoaded on it
|
||||
var cached = $.data( el, 'imagesLoaded' );
|
||||
if ( cached && cached.src === src ) {
|
||||
imgLoaded( el, cached.isBroken );
|
||||
return;
|
||||
}
|
||||
|
||||
// if complete is true and browser supports natural sizes, try
|
||||
// to check for image status manually
|
||||
if ( el.complete && el.naturalWidth !== undefined ) {
|
||||
imgLoaded( el, el.naturalWidth === 0 || el.naturalHeight === 0 );
|
||||
return;
|
||||
}
|
||||
|
||||
// cached images don't fire load sometimes, so we reset src, but only when
|
||||
// dealing with IE, or image is complete (loaded) and failed manual check
|
||||
// webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
|
||||
if ( el.readyState || el.complete ) {
|
||||
el.src = BLANK;
|
||||
el.src = src;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return deferred ? deferred.promise( $this ) : $this;
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.upload-picture').find('img').imagesLoaded(function(){
|
||||
var picH = $('.upload-picture').width()/$('.upload-picture').find('img').width()*$('.upload-picture').find('img').height();
|
||||
var imgMarginTop = ($('.upload-picture').height()-picH)/2;
|
||||
var d = $('.upload-picture').height();
|
||||
if(imgMarginTop>0){
|
||||
imgMarginTop = 0;
|
||||
d = picH;
|
||||
$('.upload-picture').css({height:d})
|
||||
}
|
||||
$('.upload-picture').find('img').css({marginTop:imgMarginTop})
|
||||
$('.upload-picture').each(function (i){
|
||||
$(this).mouseenter(function(){
|
||||
var h= picH;
|
||||
$(this).stop().animate({height:h}, 500);
|
||||
$(this).find('img').stop().animate({marginTop:0}, 500);
|
||||
});
|
||||
$(this).mouseleave(function(){
|
||||
$(this).stop().animate({height:d}, 500);
|
||||
$(this).find('img').stop().animate({marginTop:imgMarginTop}, 500);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
//Preview need a link in form as Ex and a corresponding PUT action in controller
|
||||
//Ex preview trigger:
|
||||
// <%= link_to "NewPreview", realtime_preview_admin_ad_banner_path(ad_banner_tab) , :class=>'preview_trigger'%>
|
||||
|
||||
$(document).ready(function() {
|
||||
$("a.preview_trigger").click(function(){
|
||||
$("#main-wrap").after("<span id='show_preview'></span>");
|
||||
$.ajax({
|
||||
type: 'PUT',
|
||||
url:$(this).attr("href"),
|
||||
data:$(this).parents("form").serialize(),
|
||||
success: function (msg) {
|
||||
$("#"+start_modal_with_id).modal('show'); },
|
||||
error: function(){
|
||||
alert("ERROR");
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,7 @@
|
||||
$(document).ready(function() {
|
||||
permissionCheckbox();
|
||||
});
|
||||
function permissionCheckbox(){
|
||||
$('.check[checked="checked"]').parents(".checkbox").addClass("checked")
|
||||
$(".checkbox").click(function(){
|
||||
if($(this).children(".check").attr("checked")){
|
||||
@@ -16,4 +19,4 @@ $(document).ready(function() {
|
||||
placement: 'bottom',
|
||||
delay: { show: 100, hide: 300 },
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -8,24 +8,29 @@ $.extend($.expr[':'], {
|
||||
return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
|
||||
}
|
||||
});
|
||||
var interval,sval;
|
||||
$(document).ready(function(){
|
||||
$("#user_filter").keyup(function(){
|
||||
if($(this).val()){
|
||||
var totalfoundbyname = $("div#users_checkbox_ary label.member-name:containsi("+$(this).val()+")").length
|
||||
if(totalfoundbyname!=0){
|
||||
$("div#users_checkbox_ary label.member-name:not(:containsi("+$(this).val()+"))").parent().parent().slideUp();
|
||||
//$("div#users_checkbox_ary label.member-name:not(:containsi("+$(this).val()+"))").parent().popover('hide');
|
||||
$("div#users_checkbox_ary label.member-name:containsi("+$(this).val()+")").parent().parent().slideDown();
|
||||
$("div#users_checkbox_ary label.member-name:containsi("+$(this).val()+")").parent().popover('toggle');
|
||||
}else if(totalfoundbyname==0){
|
||||
$("div#users_checkbox_ary div.for_unit:not(:containsi("+$(this).val()+"))").parent().slideUp();
|
||||
//$("div#users_checkbox_ary div.for_unit:not(:containsi("+$(this).val()+"))").popover('hide');
|
||||
$("div#users_checkbox_ary div.for_unit:containsi("+$(this).val()+")").parent().slideDown();
|
||||
$("div#users_checkbox_ary div.for_unit:containsi("+$(this).val()+")").popover('toggle');
|
||||
}
|
||||
}else{
|
||||
$(".checkbox").popover('hide');
|
||||
$("div.checkblock").slideDown();
|
||||
$("#user_filter").keyup(function(e){
|
||||
if((e.which>96 && e.which<123) || (e.which>64 && e.which<92) || (e.which == 32) || (e.which == 8)){
|
||||
sval = $(this).val();
|
||||
$(".checkbox").popover("hide");
|
||||
$("div.checkblock").hide();
|
||||
clearInterval(interval);
|
||||
interval = setInterval(waitForSearch,1000);
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
var waitForSearch = function(){
|
||||
if(sval){
|
||||
var totalfoundbyname = $("div#users_checkbox_ary label.member-name:containsi("+sval+")").length
|
||||
if(totalfoundbyname!=0){
|
||||
$("div#users_checkbox_ary label.member-name:containsi("+sval+")").parent().parent().show();
|
||||
}else if(totalfoundbyname==0){
|
||||
$("div#users_checkbox_ary div.for_unit:containsi("+sval+")").parent().show();
|
||||
}
|
||||
}else{
|
||||
$(".checkbox").popover('hide');
|
||||
$("div.checkblock").show();
|
||||
}
|
||||
clearInterval(interval);
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
/*
|
||||
* Tiny Scrollbar 1.8
|
||||
* http://www.baijs.nl/tinyscrollbar/
|
||||
*
|
||||
* Copyright 2012, Maarten Baijs
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.opensource.org/licenses/gpl-2.0.php
|
||||
*
|
||||
* Date: 26 / 07 / 2012
|
||||
* Depends on library: jQuery
|
||||
*
|
||||
*/
|
||||
( function( $ )
|
||||
{
|
||||
$.tiny = $.tiny || { };
|
||||
|
||||
$.tiny.scrollbar = {
|
||||
options: {
|
||||
axis : 'y' // vertical or horizontal scrollbar? ( x || y ).
|
||||
, wheel : 40 // how many pixels must the mouswheel scroll at a time.
|
||||
, scroll : true // enable or disable the mousewheel.
|
||||
, lockscroll : true // return scrollwheel to browser if there is no more content.
|
||||
, size : 'auto' // set the size of the scrollbar to auto or a fixed number.
|
||||
, sizethumb : 'auto' // set the size of the thumb to auto or a fixed number.
|
||||
, onMove : function(){}
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.tinyscrollbar = function( params )
|
||||
{
|
||||
var options = $.extend( {}, $.tiny.scrollbar.options, params );
|
||||
|
||||
this.each( function()
|
||||
{
|
||||
$( this ).data('tsb', new Scrollbar( $( this ), options ) );
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.tinyscrollbar_update = function(sScroll)
|
||||
{
|
||||
return $( this ).data( 'tsb' ).update( sScroll );
|
||||
};
|
||||
|
||||
function Scrollbar( root, options )
|
||||
{
|
||||
var oSelf = this
|
||||
, oWrapper = root
|
||||
, oViewport = { obj: $( '.viewport', root ) }
|
||||
, oContent = { obj: $( '.overview', root ) }
|
||||
, oScrollbar = { obj: $( '.scrollbar', root ) }
|
||||
, oTrack = { obj: $( '.track', oScrollbar.obj ) }
|
||||
, oThumb = { obj: $( '.thumb', oScrollbar.obj ) }
|
||||
, sAxis = options.axis === 'x'
|
||||
, sDirection = sAxis ? 'left' : 'top'
|
||||
, sSize = sAxis ? 'Width' : 'Height'
|
||||
, iScroll = 0
|
||||
, iPosition = { start: 0, now: 0 }
|
||||
, iMouse = {}
|
||||
, touchEvents = ( 'ontouchstart' in document.documentElement ) ? true : false
|
||||
;
|
||||
|
||||
function initialize()
|
||||
{
|
||||
oSelf.update();
|
||||
setEvents();
|
||||
|
||||
return oSelf;
|
||||
}
|
||||
|
||||
this.update = function( sScroll )
|
||||
{
|
||||
oViewport[ options.axis ] = oViewport.obj[0][ 'offset'+ sSize ];
|
||||
oContent[ options.axis ] = oContent.obj[0][ 'scroll'+ sSize ];
|
||||
oContent.ratio = oViewport[ options.axis ] / oContent[ options.axis ];
|
||||
|
||||
oScrollbar.obj.toggleClass( 'disable', oContent.ratio >= 1 );
|
||||
|
||||
oTrack[ options.axis ] = options.size === 'auto' ? oViewport[ options.axis ] : options.size;
|
||||
oThumb[ options.axis ] = Math.min( oTrack[ options.axis ], Math.max( 0, ( options.sizethumb === 'auto' ? ( oTrack[ options.axis ] * oContent.ratio ) : options.sizethumb ) ) );
|
||||
|
||||
oScrollbar.ratio = options.sizethumb === 'auto' ? ( oContent[ options.axis ] / oTrack[ options.axis ] ) : ( oContent[ options.axis ] - oViewport[ options.axis ] ) / ( oTrack[ options.axis ] - oThumb[ options.axis ] );
|
||||
|
||||
iScroll = ( sScroll === 'relative' && oContent.ratio <= 1 ) ? Math.min( ( oContent[ options.axis ] - oViewport[ options.axis ] ), Math.max( 0, iScroll )) : 0;
|
||||
iScroll = ( sScroll === 'bottom' && oContent.ratio <= 1 ) ? ( oContent[ options.axis ] - oViewport[ options.axis ] ) : isNaN( parseInt( sScroll, 10 ) ) ? iScroll : parseInt( sScroll, 10 );
|
||||
|
||||
setSize();
|
||||
};
|
||||
|
||||
function setSize()
|
||||
{
|
||||
var sCssSize = sSize.toLowerCase();
|
||||
|
||||
oThumb.obj.css( sDirection, iScroll / oScrollbar.ratio );
|
||||
oContent.obj.css( sDirection, -iScroll );
|
||||
iMouse.start = oThumb.obj.offset()[ sDirection ];
|
||||
|
||||
oScrollbar.obj.css( sCssSize, oTrack[ options.axis ] );
|
||||
oTrack.obj.css( sCssSize, oTrack[ options.axis ] );
|
||||
oThumb.obj.css( sCssSize, oThumb[ options.axis ] );
|
||||
}
|
||||
|
||||
function setEvents()
|
||||
{
|
||||
if( ! touchEvents )
|
||||
{
|
||||
oThumb.obj.bind( 'mousedown', start );
|
||||
oTrack.obj.bind( 'mouseup', drag );
|
||||
}
|
||||
else
|
||||
{
|
||||
oViewport.obj[0].ontouchstart = function( event )
|
||||
{
|
||||
if( 1 === event.touches.length )
|
||||
{
|
||||
start( event.touches[ 0 ] );
|
||||
event.stopPropagation();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if( options.scroll && window.addEventListener )
|
||||
{
|
||||
oWrapper[0].addEventListener( 'DOMMouseScroll', wheel, false );
|
||||
oWrapper[0].addEventListener( 'mousewheel', wheel, false );
|
||||
}
|
||||
else if( options.scroll )
|
||||
{
|
||||
oWrapper[0].onmousewheel = wheel;
|
||||
}
|
||||
}
|
||||
|
||||
function start( event )
|
||||
{
|
||||
var oThumbDir = parseInt( oThumb.obj.css( sDirection ), 10 );
|
||||
iMouse.start = sAxis ? event.pageX : event.pageY;
|
||||
iPosition.start = oThumbDir == 'auto' ? 0 : oThumbDir;
|
||||
|
||||
if( ! touchEvents )
|
||||
{
|
||||
$( document ).bind( 'mousemove', drag );
|
||||
$( document ).bind( 'mouseup', end );
|
||||
oThumb.obj.bind( 'mouseup', end );
|
||||
}
|
||||
else
|
||||
{
|
||||
document.ontouchmove = function( event )
|
||||
{
|
||||
event.preventDefault();
|
||||
drag( event.touches[ 0 ] );
|
||||
};
|
||||
document.ontouchend = end;
|
||||
}
|
||||
}
|
||||
|
||||
function wheel( event )
|
||||
{
|
||||
if( oContent.ratio < 1 )
|
||||
{
|
||||
var oEvent = event || window.event
|
||||
, iDelta = oEvent.wheelDelta ? oEvent.wheelDelta / 120 : -oEvent.detail / 3
|
||||
;
|
||||
|
||||
iScroll -= iDelta * options.wheel;
|
||||
iScroll = Math.min( ( oContent[ options.axis ] - oViewport[ options.axis ] ), Math.max( 0, iScroll ));
|
||||
|
||||
oThumb.obj.css( sDirection, iScroll / oScrollbar.ratio );
|
||||
oContent.obj.css( sDirection, -iScroll );
|
||||
|
||||
if( options.lockscroll || ( iScroll !== ( oContent[ options.axis ] - oViewport[ options.axis ] ) && iScroll !== 0 ) )
|
||||
{
|
||||
oEvent = $.event.fix( oEvent );
|
||||
oEvent.preventDefault();
|
||||
}
|
||||
}
|
||||
options.onMove.call(this,iScroll);
|
||||
}
|
||||
|
||||
function drag( event )
|
||||
{
|
||||
if( oContent.ratio < 1 )
|
||||
{
|
||||
if( ! touchEvents )
|
||||
{
|
||||
iPosition.now = Math.min( ( oTrack[ options.axis ] - oThumb[ options.axis ] ), Math.max( 0, ( iPosition.start + ( ( sAxis ? event.pageX : event.pageY ) - iMouse.start))));
|
||||
}
|
||||
else
|
||||
{
|
||||
iPosition.now = Math.min( ( oTrack[ options.axis ] - oThumb[ options.axis ] ), Math.max( 0, ( iPosition.start + ( iMouse.start - ( sAxis ? event.pageX : event.pageY ) ))));
|
||||
}
|
||||
|
||||
iScroll = iPosition.now * oScrollbar.ratio;
|
||||
oContent.obj.css( sDirection, -iScroll );
|
||||
oThumb.obj.css( sDirection, iPosition.now );
|
||||
}
|
||||
}
|
||||
|
||||
function end()
|
||||
{
|
||||
$( document ).unbind( 'mousemove', drag );
|
||||
$( document ).unbind( 'mouseup', end );
|
||||
oThumb.obj.unbind( 'mouseup', end );
|
||||
document.ontouchmove = document.ontouchend = null;
|
||||
}
|
||||
|
||||
return initialize();
|
||||
}
|
||||
|
||||
}(jQuery));
|
||||
+118
-1
@@ -1 +1,118 @@
|
||||
(function(a){function b(b,c){function w(a){if(!(g.ratio>=1)){o.now=Math.min(i[c.axis]-j[c.axis],Math.max(0,o.start+((k?a.pageX:a.pageY)-p.start)));n=o.now*h.ratio;g.obj.css(l,-n);j.obj.css(l,o.now)}return false}function v(b){a(document).unbind("mousemove",w);a(document).unbind("mouseup",v);j.obj.unbind("mouseup",v);document.ontouchmove=j.obj[0].ontouchend=document.ontouchend=null;return false}function u(b){if(!(g.ratio>=1)){var b=b||window.event;var d=b.wheelDelta?b.wheelDelta/120:-b.detail/3;n-=d*c.wheel;n=Math.min(g[c.axis]-f[c.axis],Math.max(0,n));j.obj.css(l,n/h.ratio);g.obj.css(l,-n);b=a.event.fix(b);b.preventDefault()}}function t(b){p.start=k?b.pageX:b.pageY;var c=parseInt(j.obj.css(l));o.start=c=="auto"?0:c;a(document).bind("mousemove",w);document.ontouchmove=function(b){a(document).unbind("mousemove");w(b.touches[0])};a(document).bind("mouseup",v);j.obj.bind("mouseup",v);j.obj[0].ontouchend=document.ontouchend=function(b){a(document).unbind("mouseup");j.obj.unbind("mouseup");v(b.touches[0])};return false}function s(){j.obj.bind("mousedown",t);j.obj[0].ontouchstart=function(a){a.preventDefault();j.obj.unbind("mousedown");t(a.touches[0]);return false};i.obj.bind("mouseup",w);if(c.scroll&&this.addEventListener){e[0].addEventListener("DOMMouseScroll",u,false);e[0].addEventListener("mousewheel",u,false)}else if(c.scroll){e[0].onmousewheel=u}}function r(){j.obj.css(l,n/h.ratio);g.obj.css(l,-n);p["start"]=j.obj.offset()[l];var a=m.toLowerCase();h.obj.css(a,i[c.axis]);i.obj.css(a,i[c.axis]);j.obj.css(a,j[c.axis])}function q(){d.update();s();return d}var d=this;var e=b;var f={obj:a(".viewport",b)};var g={obj:a(".overview",b)};var h={obj:a(".scrollbar",b)};var i={obj:a(".track",h.obj)};var j={obj:a(".thumb",h.obj)};var k=c.axis=="x",l=k?"left":"top",m=k?"Width":"Height";var n,o={start:0,now:0},p={};this.update=function(a){f[c.axis]=f.obj[0]["offset"+m];g[c.axis]=g.obj[0]["scroll"+m];g.ratio=f[c.axis]/g[c.axis];h.obj.toggleClass("disable",g.ratio>=1);i[c.axis]=c.size=="auto"?f[c.axis]:c.size;j[c.axis]=Math.min(i[c.axis],Math.max(0,c.sizethumb=="auto"?i[c.axis]*g.ratio:c.sizethumb));h.ratio=c.sizethumb=="auto"?g[c.axis]/i[c.axis]:(g[c.axis]-f[c.axis])/(i[c.axis]-j[c.axis]);n=a=="relative"&&g.ratio<=1?Math.min(g[c.axis]-f[c.axis],Math.max(0,n)):0;n=a=="bottom"&&g.ratio<=1?g[c.axis]-f[c.axis]:isNaN(parseInt(a))?n:parseInt(a);r()};return q()}a.tiny=a.tiny||{};a.tiny.scrollbar={options:{axis:"y",wheel:40,scroll:true,size:"auto",sizethumb:"auto"}};a.fn.tinyscrollbar=function(c){var c=a.extend({},a.tiny.scrollbar.options,c);this.each(function(){a(this).data("tsb",new b(a(this),c))});return this};a.fn.tinyscrollbar_update=function(b){return a(this).data("tsb").update(b)};})(jQuery)
|
||||
(function(a){
|
||||
function b(b,c){
|
||||
function w(a){
|
||||
if(!(g.ratio>=1)){
|
||||
o.now=Math.min(i[c.axis]-j[c.axis],Math.max(0,o.start+((k?a.pageX:a.pageY)-p.start)));
|
||||
n=o.now*h.ratio;g.obj.css(l,-n);
|
||||
j.obj.css(l,o.now)
|
||||
}
|
||||
return false
|
||||
}
|
||||
function v(b){
|
||||
a(document).unbind("mousemove",w);
|
||||
a(document).unbind("mouseup",v);
|
||||
j.obj.unbind("mouseup",v);
|
||||
document.ontouchmove=j.obj[0].ontouchend=document.ontouchend=null;
|
||||
return false
|
||||
}
|
||||
function u(b){
|
||||
if(!(g.ratio>=1)){
|
||||
var b=b||window.event;
|
||||
var d=b.wheelDelta?b.wheelDelta/120:-b.detail/3;
|
||||
n-=d*c.wheel;
|
||||
n=Math.min(g[c.axis]-f[c.axis],Math.max(0,n));
|
||||
j.obj.css(l,n/h.ratio);
|
||||
g.obj.css(l,-n);
|
||||
b=a.event.fix(b);
|
||||
b.preventDefault()
|
||||
}
|
||||
}
|
||||
function t(b){
|
||||
p.start=k?b.pageX:b.pageY;
|
||||
var c=parseInt(j.obj.css(l));
|
||||
o.start=c=="auto"?0:c;
|
||||
a(document).bind("mousemove",w);
|
||||
document.ontouchmove=function(b){
|
||||
a(document).unbind("mousemove");
|
||||
w(b.touches[0])
|
||||
};
|
||||
a(document).bind("mouseup",v);
|
||||
j.obj.bind("mouseup",v);
|
||||
j.obj[0].ontouchend=document.ontouchend=function(b){
|
||||
a(document).unbind("mouseup");
|
||||
j.obj.unbind("mouseup");
|
||||
v(b.touches[0])
|
||||
};
|
||||
return false
|
||||
}
|
||||
function s(){
|
||||
j.obj.bind("mousedown",t);
|
||||
j.obj[0].ontouchstart=function(a){
|
||||
a.preventDefault();
|
||||
j.obj.unbind("mousedown");
|
||||
t(a.touches[0]);
|
||||
return false
|
||||
};
|
||||
i.obj.bind("mouseup",w);
|
||||
if(c.scroll&&this.addEventListener){
|
||||
e[0].addEventListener("DOMMouseScroll",u,false);
|
||||
e[0].addEventListener("mousewheel",u,false)
|
||||
}else if(c.scroll){
|
||||
e[0].onmousewheel=u
|
||||
}
|
||||
}
|
||||
function r(){
|
||||
j.obj.css(l,n/h.ratio);
|
||||
g.obj.css(l,-n);
|
||||
p["start"]=j.obj.offset()[l];
|
||||
var a=m.toLowerCase();
|
||||
h.obj.css(a,i[c.axis]);
|
||||
i.obj.css(a,i[c.axis]);
|
||||
j.obj.css(a,j[c.axis])
|
||||
}
|
||||
function q(){
|
||||
d.update();
|
||||
s();
|
||||
return d
|
||||
}
|
||||
var d=this;
|
||||
var e=b;
|
||||
var f={obj:a(".viewport",b)};
|
||||
var g={obj:a(".overview",b)};
|
||||
var h={obj:a(".scrollbar",b)};
|
||||
var i={obj:a(".track",h.obj)};
|
||||
var j={obj:a(".thumb",h.obj)};
|
||||
var k=c.axis=="x",
|
||||
l=k?"left":"top",
|
||||
m=k?"Width":"Height";
|
||||
var n,
|
||||
o={start:0,now:0},
|
||||
p={};
|
||||
this.update=function(a){
|
||||
f[c.axis]=f.obj[0]["offset"+m];
|
||||
g[c.axis]=g.obj[0]["scroll"+m];
|
||||
g.ratio=f[c.axis]/g[c.axis];
|
||||
h.obj.toggleClass("disable",g.ratio>=1);
|
||||
i[c.axis]=c.size=="auto"?f[c.axis]:c.size;
|
||||
j[c.axis]=Math.min(i[c.axis],Math.max(0,c.sizethumb=="auto"?i[c.axis]*g.ratio:c.sizethumb));
|
||||
h.ratio=c.sizethumb=="auto"?g[c.axis]/i[c.axis]:(g[c.axis]-f[c.axis])/(i[c.axis]-j[c.axis]);
|
||||
n=a=="relative"&&g.ratio<=1?Math.min(g[c.axis]-f[c.axis],Math.max(0,n)):0;
|
||||
n=a=="bottom"&&g.ratio<=1?g[c.axis]-f[c.axis]:isNaN(parseInt(a))?n:parseInt(a);
|
||||
r()
|
||||
};
|
||||
return q()
|
||||
}
|
||||
a.tiny=a.tiny||{};
|
||||
a.tiny.scrollbar={options:{axis:"y",wheel:40,scroll:true,size:"auto",sizethumb:"auto"}};
|
||||
a.fn.tinyscrollbar=function(c){
|
||||
var c=a.extend({},a.tiny.scrollbar.options,c);
|
||||
this.each(function(){
|
||||
a(this).data("tsb",new b(a(this),c))
|
||||
});
|
||||
return this
|
||||
};
|
||||
a.fn.tinyscrollbar_update=function(b){
|
||||
return a(this).data("tsb").update(b)
|
||||
};
|
||||
})
|
||||
(jQuery)
|
||||
@@ -0,0 +1,56 @@
|
||||
<%#= encoding: utf-8 %>
|
||||
$(function() {
|
||||
var content_holder, content;
|
||||
var selector = 'a[contenteditable="true"]';
|
||||
// prevent clicks inside editable area to fire
|
||||
// a click event on the body
|
||||
// and therefor saving our content before we even edit it
|
||||
|
||||
$(".nav-tabs").find(".icons-pencil").click(function(){
|
||||
$(this).css({
|
||||
"display" : "none"
|
||||
})
|
||||
$(this).next().attr("contenteditable",true).addClass("edit");
|
||||
// $(selector).click(function(e) {
|
||||
// e.stopPropagation();
|
||||
// });
|
||||
|
||||
// initialize the "save" function
|
||||
$(selector).focus(function(e) {
|
||||
content_holder = $(this);
|
||||
content = content_holder.html();
|
||||
// one click outside the editable area saves the content
|
||||
$(selector).keypress( function(e) {
|
||||
// but not if the content didn't change
|
||||
//alert('out!!');
|
||||
if(e.keyCode == 13){
|
||||
$(".nav-tabs>li>a").removeClass("edit");
|
||||
$(this).prev(".icons-pencil").css({
|
||||
"display" : "block"
|
||||
})
|
||||
e.preventDefault();
|
||||
// if ($(e.target).is(selector) || content == content_holder.html()) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
$.ajax({
|
||||
url: content_holder.data('edit-url'),
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: { body: content_holder.html() },
|
||||
success: function(json) {
|
||||
$(selector).attr("contenteditable",false)
|
||||
alert("<%= I18n.t('admin.contenteditable.update_done') %>");
|
||||
//content_holder.effect('highlight', {'color': '#0f0'}, 3000);
|
||||
},
|
||||
error: function() {
|
||||
alert("<%= I18n.t('admin.contenteditable.update_failed') %>");
|
||||
//content_holder.effect('highlight', {'color': '#f00'}, 3000);
|
||||
content_holder.html(content);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
+391
@@ -0,0 +1,391 @@
|
||||
/*
|
||||
* jQuery UI Nested Sortable
|
||||
* v 1.3.4 / 28 apr 2011
|
||||
* http://mjsarfatti.com/sandbox/nestedSortable
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.sortable.js 1.8+
|
||||
*
|
||||
* License CC BY-SA 3.0
|
||||
* Copyright 2010-2011, Manuele J Sarfatti
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
|
||||
$.widget("ui.nestedSortable", $.extend({}, $.ui.sortable.prototype, {
|
||||
|
||||
options: {
|
||||
tabSize: 20,
|
||||
disableNesting: 'ui-nestedSortable-no-nesting',
|
||||
errorClass: 'ui-nestedSortable-error',
|
||||
listType: 'ol',
|
||||
maxLevels: 0,
|
||||
revertOnError: 1
|
||||
},
|
||||
|
||||
_create: function() {
|
||||
this.element.data('sortable', this.element.data('nestedSortable'));
|
||||
return $.ui.sortable.prototype._create.apply(this, arguments);
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
this.element
|
||||
.removeData("nestedSortable")
|
||||
.unbind(".nestedSortable");
|
||||
return $.ui.sortable.prototype.destroy.apply(this, arguments);
|
||||
},
|
||||
|
||||
_mouseDrag: function(event) {
|
||||
|
||||
//Compute the helpers position
|
||||
this.position = this._generatePosition(event);
|
||||
this.positionAbs = this._convertPositionTo("absolute");
|
||||
|
||||
if (!this.lastPositionAbs) {
|
||||
this.lastPositionAbs = this.positionAbs;
|
||||
}
|
||||
|
||||
//Do scrolling
|
||||
if(this.options.scroll) {
|
||||
var o = this.options, scrolled = false;
|
||||
if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
|
||||
|
||||
if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
|
||||
this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
|
||||
else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
|
||||
this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
|
||||
|
||||
if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
|
||||
this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
|
||||
else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
|
||||
this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
|
||||
|
||||
} else {
|
||||
|
||||
if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
|
||||
scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
|
||||
else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
|
||||
scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
|
||||
|
||||
if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
|
||||
scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
|
||||
else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
|
||||
scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
|
||||
|
||||
}
|
||||
|
||||
if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
|
||||
$.ui.ddmanager.prepareOffsets(this, event);
|
||||
}
|
||||
|
||||
//Regenerate the absolute position used for position checks
|
||||
this.positionAbs = this._convertPositionTo("absolute");
|
||||
|
||||
//Set the helper position
|
||||
if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
|
||||
if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
|
||||
|
||||
//Rearrange
|
||||
for (var i = this.items.length - 1; i >= 0; i--) {
|
||||
|
||||
//Cache variables and intersection, continue if no intersection
|
||||
var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
|
||||
if (!intersection) continue;
|
||||
|
||||
if(itemElement != this.currentItem[0] //cannot intersect with itself
|
||||
&& this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
|
||||
&& !$.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
|
||||
&& (this.options.type == 'semi-dynamic' ? !$.contains(this.element[0], itemElement) : true)
|
||||
//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
|
||||
) {
|
||||
|
||||
$(itemElement).mouseenter();
|
||||
|
||||
this.direction = intersection == 1 ? "down" : "up";
|
||||
|
||||
if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
|
||||
$(itemElement).mouseleave();
|
||||
this._rearrange(event, item);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
// Clear emtpy ul's/ol's
|
||||
this._clearEmpty(itemElement);
|
||||
|
||||
this._trigger("change", event, this._uiHash());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var parentItem = (this.placeholder[0].parentNode.parentNode
|
||||
&& $(this.placeholder[0].parentNode.parentNode).closest('.ui-sortable').length)
|
||||
? $(this.placeholder[0].parentNode.parentNode)
|
||||
: null,
|
||||
level = this._getLevel(this.placeholder),
|
||||
childLevels = this._getChildLevels(this.helper),
|
||||
previousItem = this.placeholder[0].previousSibling ? $(this.placeholder[0].previousSibling) : null;
|
||||
|
||||
if (previousItem != null) {
|
||||
while (previousItem[0].nodeName.toLowerCase() != 'li' || previousItem[0] == this.currentItem[0]) {
|
||||
if (previousItem[0].previousSibling) {
|
||||
previousItem = $(previousItem[0].previousSibling);
|
||||
} else {
|
||||
previousItem = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
newList = document.createElement(o.listType);
|
||||
|
||||
this.beyondMaxLevels = 0;
|
||||
|
||||
// If the item is moved to the left, send it to its parent level
|
||||
if (parentItem != null && this.positionAbs.left < parentItem.offset().left) {
|
||||
parentItem.after(this.placeholder[0]);
|
||||
this._clearEmpty(parentItem[0]);
|
||||
this._trigger("change", event, this._uiHash());
|
||||
}
|
||||
// If the item is below another one and is moved to the right, make it a children of it
|
||||
else if (previousItem != null && this.positionAbs.left > previousItem.offset().left + o.tabSize) {
|
||||
this._isAllowed(previousItem, level+childLevels+1);
|
||||
if (!previousItem.children(o.listType).length) {
|
||||
previousItem[0].appendChild(newList);
|
||||
}
|
||||
previousItem.children(o.listType)[0].appendChild(this.placeholder[0]);
|
||||
this._trigger("change", event, this._uiHash());
|
||||
}
|
||||
else {
|
||||
this._isAllowed(parentItem, level+childLevels);
|
||||
}
|
||||
|
||||
//Post events to containers
|
||||
this._contactContainers(event);
|
||||
|
||||
//Interconnect with droppables
|
||||
if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
|
||||
|
||||
//Call callbacks
|
||||
this._trigger('sort', event, this._uiHash());
|
||||
|
||||
this.lastPositionAbs = this.positionAbs;
|
||||
return false;
|
||||
|
||||
},
|
||||
|
||||
_mouseStop: function(event, noPropagation) {
|
||||
|
||||
// If the item is in a position not allowed, send it back
|
||||
if (this.beyondMaxLevels) {
|
||||
|
||||
this.placeholder.removeClass(this.options.errorClass);
|
||||
|
||||
if (this.options.revertOnError) {
|
||||
if (this.domPosition.prev) {
|
||||
$(this.domPosition.prev).after(this.placeholder);
|
||||
} else {
|
||||
$(this.domPosition.parent).prepend(this.placeholder);
|
||||
}
|
||||
this._trigger("revert", event, this._uiHash());
|
||||
} else {
|
||||
var parent = this.placeholder.parent().closest(this.options.items);
|
||||
|
||||
for (var i = this.beyondMaxLevels - 1; i > 0; i--) {
|
||||
parent = parent.parent().closest(this.options.items);
|
||||
}
|
||||
|
||||
parent.after(this.placeholder);
|
||||
this._trigger("change", event, this._uiHash());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Clean last empty ul/ol
|
||||
for (var i = this.items.length - 1; i >= 0; i--) {
|
||||
var item = this.items[i].item[0];
|
||||
this._clearEmpty(item);
|
||||
}
|
||||
|
||||
$.ui.sortable.prototype._mouseStop.apply(this, arguments);
|
||||
|
||||
},
|
||||
|
||||
serialize: function(o) {
|
||||
|
||||
var items = this._getItemsAsjQuery(o && o.connected),
|
||||
str = []; o = o || {};
|
||||
|
||||
$(items).each(function() {
|
||||
var res = ($(o.item || this).attr(o.attribute || 'id') || '')
|
||||
.match(o.expression || (/(.+)[-=_](.+)/)),
|
||||
pid = ($(o.item || this).parent(o.listType)
|
||||
.parent('li')
|
||||
.attr(o.attribute || 'id') || '')
|
||||
.match(o.expression || (/(.+)[-=_](.+)/));
|
||||
|
||||
if (res) {
|
||||
str.push(((o.key || res[1]) + '[' + (o.key && o.expression ? res[1] : res[2]) + ']')
|
||||
+ '='
|
||||
+ (pid ? (o.key && o.expression ? pid[1] : pid[2]) : 'root'));
|
||||
}
|
||||
});
|
||||
|
||||
if(!str.length && o.key) {
|
||||
str.push(o.key + '=');
|
||||
}
|
||||
|
||||
return str.join('&');
|
||||
|
||||
},
|
||||
|
||||
toHierarchy: function(o) {
|
||||
|
||||
o = o || {};
|
||||
var sDepth = o.startDepthCount || 0,
|
||||
ret = [];
|
||||
|
||||
$(this.element).children('li').each(function () {
|
||||
var level = _recursiveItems($(this));
|
||||
ret.push(level);
|
||||
});
|
||||
|
||||
return ret;
|
||||
|
||||
function _recursiveItems(li) {
|
||||
var id = ($(li).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
|
||||
if (id) {
|
||||
var item = {"id" : id[2]};
|
||||
if ($(li).children(o.listType).children('li').length > 0) {
|
||||
item.children = [];
|
||||
$(li).children(o.listType).children('li').each(function() {
|
||||
var level = _recursiveItems($(this));
|
||||
item.children.push(level);
|
||||
});
|
||||
}
|
||||
return item;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
toArray: function(o) {
|
||||
|
||||
o = o || {};
|
||||
var sDepth = o.startDepthCount || 0,
|
||||
ret = [],
|
||||
left = 2;
|
||||
|
||||
ret.push({
|
||||
"item_id": 'root',
|
||||
"parent_id": 'none',
|
||||
"depth": sDepth,
|
||||
"left": '1',
|
||||
"right": ($('li', this.element).length + 1) * 2
|
||||
});
|
||||
|
||||
$(this.element).children('li').each(function () {
|
||||
left = _recursiveArray(this, sDepth + 1, left);
|
||||
});
|
||||
|
||||
ret = ret.sort(function(a,b){ return (a.left - b.left); });
|
||||
|
||||
return ret;
|
||||
|
||||
function _recursiveArray(item, depth, left) {
|
||||
|
||||
var right = left + 1,
|
||||
id,
|
||||
pid;
|
||||
|
||||
if ($(item).children(o.listType).children('li').length > 0) {
|
||||
depth ++;
|
||||
$(item).children(o.listType).children('li').each(function () {
|
||||
right = _recursiveArray($(this), depth, right);
|
||||
});
|
||||
depth --;
|
||||
}
|
||||
|
||||
id = ($(item).attr(o.attribute || 'id')).match(o.expression || (/(.+)[-=_](.+)/));
|
||||
|
||||
if (depth === sDepth + 1) {
|
||||
pid = 'root';
|
||||
} else {
|
||||
var parentItem = ($(item).parent(o.listType)
|
||||
.parent('li')
|
||||
.attr(o.attribute || 'id'))
|
||||
.match(o.expression || (/(.+)[-=_](.+)/));
|
||||
pid = parentItem[2];
|
||||
}
|
||||
|
||||
if (id) {
|
||||
ret.push({"item_id": id[2], "parent_id": pid, "depth": depth, "left": left, "right": right});
|
||||
}
|
||||
|
||||
left = right + 1;
|
||||
return left;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
_clearEmpty: function(item) {
|
||||
|
||||
var emptyList = $(item).children(this.options.listType);
|
||||
if (emptyList.length && !emptyList.children().length) {
|
||||
emptyList.remove();
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
_getLevel: function(item) {
|
||||
|
||||
var level = 1;
|
||||
|
||||
if (this.options.listType) {
|
||||
var list = item.closest(this.options.listType);
|
||||
while (!list.is('.ui-sortable')) {
|
||||
level++;
|
||||
list = list.parent().closest(this.options.listType);
|
||||
}
|
||||
}
|
||||
|
||||
return level;
|
||||
},
|
||||
|
||||
_getChildLevels: function(parent, depth) {
|
||||
var self = this,
|
||||
o = this.options,
|
||||
result = 0;
|
||||
depth = depth || 0;
|
||||
|
||||
$(parent).children(o.listType).children(o.items).each(function (index, child) {
|
||||
result = Math.max(self._getChildLevels(child, depth + 1), result);
|
||||
});
|
||||
|
||||
return depth ? result + 1 : result;
|
||||
},
|
||||
|
||||
_isAllowed: function(parentItem, levels) {
|
||||
var o = this.options;
|
||||
// Are we trying to nest under a no-nest or are we nesting too deep?
|
||||
if (parentItem == null || !(parentItem.hasClass(o.disableNesting))) {
|
||||
if (o.maxLevels < levels && o.maxLevels != 0) {
|
||||
this.placeholder.addClass(o.errorClass);
|
||||
this.beyondMaxLevels = levels - o.maxLevels;
|
||||
} else {
|
||||
this.placeholder.removeClass(o.errorClass);
|
||||
this.beyondMaxLevels = 0;
|
||||
}
|
||||
} else {
|
||||
this.placeholder.addClass(o.errorClass);
|
||||
if (o.maxLevels < levels && o.maxLevels != 0) {
|
||||
this.beyondMaxLevels = levels - o.maxLevels;
|
||||
} else {
|
||||
this.beyondMaxLevels = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}));
|
||||
|
||||
$.ui.nestedSortable.prototype.options = $.extend({}, $.ui.sortable.prototype.options, $.ui.nestedSortable.prototype.options);
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,8 @@
|
||||
// This is a manifest file that'll be compiled into including all the files listed below.
|
||||
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
||||
// be included in the compiled file accessible from http://example.com/assets/application.js
|
||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
||||
// the compiled file.
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
@@ -6,6 +6,7 @@
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require jquery.form
|
||||
//= require bootstrap
|
||||
//= require jquery.isotope.min
|
||||
//= require jquery.tinyscrollbar.min
|
||||
@@ -13,4 +14,7 @@
|
||||
//= require tinymce-jquery
|
||||
//= require tinymce_orbit
|
||||
//= require orbit-bar-search
|
||||
//= require side_bar_history
|
||||
//= require side_bar_history
|
||||
//= require rss
|
||||
//= require ajax_form
|
||||
//= require inc/ajax_setting
|
||||
@@ -0,0 +1,19 @@
|
||||
$('.news_bulletin_links_block a.delete').live('click', function(){
|
||||
$(this).parents('.list_item').remove();
|
||||
});
|
||||
|
||||
$('.news_bulletin_files_block a.delete').live('click', function(){
|
||||
$(this).parents('.list_item').remove();
|
||||
});
|
||||
|
||||
$(document).on('click', '.action a.remove_existing_record', function(){
|
||||
$(this).next('.should_destroy').attr('value', 1);
|
||||
$("tr #" + $(this).prev().attr('value')).hide();
|
||||
});
|
||||
|
||||
$(document).on('click', '.quick_edit_cancel', function(){
|
||||
tr = $(this).attr('rel');
|
||||
$('#' + tr).hide();
|
||||
$("tr#news_bulletin_file_" + $(this).prev().attr('value')).hide();
|
||||
$("tr#news_bulletin_link_" + $(this).prev().attr('value')).hide();
|
||||
});
|
||||
@@ -14,9 +14,9 @@ $(document).ready(function(){
|
||||
placement: "left"
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click', '.privacy', function() {
|
||||
|
||||
console.log($(this).val());
|
||||
switch ($(this).val()) {
|
||||
case 'true':
|
||||
$(this).parents('.controls').children('.select-role').slideUp(300);
|
||||
@@ -47,14 +47,19 @@ $(document).ready(function(){
|
||||
|
||||
/*tinyscrollbar&windows-Size*/
|
||||
resize();
|
||||
var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2;
|
||||
$('#main-sidebar').css("height", viewportheight-30);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-30);
|
||||
$('.post-title').css("width", viewportwidth-495);
|
||||
var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2,
|
||||
$subWiget = $('#sub-wiget').width()+18;
|
||||
$orbitBar = $('#orbit-bar').height(),
|
||||
$mainSidebar = $('#main-sidebar').width()+5,
|
||||
$formActionPadding = parseInt($('.form-fixed').css("padding-left"))+parseInt($('.form-fixed').css("padding-right"));
|
||||
$('#main-sidebar').css("height", viewportheight-$orbitBar);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-$orbitBar);
|
||||
$('#post-body').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget);
|
||||
$('.post-title').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget-16);
|
||||
$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft);
|
||||
$('#main-sidebar').tinyscrollbar();
|
||||
$('.form-fixed').css("width", viewportwidth-$mainWrapMarginLeft-$formActionPadding);
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-$orbitBar-4)});
|
||||
$('.detal-list').tinyscrollbar();
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
|
||||
mainTablePosition();
|
||||
|
||||
/*isotope*/
|
||||
@@ -68,12 +73,18 @@ $(document).ready(function(){
|
||||
});
|
||||
$(window).resize(function(){
|
||||
resize();
|
||||
var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2;
|
||||
$('#main-sidebar').css("height", viewportheight-30);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-30);
|
||||
$('.post-title').css("width", viewportwidth-495);
|
||||
$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft)
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-34)});
|
||||
var $mainWrapMarginLeft = parseInt($('#main-wrap').css("margin-left"))-2,
|
||||
$subWiget = $('#sub-wiget').width()+18;
|
||||
$orbitBar = $('#orbit-bar').height(),
|
||||
$mainSidebar = $('#main-sidebar').width()+5,
|
||||
$formActionPadding = parseInt($('.form-fixed').css("padding-left"))+parseInt($('.form-fixed').css("padding-right"));
|
||||
$('#main-sidebar').css("height", viewportheight-$orbitBar);
|
||||
$('#main-sidebar .viewport').css("height", viewportheight-$orbitBar);
|
||||
$('#post-body').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget);
|
||||
$('.post-title').css("width", viewportwidth-$mainWrapMarginLeft-$subWiget-16);
|
||||
$('#main-wrap .subnav').css("width", viewportwidth-$mainWrapMarginLeft);
|
||||
$('.form-fixed').css("width", viewportwidth-$mainWrapMarginLeft-$formActionPadding);
|
||||
$('#main-sidebar').tinyscrollbar({size:(viewportheight-$orbitBar-4)});
|
||||
mainTablePosition();
|
||||
});
|
||||
/*main-table position*/
|
||||
@@ -101,5 +112,4 @@ $(window).scroll(function () {
|
||||
$(".table-label").css({left:$winLeft*-1} );
|
||||
//$(".table-label").css({left:$mainWrapMarginLeft+($winLeft*-1)} );
|
||||
//$("#main-wrap > .subnav").css({width:$subnavWidth+($winLeft)} );
|
||||
//console.log($mainWrapMarginLeft+($winLeft*-1)+5);
|
||||
});
|
||||
@@ -1,3 +1,9 @@
|
||||
|
||||
$(document).ready(function(){
|
||||
$('.search').tooltip({
|
||||
placement: "bottom"
|
||||
});
|
||||
});
|
||||
$(document).on('click', '.orbit-bar-search', function (){
|
||||
if ($(this).parents('.search').hasClass('visible')){
|
||||
$(this).parents('.search').stop().animate({
|
||||
|
||||
@@ -6,57 +6,78 @@ var orbitTimeline = function(dom){
|
||||
this.dom = $("#"+dom);
|
||||
this.timelineHtml = $("<div class='t_bottom t_scale' id='timeline_scale'></div>");
|
||||
//this.marker = t.timelineHtml.find("#timline_marker");
|
||||
this.scale = t.timelineHtml.find("#timeline_scale");
|
||||
this.scale = "";
|
||||
//this.container = t.timelineHtml.find("#t_container");
|
||||
this.events = new Array;
|
||||
this.monthList = ["","January","February","March","April","May","June","July","August","September","October","November","December"];
|
||||
this.dt = new Date();
|
||||
this.fromdate = [t.dt.getFullYear(),t.dt.getMonth()+1];
|
||||
this.ajaxload = true;
|
||||
this.initialize = function(){
|
||||
t.dom.html(t.timelineHtml);
|
||||
$("div.scrollbar").hide();
|
||||
t.constructTimeScale(function(timelineScale){
|
||||
console.log(timelineScale);
|
||||
$("#timeline_scale").html(timelineScale);
|
||||
var totalyearwidth =timelineScale.find(".year").length * 100;
|
||||
var totalyearwidth =timelineScale.find(".year").length * 200;
|
||||
var totalul = 0;
|
||||
$(".t_scale").css({"min-width":$(".tinycanvas .viewport").width()+200 + "px"})
|
||||
for(eve in t.events){
|
||||
t.makeBubble(t.events[eve]);
|
||||
totalul = $("#scale_wrapper ul").length
|
||||
$(".t_scale").width((totalul*350) + totalyearwidth);
|
||||
}
|
||||
|
||||
$('.tinycanvas').tinyscrollbar({ axis: 'x'});
|
||||
$('.tinycanvas').tinyscrollbar({
|
||||
axis: 'x',
|
||||
onMove: function(x){
|
||||
var limit = $("#timeline_scale").width() - $(".tinycanvas .scrollbar").width();
|
||||
if(t.ajaxload){
|
||||
if((limit - x) < 10){
|
||||
t.eventAjaxLoad(function(){
|
||||
var totalul = 0;
|
||||
for(eve in t.events){
|
||||
t.makeBubble(t.events[eve]);
|
||||
totalul = $("#scale_wrapper ul").length
|
||||
$(".t_scale").width((totalul*350) + totalyearwidth);
|
||||
}
|
||||
$('.tinycanvas').tinyscrollbar_update(x);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
this.constructTimeScale = function(callbackFn){
|
||||
var mon ="",year="";
|
||||
var scale = $("<div id='scale_wrapper' class='ph'></div>");
|
||||
$.getJSON("desktop_orbit/getevents",{"event":"papers"},function(journals){
|
||||
$.each(journals,function(x,journal){
|
||||
$.each(journal.papers,function(i,paper){
|
||||
var dt = new Date(paper.created_at);
|
||||
var cur_mon = paper.created_at.substr(5,2);
|
||||
var cur_year = dt.getFullYear();
|
||||
var cdt = paper.created_at.substr(0,7).replace("-","");
|
||||
var formname = (cur_mon.charAt(0) == "0"?cur_mon.charAt(1) : cur_mon)
|
||||
var bubbleData = {"fulldate" : t.monthList[parseInt(formname)] +", " + dt.getDate() + ", " + cur_year,"title":paper.title,"jtitle":journal.title,"coauthors":paper.coauthors,"abstract":paper.abstract,"timestamp":cdt}
|
||||
t.events.push(bubbleData);
|
||||
if(cur_year != year){
|
||||
year = cur_year;
|
||||
scale.append($("<div class='group year w1 h1 thmtxt thmc1'>"+(year+1)+"</div>"));
|
||||
}
|
||||
if(cur_mon != mon){
|
||||
mon = cur_mon;
|
||||
console.log(parseInt(cur_mon));
|
||||
scale.append($("<div class='group month' data-content='"+cdt+"'><div class='month_heading hp vp'>"+t.monthList[parseInt(formname)]+"</div><div class='bubble_list'></div></div>"))
|
||||
}
|
||||
var mon ="",year="",formname;
|
||||
var scale = $("<div id='scale_wrapper'></div>");
|
||||
$.getJSON("desktop_orbit/eventajaxload",{"event":"papers","from":t.fromdate},function(papersArray){
|
||||
$.each(papersArray,function(i,pa){
|
||||
$.each(pa.papers,function(i,paper){
|
||||
var dt = new Date(paper.created_at);
|
||||
var cur_mon = paper.created_at.substr(5,2);
|
||||
var cur_year = dt.getFullYear();
|
||||
var cdt = paper.created_at.substr(0,7).replace("-","");
|
||||
formname = (cur_mon.charAt(0) == "0"?cur_mon.charAt(1) : cur_mon)
|
||||
var bubbleData = {"fulldate" : t.monthList[parseInt(formname)] +", " + dt.getDate() + ", " + cur_year,"title":paper.title,"jtitle":"Harry","coauthors":paper.coauthors,"abstract":paper.abstract,"timestamp":cdt}
|
||||
t.events.push(bubbleData);
|
||||
if(cur_year != year){
|
||||
year = cur_year;
|
||||
scale.append($("<div class='scale_region year'>"+(year+1)+"</div><div data-content='"+year+"'></div>"));
|
||||
}
|
||||
if(cur_mon != mon){
|
||||
mon = cur_mon;
|
||||
var yr = scale.find("div[data-content="+year+"]");
|
||||
yr.append($("<div class='scale_region month' data-content='"+cdt+"'><div class='month_heading'>"+t.monthList[parseInt(formname)]+"</div><div class='bubble_list'></div></div>"))
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
scale.append($("<div class='group year w1 h1 thmtxt thmc1'>"+year+"</div>"));
|
||||
if(typeof callbackFn == "function"){
|
||||
callbackFn.call(this,scale);
|
||||
}
|
||||
|
||||
});
|
||||
scale.append($("<div class='group year w1 h1 thmtxt thmc1'>"+year+"</div><div data-content='"+(year-1)+"'></div>"));
|
||||
t.fromdate = [year,formname-1];
|
||||
if(typeof callbackFn == "function"){
|
||||
callbackFn.call(this,scale);
|
||||
}
|
||||
})
|
||||
}
|
||||
this.makeBubble = function(bubbleData){
|
||||
var totalul = $("#scale_wrapper").find("div[data-content="+bubbleData.timestamp+"] ul").length;
|
||||
@@ -86,4 +107,45 @@ var orbitTimeline = function(dom){
|
||||
});
|
||||
})//.mouseout(function(){t.oapi.toolPopup("destroy");})
|
||||
}
|
||||
this.eventAjaxLoad = function(callbackFn){
|
||||
t.events = [];
|
||||
var mon ="",year="",formname;
|
||||
var scale = $("#scale_wrapper");
|
||||
|
||||
t.ajaxload = false;
|
||||
$.getJSON("desktop_orbit/eventajaxload",{"from":t.fromdate},function(papersArray){
|
||||
$.each(papersArray,function(i,pa){
|
||||
$.each(pa.papers,function(i,paper){
|
||||
var dt = new Date(paper.created_at);
|
||||
var cur_mon = paper.created_at.substr(5,2);
|
||||
var cur_year = dt.getFullYear();
|
||||
var cdt = paper.created_at.substr(0,7).replace("-","");
|
||||
formname = (cur_mon.charAt(0) == "0"?cur_mon.charAt(1) : cur_mon)
|
||||
var bubbleData = {"fulldate" : t.monthList[parseInt(formname)] +", " + dt.getDate() + ", " + cur_year,"title":paper.title,"jtitle":"Harry","coauthors":paper.coauthors,"abstract":paper.abstract,"timestamp":cdt}
|
||||
t.events.push(bubbleData);
|
||||
if(cur_year != year){
|
||||
year = cur_year;
|
||||
if(scale.find("div[data-content="+year+"]").length == 0){
|
||||
scale.append($("<div class='scale_region year'>"+(year+1)+"</div><div data-content='"+year+"'></div>"));
|
||||
}
|
||||
}
|
||||
if(cur_mon != mon){
|
||||
mon = cur_mon;
|
||||
var yr = scale.find("div[data-content="+year+"]");
|
||||
yr.append($("<div class='scale_region month' data-content='"+cdt+"'><div class='month_heading'>"+t.monthList[parseInt(formname)]+"</div><div class='bubble_list'></div></div>"))
|
||||
}
|
||||
});
|
||||
});
|
||||
if(papersArray.length != 0){
|
||||
if(scale.find("div[data-content="+(year-1)+"]").length == 0)
|
||||
scale.append($("<div class='scale_region year'>"+year+"</div><div data-content='"+(year-1)+"'></div>"));
|
||||
t.ajaxload = true;
|
||||
t.fromdate = [year,formname-1];
|
||||
}
|
||||
if(typeof callbackFn == "function"){
|
||||
callbackFn.call(this,scale);
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
@@ -4,4 +4,4 @@ $(document).ready(function() {
|
||||
$('body').prepend($(this).html());
|
||||
$(this).remove();
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -24,7 +24,36 @@ $("#module_app_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widgets');
|
||||
});
|
||||
|
||||
$("#tag_list select").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_r_tag_options');
|
||||
});
|
||||
|
||||
$('.part_kind').live('click', function() {
|
||||
$('.part_kind_partial').hide();
|
||||
$('#part_' + $(this).attr('value')).show();
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
bindTreeDragHandle();
|
||||
});
|
||||
|
||||
var bindTreeDragHandle = function(){
|
||||
$('ol.sortable').nestedSortable({
|
||||
disableNesting: 'no-nest',
|
||||
forcePlaceholderSize: true,
|
||||
handle: 'i',
|
||||
helper: 'clone',
|
||||
items: 'li',
|
||||
maxLevels: 3,
|
||||
opacity: .5,
|
||||
placeholder: 'placeholder',
|
||||
revert: 250,
|
||||
tabSize: 25,
|
||||
tolerance: 'pointer',
|
||||
toleranceElement: '> div',
|
||||
|
||||
stop: function(event, ui) {
|
||||
$.post("<%= Rails.application.routes.url_helpers.admin_update_position_path %>", { id: ui.item.attr('id'), parent_id: ui.item.parent().closest('li').attr('id'), position: ui.item.index() } );
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1,28 +1,19 @@
|
||||
var history_edited = false;
|
||||
|
||||
// $('#back_sidebar a, #back_main a.nav').live('click',
|
||||
// function () {
|
||||
// $.getScript(this.href);
|
||||
// history.pushState(null, document.title, this.href);
|
||||
// history_edited = true;
|
||||
// return false;
|
||||
// }
|
||||
// );
|
||||
$('#back_main a.reload').live('click',
|
||||
function () {
|
||||
$.getScript(this.href);
|
||||
history.replaceState(null, document.title, this.href);
|
||||
history_edited = true;
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
// $('#back_main a.reload').live('click',
|
||||
// function () {
|
||||
// $.getScript(this.href);
|
||||
// history.replaceState(null, document.title, this.href);
|
||||
// history_edited = true;
|
||||
// return false;
|
||||
// }
|
||||
// );
|
||||
|
||||
// $('.form').live('submit', function () {
|
||||
// $.post(this.action, $(this).serialize(), null, 'script');
|
||||
// history_edited = true;
|
||||
// return false;
|
||||
// });
|
||||
$('#back_main form').live('submit', function () {
|
||||
$.post(this.action, $(this).serialize(), null, 'script');
|
||||
history_edited = true;
|
||||
return false;
|
||||
});
|
||||
|
||||
$(document).on('click', '.js_history',
|
||||
function () {
|
||||
|
||||
@@ -5,6 +5,17 @@
|
||||
// the compiled file.
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery.ui.draggable
|
||||
//= require jquery.ui.droppable
|
||||
//= require jquery.ui.sortable
|
||||
//= require jquery_ujs
|
||||
//= require bootstrap
|
||||
//= require jquery.isotope.min
|
||||
//= require jquery.tinyscrollbar.min
|
||||
//= require orbit-1.0
|
||||
//= require orbit-bar-search
|
||||
//= require side_bar_history
|
||||
//= require page_edit
|
||||
//= require side_bar_history
|
||||
//= require tinymce-jquery
|
||||
//= require tinymce_orbit
|
||||
//= require lib/jquery.ui.nestedSortable.js
|
||||
@@ -0,0 +1,7 @@
|
||||
$(document).on('click', '.list-remove', function(){
|
||||
$('#delete_all').submit();
|
||||
});
|
||||
|
||||
$(document).on('click', '#check_all', function(){
|
||||
$('.checkbox_in_list').attr("checked", this.checked);
|
||||
});
|
||||
@@ -1,25 +0,0 @@
|
||||
$(function() {
|
||||
$('.tinymce_textarea').tinymce({
|
||||
theme: 'advanced',
|
||||
plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
|
||||
|
||||
// Theme options
|
||||
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
|
||||
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor",
|
||||
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_statusbar_location : "bottom",
|
||||
theme_advanced_resizing : true,
|
||||
|
||||
// Skin options
|
||||
skin : "o2k7",
|
||||
skin_variant : "silver",
|
||||
|
||||
// Drop lists for link/image/media/template dialogs
|
||||
template_external_list_url : "js/template_list.js",
|
||||
external_link_list_url : "js/link_list.js",
|
||||
external_image_list_url : "js/image_list.js",
|
||||
media_external_list_url : "js/media_list.js"
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,90 @@
|
||||
function load_tinymce() {
|
||||
$('.tinymce_textarea').tinymce({
|
||||
|
||||
// General options
|
||||
theme: 'advanced',
|
||||
file_browser_callback : 'myFileBrowser',
|
||||
plugins : "autolink,lists,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
|
||||
|
||||
// Theme options
|
||||
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
|
||||
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor",
|
||||
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen",
|
||||
theme_advanced_toolbar_location : "top",
|
||||
theme_advanced_toolbar_align : "left",
|
||||
theme_advanced_statusbar_location : "bottom",
|
||||
theme_advanced_resizing : true,
|
||||
|
||||
// Skin options
|
||||
skin : "o2k7",
|
||||
skin_variant : "silver",
|
||||
|
||||
// Drop lists for link/image/media/template dialogs
|
||||
template_external_list_url : "js/template_list.js",
|
||||
// external_link_list_url : "js/link_list.js",
|
||||
// external_image_list_url : "js/image_list.js",
|
||||
// media_external_list_url : "js/media_list.js"
|
||||
|
||||
// Style formats
|
||||
style_formats : [
|
||||
{title : 'Bold text', inline : 'b'},
|
||||
{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
|
||||
{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
|
||||
{title : 'Example 1', inline : 'span', classes : 'example1'},
|
||||
{title : 'Example 2', inline : 'span', classes : 'example2'},
|
||||
{title : 'Table styles'},
|
||||
{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
|
||||
],
|
||||
|
||||
// Replace values for the template plugin
|
||||
template_replace_values : {
|
||||
username : "Some User",
|
||||
staffid : "991234"
|
||||
}
|
||||
});
|
||||
}
|
||||
function myFileBrowser(field_name, url, type, win) {
|
||||
var cmsURL = window.location.toString();
|
||||
cmsURL = cmsURL.split("/");
|
||||
cmsURL = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>";
|
||||
console.log(cmsURL);
|
||||
// script URL - use an absolute path!
|
||||
if (cmsURL.indexOf("?") < 0) {
|
||||
//add the type as the only query parameter
|
||||
cmsURL = cmsURL + "?type=" + type;
|
||||
}
|
||||
else {
|
||||
//add the type as an additional query parameter
|
||||
// (PHP session ID is now included if there is one at all)
|
||||
cmsURL = cmsURL + "&type=" + type;
|
||||
}
|
||||
|
||||
tinyMCE.activeEditor.windowManager.open({
|
||||
file : cmsURL,
|
||||
title : 'File Browser',
|
||||
width : 530, // Your dimensions may differ - toy around with them!
|
||||
height : 350,
|
||||
resizable : "no",
|
||||
inline : "no", // This parameter only has an effect if you use the inlinepopups plugin!
|
||||
close_previous : "no"
|
||||
}, {
|
||||
window : win,
|
||||
input : field_name,
|
||||
alt : "alt",
|
||||
title : "title"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
function ajaxSave() {
|
||||
var ed = tinyMCE.get('content');
|
||||
// Do you ajax call here, window.setTimeout fakes ajax call
|
||||
ed.setProgressState(1); // Show progress
|
||||
window.setTimeout(function() {
|
||||
ed.setProgressState(0); // Hide progress
|
||||
alert(ed.getContent());
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
load_tinymce();
|
||||
});
|
||||
Reference in new issue
Block a user