Commit ecd5731f authored by libin's avatar libin

视频上传配置修改

parent 548b5088
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
* To change this template use File | Settings | File Templates. * To change this template use File | Settings | File Templates.
*/ */
(function(){ (function () {
var video = {}, var video = {},
uploadVideoList = [], uploadVideoList = [],
isModifyUploadVideo = false, isModifyUploadVideo = false,
uploadFile; uploadFile;
window.onload = function(){ window.onload = function () {
$focus($G("videoUrl")); $focus($G("videoUrl"));
initTabs(); initTabs();
initVideo(); initVideo();
...@@ -21,17 +21,17 @@ ...@@ -21,17 +21,17 @@
}; };
/* 初始化tab标签 */ /* 初始化tab标签 */
function initTabs(){ function initTabs() {
var tabs = $G('tabHeads').children; var tabs = $G('tabHeads').children;
for (var i = 0; i < tabs.length; i++) { for (var i = 0; i < tabs.length; i++) {
domUtils.on(tabs[i], "click", function (e) { domUtils.on(tabs[i], "click", function (e) {
var j, bodyId, target = e.target || e.srcElement; var j, bodyId, target = e.target || e.srcElement;
for (j = 0; j < tabs.length; j++) { for (j = 0; j < tabs.length; j++) {
bodyId = tabs[j].getAttribute('data-content-id'); bodyId = tabs[j].getAttribute('data-content-id');
if(tabs[j] == target){ if (tabs[j] == target) {
domUtils.addClass(tabs[j], 'focus'); domUtils.addClass(tabs[j], 'focus');
domUtils.addClass($G(bodyId), 'focus'); domUtils.addClass($G(bodyId), 'focus');
}else { } else {
domUtils.removeClasses(tabs[j], 'focus'); domUtils.removeClasses(tabs[j], 'focus');
domUtils.removeClasses($G(bodyId), 'focus'); domUtils.removeClasses($G(bodyId), 'focus');
} }
...@@ -40,26 +40,26 @@ ...@@ -40,26 +40,26 @@
} }
} }
function initVideo(){ function initVideo() {
createAlignButton( ["videoFloat", "upload_alignment"] ); createAlignButton(["videoFloat", "upload_alignment"]);
addUrlChangeListener($G("videoUrl")); addUrlChangeListener($G("videoUrl"));
addOkListener(); addOkListener();
//编辑视频时初始化相关信息 //编辑视频时初始化相关信息
(function(){ (function () {
var img = editor.selection.getRange().getClosedNode(),url; var img = editor.selection.getRange().getClosedNode(), url;
if(img && img.className){ if (img && img.className) {
var hasFakedClass = (img.className == "edui-faked-video"), var hasFakedClass = (img.className == "edui-faked-video"),
hasUploadClass = img.className.indexOf("edui-upload-video")!=-1; hasUploadClass = img.className.indexOf("edui-upload-video") != -1;
if(hasFakedClass || hasUploadClass) { if (hasFakedClass || hasUploadClass) {
$G("videoUrl").value = url = img.getAttribute("_url"); $G("videoUrl").value = url = img.getAttribute("_url");
$G("videoWidth").value = img.width; $G("videoWidth").value = img.width;
$G("videoHeight").value = img.height; $G("videoHeight").value = img.height;
var align = domUtils.getComputedStyle(img,"float"), var align = domUtils.getComputedStyle(img, "float"),
parentAlign = domUtils.getComputedStyle(img.parentNode,"text-align"); parentAlign = domUtils.getComputedStyle(img.parentNode, "text-align");
updateAlignButton(parentAlign==="center"?"center":align); updateAlignButton(parentAlign === "center" ? "center" : align);
} }
if(hasUploadClass) { if (hasUploadClass) {
isModifyUploadVideo = true; isModifyUploadVideo = true;
} }
} }
...@@ -70,11 +70,11 @@ ...@@ -70,11 +70,11 @@
/** /**
* 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作 * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作
*/ */
function addOkListener(){ function addOkListener() {
dialog.onok = function(){ dialog.onok = function () {
$G("preview").innerHTML = ""; $G("preview").innerHTML = "";
var currentTab = findFocus("tabHeads","tabSrc"); var currentTab = findFocus("tabHeads", "tabSrc");
switch(currentTab){ switch (currentTab) {
case "video": case "video":
return insertSingle(); return insertSingle();
break; break;
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
break; break;
} }
}; };
dialog.oncancel = function(){ dialog.oncancel = function () {
$G("preview").innerHTML = ""; $G("preview").innerHTML = "";
}; };
} }
...@@ -95,15 +95,15 @@ ...@@ -95,15 +95,15 @@
* 依据传入的align值更新按钮信息 * 依据传入的align值更新按钮信息
* @param align * @param align
*/ */
function updateAlignButton( align ) { function updateAlignButton(align) {
var aligns = $G( "videoFloat" ).children; var aligns = $G("videoFloat").children;
for ( var i = 0, ci; ci = aligns[i++]; ) { for (var i = 0, ci; ci = aligns[i++];) {
if ( ci.getAttribute( "name" ) == align ) { if (ci.getAttribute("name") == align) {
if ( ci.className !="focus" ) { if (ci.className != "focus") {
ci.className = "focus"; ci.className = "focus";
} }
} else { } else {
if ( ci.className =="focus" ) { if (ci.className == "focus") {
ci.className = ""; ci.className = "";
} }
} }
...@@ -113,39 +113,39 @@ ...@@ -113,39 +113,39 @@
/** /**
* 将单个视频信息插入编辑器中 * 将单个视频信息插入编辑器中
*/ */
function insertSingle(){ function insertSingle() {
var width = $G("videoWidth"), var width = $G("videoWidth"),
height = $G("videoHeight"), height = $G("videoHeight"),
url=$G('videoUrl').value, url = $G('videoUrl').value,
align = findFocus("videoFloat","name"); align = findFocus("videoFloat", "name");
if(!url) return false; if (!url) return false;
if ( !checkNum( [width, height] ) ) return false; if (!checkNum([width, height])) return false;
editor.execCommand('insertvideo', { editor.execCommand('insertvideo', {
url: convert_url(url), url: convert_url(url),
width: width.value, width: width.value,
height: height.value, height: height.value,
align: align align: align
}, isModifyUploadVideo ? 'upload':null); }, isModifyUploadVideo ? 'upload' : null);
} }
/** /**
* 将元素id下的所有代表视频的图片插入编辑器中 * 将元素id下的所有代表视频的图片插入编辑器中
* @param id * @param id
*/ */
function insertSearch(id){ function insertSearch(id) {
var imgs = domUtils.getElementsByTagName($G(id),"img"), var imgs = domUtils.getElementsByTagName($G(id), "img"),
videoObjs=[]; videoObjs = [];
for(var i=0,img; img=imgs[i++];){ for (var i = 0, img; img = imgs[i++];) {
if(img.getAttribute("selected")){ if (img.getAttribute("selected")) {
videoObjs.push({ videoObjs.push({
url:img.getAttribute("ue_video_url"), url: img.getAttribute("ue_video_url"),
width:420, width: 420,
height:280, height: 280,
align:"none" align: "none"
}); });
} }
} }
editor.execCommand('insertvideo',videoObjs); editor.execCommand('insertvideo', videoObjs);
} }
/** /**
...@@ -153,19 +153,20 @@ ...@@ -153,19 +153,20 @@
* @param id * @param id
* @param returnProperty * @param returnProperty
*/ */
function findFocus( id, returnProperty ) { function findFocus(id, returnProperty) {
var tabs = $G( id ).children, var tabs = $G(id).children,
property; property;
for ( var i = 0, ci; ci = tabs[i++]; ) { for (var i = 0, ci; ci = tabs[i++];) {
if ( ci.className=="focus" ) { if (ci.className == "focus") {
property = ci.getAttribute( returnProperty ); property = ci.getAttribute(returnProperty);
break; break;
} }
} }
return property; return property;
} }
function convert_url(url){
if ( !url ) return ''; function convert_url(url) {
if (!url) return '';
url = utils.trim(url) url = utils.trim(url)
.replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf') .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf')
.replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2") .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2")
...@@ -187,11 +188,11 @@ ...@@ -187,11 +188,11 @@
* 检测传入的所有input框中输入的长宽是否是正数 * 检测传入的所有input框中输入的长宽是否是正数
* @param nodes input框集合, * @param nodes input框集合,
*/ */
function checkNum( nodes ) { function checkNum(nodes) {
for ( var i = 0, ci; ci = nodes[i++]; ) { for (var i = 0, ci; ci = nodes[i++];) {
var value = ci.value; var value = ci.value;
if ( !isNumber( value ) && value) { if (!isNumber(value) && value) {
alert( lang.numError ); alert(lang.numError);
ci.value = ""; ci.value = "";
ci.focus(); ci.focus();
return false; return false;
...@@ -204,27 +205,27 @@ ...@@ -204,27 +205,27 @@
* 数字判断 * 数字判断
* @param value * @param value
*/ */
function isNumber( value ) { function isNumber(value) {
return /(0|^[1-9]\d*$)/.test( value ); return /(0|^[1-9]\d*$)/.test(value);
} }
/** /**
* 创建图片浮动选择按钮 * 创建图片浮动选择按钮
* @param ids * @param ids
*/ */
function createAlignButton( ids ) { function createAlignButton(ids) {
for ( var i = 0, ci; ci = ids[i++]; ) { for (var i = 0, ci; ci = ids[i++];) {
var floatContainer = $G( ci ), var floatContainer = $G(ci),
nameMaps = {"none":lang['default'], "left":lang.floatLeft, "right":lang.floatRight, "center":lang.block}; nameMaps = {"none": lang['default'], "left": lang.floatLeft, "right": lang.floatRight, "center": lang.block};
for ( var j in nameMaps ) { for (var j in nameMaps) {
var div = document.createElement( "div" ); var div = document.createElement("div");
div.setAttribute( "name", j ); div.setAttribute("name", j);
if ( j == "none" ) div.className="focus"; if (j == "none") div.className = "focus";
div.style.cssText = "background:url(images/" + j + "_focus.jpg);"; div.style.cssText = "background:url(images/" + j + "_focus.jpg);";
div.setAttribute( "title", nameMaps[j] ); div.setAttribute("title", nameMaps[j]);
floatContainer.appendChild( div ); floatContainer.appendChild(div);
} }
switchSelect( ci ); switchSelect(ci);
} }
} }
...@@ -232,16 +233,16 @@ ...@@ -232,16 +233,16 @@
* 选择切换 * 选择切换
* @param selectParentId * @param selectParentId
*/ */
function switchSelect( selectParentId ) { function switchSelect(selectParentId) {
var selects = $G( selectParentId ).children; var selects = $G(selectParentId).children;
for ( var i = 0, ci; ci = selects[i++]; ) { for (var i = 0, ci; ci = selects[i++];) {
domUtils.on( ci, "click", function () { domUtils.on(ci, "click", function () {
for ( var j = 0, cj; cj = selects[j++]; ) { for (var j = 0, cj; cj = selects[j++];) {
cj.className = ""; cj.className = "";
cj.removeAttribute && cj.removeAttribute( "class" ); cj.removeAttribute && cj.removeAttribute("class");
} }
this.className = "focus"; this.className = "focus";
} ) })
} }
} }
...@@ -249,15 +250,15 @@ ...@@ -249,15 +250,15 @@
* 监听url改变事件 * 监听url改变事件
* @param url * @param url
*/ */
function addUrlChangeListener(url){ function addUrlChangeListener(url) {
if (browser.ie) { if (browser.ie) {
url.onpropertychange = function () { url.onpropertychange = function () {
createPreviewVideo( this.value ); createPreviewVideo(this.value);
} }
} else { } else {
url.addEventListener( "input", function () { url.addEventListener("input", function () {
createPreviewVideo( this.value ); createPreviewVideo(this.value);
}, false ); }, false);
} }
} }
...@@ -265,14 +266,14 @@ ...@@ -265,14 +266,14 @@
* 根据url生成视频预览 * 根据url生成视频预览
* @param url * @param url
*/ */
function createPreviewVideo(url){ function createPreviewVideo(url) {
if ( !url )return; if (!url) return;
var conUrl = convert_url(url); var conUrl = convert_url(url);
conUrl = utils.unhtmlForUrl(conUrl); conUrl = utils.unhtmlForUrl(conUrl);
$G("preview").innerHTML = '<div class="previewMsg"><span>'+lang.urlError+'</span></div>'+ $G("preview").innerHTML = '<div class="previewMsg"><span>' + lang.urlError + '</span></div>' +
'<embed class="previewVideo" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"' + '<embed class="previewVideo" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
' src="' + conUrl + '"' + ' src="' + conUrl + '"' +
' width="' + 420 + '"' + ' width="' + 420 + '"' +
...@@ -283,19 +284,19 @@ ...@@ -283,19 +284,19 @@
/* 插入上传视频 */ /* 插入上传视频 */
function insertUpload(){ function insertUpload() {
var videoObjs=[], var videoObjs = [],
uploadDir = editor.getOpt('videoUrlPrefix'), uploadDir = editor.getOpt('videoUrlPrefix'),
width = parseInt($G('upload_width').value, 10) || 420, width = parseInt($G('upload_width').value, 10) || 420,
height = parseInt($G('upload_height').value, 10) || 280, height = parseInt($G('upload_height').value, 10) || 280,
align = findFocus("upload_alignment","name") || 'none'; align = findFocus("upload_alignment", "name") || 'none';
for(var key in uploadVideoList) { for (var key in uploadVideoList) {
var file = uploadVideoList[key]; var file = uploadVideoList[key];
videoObjs.push({ videoObjs.push({
url: uploadDir + file.url, url: uploadDir + file.url,
width:width, width: width,
height:height, height: height,
align:align align: align
}); });
} }
...@@ -309,7 +310,7 @@ ...@@ -309,7 +310,7 @@
} }
/*初始化上传标签*/ /*初始化上传标签*/
function initUpload(){ function initUpload() {
uploadFile = new UploadFile('queueList'); uploadFile = new UploadFile('queueList');
} }
...@@ -319,6 +320,7 @@ ...@@ -319,6 +320,7 @@
this.$wrap = target.constructor == String ? $('#' + target) : $(target); this.$wrap = target.constructor == String ? $('#' + target) : $(target);
this.init(); this.init();
} }
UploadFile.prototype = { UploadFile.prototype = {
init: function () { init: function () {
this.fileList = []; this.fileList = [];
...@@ -376,7 +378,8 @@ ...@@ -376,7 +378,8 @@
uploader, uploader,
actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')), actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')),
fileMaxSize = editor.getOpt('videoMaxSize'), fileMaxSize = editor.getOpt('videoMaxSize'),
acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');; acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');
;
if (!WebUploader.Uploader.support()) { if (!WebUploader.Uploader.support()) {
$('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide(); $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
...@@ -392,7 +395,7 @@ ...@@ -392,7 +395,7 @@
label: lang.uploadSelectFile label: lang.uploadSelectFile
}, },
swf: '../../third-party/webuploader/Uploader.swf', swf: '../../third-party/webuploader/Uploader.swf',
server: actionUrl, server: '/' + actionUrl,
fileVal: editor.getOpt('videoFieldName'), fileVal: editor.getOpt('videoFieldName'),
duplicate: true, duplicate: true,
fileSingleSizeLimit: fileMaxSize, fileSingleSizeLimit: fileMaxSize,
...@@ -449,7 +452,7 @@ ...@@ -449,7 +452,7 @@
showError(file.statusText); showError(file.statusText);
} else { } else {
$wrap.text(lang.uploadPreview); $wrap.text(lang.uploadPreview);
if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) { if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|' + file.ext.toLowerCase() + '|') == -1) {
$wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' + $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
'<span class="file-title">' + file.name + '</span>'); '<span class="file-title">' + file.name + '</span>');
} else { } else {
...@@ -469,7 +472,7 @@ ...@@ -469,7 +472,7 @@
}, thumbnailWidth, thumbnailHeight); }, thumbnailWidth, thumbnailHeight);
} }
} }
percentages[ file.id ] = [ file.size, 0 ]; percentages[file.id] = [file.size, 0];
file.rotation = 0; file.rotation = 0;
/* 检查文件格式 */ /* 检查文件格式 */
...@@ -489,11 +492,11 @@ ...@@ -489,11 +492,11 @@
// 成功 // 成功
if (cur === 'error' || cur === 'invalid') { if (cur === 'error' || cur === 'invalid') {
showError(file.statusText); showError(file.statusText);
percentages[ file.id ][ 1 ] = 1; percentages[file.id][1] = 1;
} else if (cur === 'interrupt') { } else if (cur === 'interrupt') {
showError('interrupt'); showError('interrupt');
} else if (cur === 'queued') { } else if (cur === 'queued') {
percentages[ file.id ][ 1 ] = 0; percentages[file.id][1] = 0;
} else if (cur === 'progress') { } else if (cur === 'progress') {
$info.hide(); $info.hide();
$prgress.css('display', 'block'); $prgress.css('display', 'block');
...@@ -546,7 +549,7 @@ ...@@ -546,7 +549,7 @@
// 负责view的销毁 // 负责view的销毁
function removeFile(file) { function removeFile(file) {
var $li = $('#' + file.id); var $li = $('#' + file.id);
delete percentages[ file.id ]; delete percentages[file.id];
updateTotalProgress(); updateTotalProgress();
$li.off().find('.file-panel').off().end().remove(); $li.off().find('.file-panel').off().end().remove();
} }
...@@ -558,8 +561,8 @@ ...@@ -558,8 +561,8 @@
percent; percent;
$.each(percentages, function (k, v) { $.each(percentages, function (k, v) {
total += v[ 0 ]; total += v[0];
loaded += v[ 0 ] * v[ 1 ]; loaded += v[0] * v[1];
}); });
percent = total ? loaded / total : 0; percent = total ? loaded / total : 0;
...@@ -585,7 +588,8 @@ ...@@ -585,7 +588,8 @@
$queue.addClass('element-invisible'); $queue.addClass('element-invisible');
$statusBar.addClass('element-invisible'); $statusBar.addClass('element-invisible');
$placeHolder.removeClass('element-invisible'); $placeHolder.removeClass('element-invisible');
$progress.hide(); $info.hide(); $progress.hide();
$info.hide();
uploader.refresh(); uploader.refresh();
break; break;
...@@ -594,25 +598,29 @@ ...@@ -594,25 +598,29 @@
$placeHolder.addClass('element-invisible'); $placeHolder.addClass('element-invisible');
$queue.removeClass('element-invisible'); $queue.removeClass('element-invisible');
$statusBar.removeClass('element-invisible'); $statusBar.removeClass('element-invisible');
$progress.hide(); $info.show(); $progress.hide();
$info.show();
$upload.text(lang.uploadStart); $upload.text(lang.uploadStart);
uploader.refresh(); uploader.refresh();
break; break;
/* 上传中 */ /* 上传中 */
case 'uploading': case 'uploading':
$progress.show(); $info.hide(); $progress.show();
$info.hide();
$upload.text(lang.uploadPause); $upload.text(lang.uploadPause);
break; break;
/* 暂停上传 */ /* 暂停上传 */
case 'paused': case 'paused':
$progress.show(); $info.hide(); $progress.show();
$info.hide();
$upload.text(lang.uploadContinue); $upload.text(lang.uploadContinue);
break; break;
case 'confirm': case 'confirm':
$progress.show(); $info.hide(); $progress.show();
$info.hide();
$upload.text(lang.uploadStart); $upload.text(lang.uploadStart);
stats = uploader.getStats(); stats = uploader.getStats();
...@@ -623,7 +631,8 @@ ...@@ -623,7 +631,8 @@
break; break;
case 'finish': case 'finish':
$progress.hide(); $info.show(); $progress.hide();
$info.show();
if (stats.uploadFailNum) { if (stats.uploadFailNum) {
$upload.text(lang.uploadRetry); $upload.text(lang.uploadRetry);
} else { } else {
...@@ -657,9 +666,7 @@ ...@@ -657,9 +666,7 @@
} }
} else { } else {
stats = uploader.getStats(); stats = uploader.getStats();
text = lang.updateStatusFinish.replace('_', fileCount). text = lang.updateStatusFinish.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize)).replace('_', stats.successNum);
replace('_KB', WebUploader.formatSize(fileSize)).
replace('_', stats.successNum);
if (stats.uploadFailNum) { if (stats.uploadFailNum) {
text += lang.updateStatusError.replace('_', stats.uploadFailNum); text += lang.updateStatusError.replace('_', stats.uploadFailNum);
...@@ -704,7 +711,7 @@ ...@@ -704,7 +711,7 @@
case 'startUpload': case 'startUpload':
/* 添加额外的GET参数 */ /* 添加额外的GET参数 */
var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + 'encode=utf-8&' + params);
uploader.option('server', url); uploader.option('server', url);
setState('uploading', files); setState('uploading', files);
break; break;
...@@ -724,7 +731,7 @@ ...@@ -724,7 +731,7 @@
$percent = $li.find('.progress span'); $percent = $li.find('.progress span');
$percent.css('width', percentage * 100 + '%'); $percent.css('width', percentage * 100 + '%');
percentages[ file.id ][ 1 ] = percentage; percentages[file.id][1] = percentage;
updateTotalProgress(); updateTotalProgress();
}); });
...@@ -737,7 +744,7 @@ ...@@ -737,7 +744,7 @@
uploadVideoList.push({ uploadVideoList.push({
'url': json.url, 'url': json.url,
'type': json.type, 'type': json.type,
'original':json.original 'original': json.original
}); });
$file.append('<span class="success"></span>'); $file.append('<span class="success"></span>');
} else { } else {
...@@ -777,13 +784,13 @@ ...@@ -777,13 +784,13 @@
}, },
getQueueCount: function () { getQueueCount: function () {
var file, i, status, readyFile = 0, files = this.uploader.getFiles(); var file, i, status, readyFile = 0, files = this.uploader.getFiles();
for (i = 0; file = files[i++]; ) { for (i = 0; file = files[i++];) {
status = file.getStatus(); status = file.getStatus();
if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++; if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
} }
return readyFile; return readyFile;
}, },
refresh: function(){ refresh: function () {
this.uploader.refresh(); this.uploader.refresh();
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment