141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| !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;
 | |
| 	
 | |
| 	var showPreview = function(elem){
 | |
| 		var type = $("#ext_" + elem.val()).val(),
 | |
| 			imgexp = new RegExp(/(\.|\/)(gif|jpe?g|png)$/i),
 | |
| 			otherexp = new RegExp(/(\.|\/)(pdf|doc|docx|ppt|pptx|xls|xlsx)$/i)
 | |
| 			img = $("<img />"),
 | |
| 			preview = $( ".preview-area" );
 | |
| 		preview.text("Preview is loading...");
 | |
| 		if( imgexp.test(type) ){
 | |
| 			var url = $("#url_" + elem.val()).val();
 | |
| 			img.attr("src",url).load(function(){
 | |
| 				var ratio = this.width / this.height,
 | |
| 					targetWidth = targetHeight = 200;
 | |
| 				if( ratio < 1 ){
 | |
| 					targetWidth = targetHeight * ratio;
 | |
| 				}else{
 | |
| 					targetHeight = targetWidth / ratio;
 | |
| 				}
 | |
| 				img.height(targetHeight).width(targetWidth);
 | |
| 				preview.html(img);
 | |
| 			})
 | |
| 		}else if( otherexp.test(type) ) {
 | |
| 			var t = type.replace(".",""),
 | |
| 				url = "/assets/ft-icons/" + t + "/" + t + "-128_32.png";
 | |
| 			img.attr('src', url).load(function(){
 | |
| 				preview.html(img);
 | |
| 			});
 | |
| 		}else{
 | |
| 			preview.html("Preview not available.");
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	$("#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();
 | |
| 			showPreview($("input[type=checkbox]:checked"))
 | |
| 		}else{
 | |
| 			insertBtn.hide();
 | |
| 			url = null;
 | |
| 			$( ".preview-area" ).empty();
 | |
| 		}
 | |
| 		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("/admin/assets/delete_files",{"files":items_to_delete,"type":type},function(){
 | |
| 			deleteBtn.hide();
 | |
| 		})
 | |
| 	})
 | |
| 	var currentEdit = null;
 | |
| 	$(document).on("ajax:success","form[data-remote=true]",function(evt, data, xhr){
 | |
| 		if(currentEdit){
 | |
| 			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;
 | |
| 	})
 | |
| 
 | |
| 	$("#editform").on("hidden",function(){
 | |
| 		currentEdit = null;
 | |
| 	})
 | |
| 
 | |
| 	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); 
 | |
| 
 | |
| }) |