*/
-
var ratio = 0.75;
var pages;
var slideUrls = new Array();
@@ -11,247 +10,248 @@ var curSlide = 1;
var totalSize = 1; // PPT当前获取到的总页数
var slideCount = 1; // PPT文件总页数
var size = (!!$.url().param('size') ? $.url().param('size') : 0);
-$(document).ready(function() {
-
- // async method:
- $.get('onlinePreview?' , params, function(data, status) {
- var data = JSON.parse(data);
- var code = data.code;
- if (1 == code) {
- uuid = data.uuid;
- pages = data.data;
- totalSize = pages.length;
- slideCount = data.totalSize;
-
- // title
- $('.container-fluid:first .btn:first').after('' + data.name + ' ');
- document.title = data.name;
-
- // set ratio
- ratio = pages[0].ratio;
-
- // reset all content
- resetContent();
- afterLoad();
- } else {
- $('.container-fluid .row-fluid').html('');
- }
+$(document).ready(function () {
+ var data = resultData
+ var code = data.code;
+ if (1 == code) {
+ uuid = data.uuid;
+ pages = data.data;
+ totalSize = pages.length;
+ slideCount = data.totalSize;
- clearProgress();
- });
+ // title
+ $('.container-fluid:first .btn:first').after('' + data.name + ' ');
+ document.title = data.name;
- // 是否显示全屏按钮
- $('.fullscreen-link').toggle(screenfull.enabled);
- // 全屏事件
- $('.fullscreen-link').click(function(){
- if (screenfull.enabled) {
- screenfull.toggle($('.slide-img-container')[0]);
- }
- });
- $(document).bind("fullscreenchange", function() {
- if (screenfull.isFullscreen) {
- $('.slide-img-container').css('background-color', 'black');
- $('.slide-img-container').contextMenu(true);
- } else {
- $('.slide-img-container').css('background-color', '');
- $('.slide-img-container').contextMenu(false);
- }
- });
-
- $('.select-page-selector').change(function() {
- var selectNum = $(".select-page-selector option:selected").text();
- gotoSlide(selectNum);
- });
- $('.slide-img-container .ppt-turn-left-mask').click(function () {
- preSlide();
- });
- $('.slide-img-container .ppt-turn-right-mask').click(function () {
- nextSlide();
- });
+ // set ratio
+ ratio = pages[0].ratio;
- // Right click (NOT supported in SOUGOU browser)
- /*
- $.contextMenu({
+ // reset all content
+ resetContent();
+
+ afterLoad();
+ } else {
+ $('.container-fluid .row-fluid').html('');
+ }
+ clearProgress();
+
+ // 是否显示全屏按钮
+ $('.fullscreen-link').toggle(screenfull.enabled);
+ // 全屏事件
+ $('.fullscreen-link').click(function () {
+ if (screenfull.enabled) {
+ screenfull.toggle($('.slide-img-container')[0]);
+ }
+ });
+ $(document).bind("fullscreenchange", function () {
+ if (screenfull.isFullscreen) {
+ $('.slide-img-container').css('background-color', 'black');
+ $('.slide-img-container').contextMenu(true);
+ } else {
+ $('.slide-img-container').css('background-color', '');
+ $('.slide-img-container').contextMenu(false);
+ }
+ });
+
+ $('.select-page-selector').change(function () {
+ var selectNum = $(".select-page-selector option:selected").text();
+ gotoSlide(selectNum);
+ });
+ $('.slide-img-container .ppt-turn-left-mask').click(function () {
+ preSlide();
+ });
+ $('.slide-img-container .ppt-turn-right-mask').click(function () {
+ nextSlide();
+ });
+
+ // Right click (NOT supported in SOUGOU browser)
+ /*
+ $.contextMenu({
selector: '.slide-img-container',
items: {
- "next": {
+ "next": {
name: "下一张",
callback: function(key, options) {
- nextSlide();
+ nextSlide();
}
},
"previous": {
name: "上一张",
callback: function(key, options) {
- preSlide();
+ preSlide();
}
},
"sep1": "---------",
"exit": {
name: "结束放映",
callback: function(key, options) {
- $('.slide-img-container').fullScreen(false);
+ $('.slide-img-container').fullScreen(false);
}
},
}
});
*/
- $('.slide-img-container').contextMenu(false);
-
- // Swipe method is NOT supported in IE6, so it should be the last one.
- try {
- $('.slide-img-container').swipeleft(function() { nextSlide(); });
- $('.slide-img-container').swiperight(function() { preSlide(); });
- } catch (err) {
+ $('.slide-img-container').contextMenu(false);
- }
+ // Swipe method is NOT supported in IE6, so it should be the last one.
+ try {
+ $('.slide-img-container').swipeleft(function () {
+ nextSlide();
+ });
+ $('.slide-img-container').swiperight(function () {
+ preSlide();
+ });
+ } catch (err) {
+
+ }
});
var remainContentInterval;
-function checkRemainContent () {
- clearInterval(remainContentInterval);
- if (slideCount == totalSize) {
- return;
- }
+
+function checkRemainContent() {
+ clearInterval(remainContentInterval);
+ if (slideCount == totalSize) {
+ return;
+ }
}
function resetContent() {
- remainContentInterval = setInterval(checkRemainContent, 8000);
+ remainContentInterval = setInterval(checkRemainContent, 8000);
- // clear all content
- $('.row-fluid .span2').empty();
- $('.select-page-selector').empty();
- $('.select-page-selector-sync').empty();
- $('.slide-img-container img').remove();
+ // clear all content
+ $('.row-fluid .span2').empty();
+ $('.select-page-selector').empty();
+ $('.select-page-selector-sync').empty();
+ $('.slide-img-container img').remove();
- // 限制预览页数开始
- var viewCheck = authMap.view;
- if (!!viewCheck && (viewCheck > 1) && (pages.length > viewCheck)) {
- $('.navbar').after(' 试读结束,支付后阅读全文!
');
- totalSize = viewCheck;
- clearInterval(remainContentInterval);
- }
- // 限制预览页数结束
+ // 限制预览页数开始
+ var viewCheck = authMap.view;
+ if (!!viewCheck && (viewCheck > 1) && (pages.length > viewCheck)) {
+ $('.navbar').after('试读结束,支付后阅读全文!
');
+ totalSize = viewCheck;
+ clearInterval(remainContentInterval);
+ }
+ // 限制预览页数结束
- // pages
- for (i = 0; i < totalSize; i++) {
- var page = pages[i];
- slideUrls[i] = page.url;
- slideThumbUrls[i] = page.thumbUrl;
- $('.row-fluid .span2').append('' + (i + 1) + '/' + slideCount + '
');
- $('.select-page-selector').append('' + (i + 1) + ' ');
- $('.select-page-selector-sync').append('' + (i + 1) + ' ');
- }
+ // pages
+ for (i = 0; i < totalSize; i++) {
+ var page = pages[i];
+ slideUrls[i] = page.url;
+ slideThumbUrls[i] = page.thumbUrl;
+ $('.row-fluid .span2').append('' + (i + 1) + '/' + slideCount + '
');
+ $('.select-page-selector').append('' + (i + 1) + ' ');
+ $('.select-page-selector-sync').append('' + (i + 1) + ' ');
+ }
- // 未转换完成提示信息
- if (totalSize < slideCount) {
- $('.row-fluid .span2').prepend('转换中(' + Math.floor((totalSize / slideCount) * 100) + '%),请稍候……
');
- }
+ // 未转换完成提示信息
+ if (totalSize < slideCount) {
+ $('.row-fluid .span2').prepend('转换中(' + Math.floor((totalSize / slideCount) * 100) + '%),请稍候……
');
+ }
- $('.slide-img-container').append(' ');
- var thumbnailWidth = $('.thumbnail:first').width();
- var thumbnailHeight = thumbnailWidth * ratio;
- $('.thumbnail').height(thumbnailHeight);
- $('.thumbnail>img').width(thumbnailWidth).height(thumbnailHeight);
+ $('.slide-img-container').append(' ');
+ var thumbnailWidth = $('.thumbnail:first').width();
+ var thumbnailHeight = thumbnailWidth * ratio;
+ $('.thumbnail').height(thumbnailHeight);
+ $('.thumbnail>img').width(thumbnailWidth).height(thumbnailHeight);
- var slideImgContainerWidth = $('.slide-img-container:first').width();
- var slideImgContainerHeight = slideImgContainerWidth * ratio;
- $('.slide-img-container').height(slideImgContainerHeight);
+ var slideImgContainerWidth = $('.slide-img-container:first').width();
+ var slideImgContainerHeight = slideImgContainerWidth * ratio;
+ $('.slide-img-container').height(slideImgContainerHeight);
- resetImgSize();
+ resetImgSize();
- var percent = Math.ceil((curSlide / slideUrls.length) * 100);
- $('.thumbnail[page="' + curSlide + '"]').addClass('ppt-thumb-border');
+ var percent = Math.ceil((curSlide / slideUrls.length) * 100);
+ $('.thumbnail[page="' + curSlide + '"]').addClass('ppt-thumb-border');
- // $('.thumbnail[page="' + curSlide + '"]').animate({scrollTop:($(window).height()/2)}, 'slow');
+ // $('.thumbnail[page="' + curSlide + '"]').animate({scrollTop:($(window).height()/2)}, 'slow');
- $('.select-page-selector').val(curSlide);
- $('.bottom-paging-progress .bar').width('' + percent + '%');
+ $('.select-page-selector').val(curSlide);
+ $('.bottom-paging-progress .bar').width('' + percent + '%');
- $('.thumbnail').click(function () {
- var page_num = $(this).attr('page');
- gotoSlide(page_num);
- });
+ $('.thumbnail').click(function () {
+ var page_num = $(this).attr('page');
+ gotoSlide(page_num);
+ });
}
-$(window).resize(function() {
- resetImgSize();
+$(window).resize(function () {
+ resetImgSize();
});
function resetImgSize() {
- var leftW = $('.row-fluid .span2').width() + 40;
- var windowW = $(window).width();
- if (windowW < 768) {
- leftW = -40;
- $('.hidden-phone').css('display', 'none');
- $('.span9').removeClass('offset2');
- } else {
- $('.hidden-phone').css('display', 'block');
- $('.span9').addClass('offset2');
- }
- var ww = $(window).width() - 120 - leftW;
- var wh = $(window).height() - 90;
- if (screenfull.isFullscreen) {
- ww = ww + 90 + leftW;
- wh = wh + 80;
- }
- if (wh / ww < ratio) {
- $('.slide-img-container').height(wh);
- $('.slide-img-container').width(wh / ratio);
- } else {
- $('.slide-img-container').width(ww);
- $('.slide-img-container').height(ww * ratio);
- }
+ var leftW = $('.row-fluid .span2').width() + 40;
+ var windowW = $(window).width();
+ if (windowW < 768) {
+ leftW = -40;
+ $('.hidden-phone').css('display', 'none');
+ $('.span9').removeClass('offset2');
+ } else {
+ $('.hidden-phone').css('display', 'block');
+ $('.span9').addClass('offset2');
+ }
+ var ww = $(window).width() - 120 - leftW;
+ var wh = $(window).height() - 90;
+ if (screenfull.isFullscreen) {
+ ww = ww + 90 + leftW;
+ wh = wh + 80;
+ }
+ if (wh / ww < ratio) {
+ $('.slide-img-container').height(wh);
+ $('.slide-img-container').width(wh / ratio);
+ } else {
+ $('.slide-img-container').width(ww);
+ $('.slide-img-container').height(ww * ratio);
+ }
}
-$(document).keydown(function(event){
- if (event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 33) { // 37 left, 38 up, 33 pageUp
- preSlide();
- } else if (event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 32 || event.keyCode == 34){ // 39 right, 40 down, 32 space, 34 pageDown
- nextSlide();
- } else if (event.keyCode == 13) {
- screenfull.toggle($('.slide-img-container')[0]);
- }
+$(document).keydown(function (event) {
+ if (event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 33) { // 37 left, 38 up, 33 pageUp
+ preSlide();
+ } else if (event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 32 || event.keyCode == 34) { // 39 right, 40 down, 32 space, 34 pageDown
+ nextSlide();
+ } else if (event.keyCode == 13) {
+ screenfull.toggle($('.slide-img-container')[0]);
+ }
});
function getCurSlide() {
- return curSlide;
+ return curSlide;
}
function preSlide() {
- var preSlide = eval(Number(getCurSlide()) - 1);
- gotoSlide(preSlide);
+ var preSlide = eval(Number(getCurSlide()) - 1);
+ gotoSlide(preSlide);
}
function nextSlide() {
- var nextSlide = eval(Number(getCurSlide()) + 1);
- gotoSlide(nextSlide);
+ var nextSlide = eval(Number(getCurSlide()) + 1);
+ gotoSlide(nextSlide);
}
function gotoSlide(slide) {
- var slideSum = slideUrls.length;
- if (slide <= 0) {
- slide = 1;
- } else if (slideSum < slide) {
- slide = slideSum;
- }
- curSlide = slide;
- /*
- $(".slide-img-container img").fadeOut(function() {
- $(this).attr("src", slideUrls[slide - 1]).fadeIn();
- });
- */
- $(".slide-img-container img").attr("src", slideUrls[slide - 1]);
- var percent = Math.ceil((curSlide / slideUrls.length) * 100);
- $('.thumbnail').removeClass('ppt-thumb-border');
- $('.thumbnail[page="' + slide + '"]').addClass('ppt-thumb-border');
- var thumbTop = slide * ($('.thumbnail[page="' + 1 + '"]').height() + 10 + $('.thumb-page-number-container').height()) - ($(document).height() / 2);
- $('.span2 ').animate({scrollTop:(thumbTop)}, 'slow');
- $('.select-page-selector').val(slide);
- $('.select-page-selector-sync').val(slide);
- $('.bottom-paging-progress .bar').width('' + percent + '%');
+ var slideSum = slideUrls.length;
+ if (slide <= 0) {
+ slide = 1;
+ } else if (slideSum < slide) {
+ slide = slideSum;
+ }
+ curSlide = slide;
+ /*
+ $(".slide-img-container img").fadeOut(function() {
+ $(this).attr("src", slideUrls[slide - 1]).fadeIn();
+ });
+ */
+ $(".slide-img-container img").attr("src", slideUrls[slide - 1]);
+ var percent = Math.ceil((curSlide / slideUrls.length) * 100);
+ $('.thumbnail').removeClass('ppt-thumb-border');
+ $('.thumbnail[page="' + slide + '"]').addClass('ppt-thumb-border');
+ var thumbTop = slide * ($('.thumbnail[page="' + 1 + '"]').height() + 10 + $('.thumb-page-number-container').height()) - ($(document).height() / 2);
+ $('.span2 ').animate({scrollTop: (thumbTop)}, 'slow');
+ $('.select-page-selector').val(slide);
+ $('.select-page-selector-sync').val(slide);
+ $('.bottom-paging-progress .bar').width('' + percent + '%');
-}
\ No newline at end of file
+}
diff --git a/server/src/main/resources/web/commonHeader.ftl b/server/src/main/resources/web/commonHeader.ftl
index 7969ad50..6441afc3 100644
--- a/server/src/main/resources/web/commonHeader.ftl
+++ b/server/src/main/resources/web/commonHeader.ftl
@@ -1,9 +1,9 @@
-
-
+<#setting classic_compatible=true>
+
@@ -33,7 +33,52 @@
}
}
+ // 中文环境
+ var locale_zh_CN = {
+ OK: '确定',
+ CONFIRM: '确认',
+ CANCEL: '取消'
+ };
+ bootbox.addLocale('locale_zh_CN', locale_zh_CN);
+
+ /**
+ * 需要文件密码
+ */
+ function needFilePassword() {
+ if ('${needFilePassword}' == 'true') {
+ let promptTitle = "你正在预览加密文件,请输入文件密码。";
+ if ('${filePasswordError}' == 'true') {
+ promptTitle = "密码错误,请重新输入密码。";
+ }
+
+ bootbox.prompt({
+ title: promptTitle,
+ inputType: 'password',
+ centerVertical: true,
+ locale: 'locale_zh_CN',
+ callback: function (filePassword) {
+ if (filePassword != null) {
+ const locationHref = window.location.href;
+ const isInclude = locationHref.includes("filePassword=");
+ let redirectUrl = null;
+ if (isInclude) {
+ const url = new URL(locationHref);
+ url.searchParams.set("filePassword", filePassword);
+ redirectUrl = url.href;
+ } else {
+ redirectUrl = locationHref + '&filePassword=' + filePassword;
+ }
+
+ window.location.replace(redirectUrl);
+ } else {
+ location.reload();
+ }
+ }
+ });
+ }
+ }
+
-
diff --git a/server/src/main/resources/web/fileNotSupported.ftl b/server/src/main/resources/web/fileNotSupported.ftl
index 69699143..6bce7939 100644
--- a/server/src/main/resources/web/fileNotSupported.ftl
+++ b/server/src/main/resources/web/fileNotSupported.ftl
@@ -1,42 +1,46 @@
-
-
+
+
-
+
- 该文件类型(${fileType})系统暂时不支持在线预览,说明 :
+ 该(${fileType})文件,系统暂不支持在线预览,具体原因如下:
${msg}
- 有任何疑问,请加 官方QQ群:613025121 咨询
+
-
\ No newline at end of file
diff --git a/server/src/main/resources/web/html.ftl b/server/src/main/resources/web/html.ftl
index 7b233182..4ee3e627 100644
--- a/server/src/main/resources/web/html.ftl
+++ b/server/src/main/resources/web/html.ftl
@@ -2,25 +2,31 @@
-
+
+ 文件预览
<#include "*/commonHeader.ftl">
-
+
+
+
+
-
\ No newline at end of file
+