appThumbnail.jsp
3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.weaver.formmodel.util.NumberHelper"%>
<%@ page import="com.weaver.formmodel.util.StringHelper"%>
<%@ include file="/mobilemode/init2.jsp"%>
<%
int appid = NumberHelper.string2Int(request.getParameter("appid"),0);
int appHomepageId = NumberHelper.string2Int(request.getParameter("appHomepageId"), -1);
String timestamp = StringHelper.null2String(request.getParameter("timestamp"));
%>
<script type="text/javascript">
	window.alert = function(){ };
	window.confirm = function() { };
	window.prompt = function() { };
</script>
<script src="/mobilemode/admin/dep/html2canvas/html2canvas.min.js" type="text/javascript"></script>
<jsp:include page="/mobilemode/mobile/view.html"></jsp:include>
<style>
	.page,
	.page-content {
		overflow: hidden !important;
	}
	.wev-comp-List.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-NList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-UrlList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-LargeList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-APIList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-Timelinr.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-HoriList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-Tree.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-RSSList.wev-refreshing .wev-table-view-wrapper,
	.wev-comp-DetailTable.wev-refreshing .wev-detailtable-content-wrapper {
		transform: none !important;
		-webkit-transform: none !important;
		min-height: auto !important;
	}
	.wev-refresh-loading{
		display: none !important;
	}
</style>
<canvas id="canvas"></canvas>
<script type="text/javascript">
	window.onThumbUpload = function () {};
	var appHomepageId = <%=appHomepageId %>;
	var isReadly = false;
	
	var v = setInterval(function(){
		if(typeof($load) != "undefined"){
			clearInterval(v);
			$load(function(){
				
				require("mUtil").pluginLoad("page_" + appHomepageId, function(){
					if(!isReadly){
						isReadly = true;
						setTimeout(screenshot, 1000);
					}
				});
				
			});
			
			setTimeout(function(){
				if(!isReadly){
					isReadly = true;
					screenshot();
				}
			}, 10000);
		}
	}, 300);
	
	function screenshot() {
		html2canvas($("#page_"+appHomepageId)[0], {
			useCORS: true,
			logging: false
		}).then(function(canvas) {
			var base64 = canvas.toDataURL('image/png');
			upload(base64).then(function () {
                window.onThumbUpload();
			});
		});
	}
	function upload(base64) {
		var fdata = new FormData();
		
		function dataURLtoBlob(dataurl) {
		    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
		        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
		    while (n--) {
		        u8arr[n] = bstr.charCodeAt(n);
		    }
		    return new Blob([u8arr], { type: mime });
		}
		
		fdata.append('appHomepageId', appHomepageId);
		fdata.append('thumbnail', dataURLtoBlob(base64));
		return $.ajax({
			url: "/api/mobilemode/admin/designer/saveAppHomepageThumbnail",
			data: fdata,
			type: 'post',
			processData: false,
			contentType: false,
			success: function(result) {
				result = JSON.parse(result);
				
				if(result.api_status && parent.require) {
					 parent.require('appdesigner').reloadThumbnail('S' + appHomepageId, result.data.thumbnail, "<%=timestamp%>");
				}
			}
		});
	}
</script>
</body>
</html>