123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- MWF.xDesktop.requireApp("process.Xform", "$Module", null, false);
- MWF.xApplication.process.Xform.PdfView = MWF.APPPdfView = new Class({
- Extends: MWF.APP$Module,
- options:{
- "moduleEvents": [
- "afterOpen"
- ]
- },
- initialize: function(node, json, form, options){
- this.node = $(node);
- this.node.store("module", this);
- this.json = json;
- this.form = form;
- if (this.json.isReadonly || this.form.json.isReadonly){
- this.mode = "read";
- }else{
- if (this.json.readScript && this.json.readScript.code){
- var flag = this.form.Macro.exec(this.json.readScript.code, this);
- if (flag){
- this.mode = "read";
- }
- }
- }
- },
- _loadUserInterface: function(){
- this.node.empty();
- },
- _afterLoaded: function(){
- if(this.mode !== "read"){
- this.createUpload();
- }
- this.data = this.getData();
- this.documentId = this.data.documentId;
- if(this.data.documentId === ""){
- this.createEmpty();
- }else {
- this.loadPdfView();
- }
- },
- createEmpty : function (){
- this.emptyNode = new Element("div").inject(this.node);
- this.emptyNode.set("text",MWF.xApplication.process.Xform.LP.pdfview.nofile);
- },
- createUpload : function (){
- this.uploadNode = new Element("div",{"style":"margin:10px;"}).inject(this.node);
- var uploadBtn = new Element("button",{"text":MWF.xApplication.process.Xform.LP.pdfview.upload,"style":"margin-left: 15px; color: rgb(255, 255, 255); cursor: pointer; height: 26px; line-height: 26px; padding: 0px 10px; min-width: 40px; background-color: rgb(74, 144, 226); border: 1px solid rgb(82, 139, 204); border-radius: 15px;"}).inject(this.uploadNode);
- uploadBtn.addEvent("click",function (){
- o2.require("o2.widget.Upload", null, false);
- if(this.documentId === ""){
- var upload = new o2.widget.Upload(this.form.app.content, {
- "action": o2.Actions.get("x_processplatform_assemble_surface").action,
- "method": "uploadAttachment",
- "parameter": {
- "id": this.form.businessData.work.id
- },
- "accept" : "application/pdf",
- "data":{
- "site": "pdfAttachement"
- },
- "onCompleted": function(json){
- this.documentId = json.data.id;
- this.setData();
- this.loadPdfView();
- }.bind(this)
- });
- }else {
- var upload = new o2.widget.Upload(this.form.app.content, {
- "action": o2.Actions.get("x_processplatform_assemble_surface").action,
- "method": "replaceAttachment",
- "parameter": {
- "id" : this.documentId,
- "workid": this.form.businessData.work.id
- },
- "accept" : "application/pdf",
- "data":{
- },
- "onCompleted": function(json){
- this.documentId = json.data.id;
- this.setData();
- this.loadPdfView();
- }.bind(this)
- });
- }
- upload.load();
- }.bind(this));
- },
- getData: function(){
- var data = {
- "documentId" : ""
- };
- if(this.form.businessData.data[this.json.id]){
- data.documentId = this.form.businessData.data[this.json.id].documentId;
- }
- return data;
- },
- setData: function(){
- var data = {
- "documentId" : this.documentId
- };
- this._setBusinessData(data);
- },
- loadPdfView: function(){
- this.iframeNode = new Element("div").inject(this.node);
- this.iframeNode.setStyles({
- "height": "100%"
- });
- var host = o2.Actions.getHost( "x_processplatform_assemble_surface" );
- var fileUrl = o2.filterUrl(host + "/x_processplatform_assemble_surface/jaxrs/attachment/download/" + this.documentId);
- if(this.iframe){
- this.iframe.set("src","../o2_lib/pdfjs/web/viewer.html?file=" + fileUrl);
- }else {
- this.iframe = new Element("iframe").inject(this.iframeNode);
- this.iframe.set("src","../o2_lib/pdfjs/web/viewer.html?file=" + fileUrl);
- this.iframe.set("scrolling","no");
- this.iframe.set("frameborder",0);
- this.iframe.setStyles({
- "height" : "100%",
- "width" : "100%"
- });
- }
- if(this.emptyNode) this.emptyNode.hide();
- this.fireEvent("afterOpen");
- },
- hide: function(){
- this.node.hide();
- },
- show: function(){
- this.node.show();
- },
- isEmpty : function(){
- },
- save: function(){
- },
- validation: function(){return true}
- });
|