Built files from Bizgaze WebServer
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

docconnector.js 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Apps;
  13. (function (Apps) {
  14. let Collaboration;
  15. (function (Collaboration) {
  16. let Components;
  17. (function (Components) {
  18. class DocConnector {
  19. constructor() {
  20. this.methods = {
  21. connectedUsers: function (FileUsers, DocumentGroup) {
  22. console.log('connectedUsers is Connected !');
  23. if (DocumentGroup == 'Excel') {
  24. setTimeout(() => { Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().activeUsers(FileUsers); }, 1000);
  25. }
  26. else if (DocumentGroup == 'Word') {
  27. Unibase.Apps.Collaboration.Components.DocEditor.Base.Instance().activeUsers(FileUsers);
  28. }
  29. },
  30. FileDisconnect: function (user, DocumentGroup) {
  31. if (DocumentGroup == 'Excel') {
  32. Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().activeUsers(user);
  33. }
  34. else if (DocumentGroup == 'Word') {
  35. Unibase.Apps.Collaboration.Components.DocEditor.Base.Instance().activeUsers(user);
  36. }
  37. }
  38. };
  39. DocConnector._isRegistered = false;
  40. }
  41. init(fileid, documentgroup) {
  42. this.connection = Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url());
  43. var fileId = parseInt(fileid);
  44. this.start(fileId, documentgroup);
  45. }
  46. closeDoc() {
  47. Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).getConnection().stop();
  48. }
  49. ChangeDoc(username, args) {
  50. Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).getConnection().invoke("ChangeDoc", username, JSON.stringify(args));
  51. }
  52. getClientMethods() {
  53. return [
  54. { MethodName: "connectedUsers", Method: this.methods.connectedUsers },
  55. { MethodName: "filedisconnect", Method: this.methods.FileDisconnect },
  56. ];
  57. }
  58. registerClientMethods() {
  59. let _methods = this.getClientMethods();
  60. if (_methods)
  61. for (var i = 0; i < _methods.length; i++) {
  62. this.connection.register(_methods[i].MethodName, _methods[i].Method);
  63. }
  64. }
  65. connectedUsers(FileUsers) {
  66. let ssObj = Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile;
  67. let stCls = Unibase.Apps.Collaboration.Components.Sheets;
  68. ssObj.signalrData = FileUsers;
  69. var args = JSON.parse(FileUsers);
  70. }
  71. start(fileId, documentgroup) {
  72. return __awaiter(this, void 0, void 0, function* () {
  73. this.registerClientMethods();
  74. try {
  75. if (!DocConnector._isRegistered) {
  76. DocConnector._isRegistered = true;
  77. this.connection.register("changedocument", function (docData) {
  78. let ssObj = Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile;
  79. let stCls = Unibase.Apps.Collaboration.Components.Sheets;
  80. ssObj.signalrData = docData;
  81. var args = JSON.parse(docData);
  82. try {
  83. if (args.origin === 'biz') {
  84. Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.biz.sheetIndex = args.sheetIndex;
  85. switch (args.action) {
  86. case 'trim':
  87. stCls.Ribbon.Instance().processTrim(args.range);
  88. break;
  89. case 'removeDuplicates':
  90. stCls.Dialogue.Instance().removeDuplicate(args.range, args.header, args.colSelected);
  91. break;
  92. case 'autofill':
  93. stCls.Autofill.Instance().applyAutofill(args.options, args.direction);
  94. break;
  95. case 'formatpaint':
  96. stCls.FormatPainter.Instance().applyFormatPaint(args.srcRange, args.destRange, args.srcSheetIndex);
  97. break;
  98. case 'splittext':
  99. stCls.FormatPainter.Instance().applySplitText(args.range, args.stValues);
  100. break;
  101. case 'shiftrows':
  102. stCls.FormatPainter.Instance().applyShiftRows(args.dropIdx, args.rngIndexes, args.direction, false);
  103. break;
  104. case 'shiftcols':
  105. stCls.FormatPainter.Instance().applyShiftCols(args.dropIdx, args.rngIndexes, args.direction, false);
  106. break;
  107. case 'deleteshiftup':
  108. stCls.FormatPainter.Instance().applyDeleteShiftUp(args.range);
  109. break;
  110. case 'deleteshiftleft':
  111. stCls.FormatPainter.Instance().applyDeleteShiftLeft(args.range);
  112. break;
  113. case 'insertshiftdown':
  114. stCls.FormatPainter.Instance().applyInsertShiftDown(args.range);
  115. break;
  116. case 'insertshiftright':
  117. stCls.FormatPainter.Instance().applyInsertShiftRight(args.range);
  118. break;
  119. case 'shiftcells':
  120. stCls.FormatPainter.Instance().applyShiftCells(args.rowIdx, args.colIdx, args.ranges);
  121. break;
  122. case 'spellcheck':
  123. stCls.SpellChecker.Instance().applySpellValue(args.rowIdx, args.colIdx, args.value);
  124. break;
  125. case 'selection':
  126. stCls.FormatPainter.Instance().applyUserSelection(args.range, args.userName);
  127. break;
  128. case 'undoredo':
  129. stCls.Base.Instance().performBizUndoRedo(args);
  130. break;
  131. case 'insertimage':
  132. stCls.Base.Instance().actionInsertImage(args);
  133. break;
  134. case 'colorchange':
  135. stCls.Base.Instance().sheetColorRender();
  136. break;
  137. case 'resize':
  138. stCls.Base.Instance().adjustRowsAndColumnWidth(args);
  139. break;
  140. case 'importReplace':
  141. location.reload();
  142. break;
  143. }
  144. Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().editDetails();
  145. Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.biz.sheetIndex = -1;
  146. }
  147. else {
  148. Unibase.Apps.Collaboration.Components.Documents.Instance()._openedfile.updateAction(JSON.parse(docData));
  149. Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().editDetails();
  150. }
  151. }
  152. catch (e) {
  153. }
  154. });
  155. }
  156. this.connection.connect(function () {
  157. let identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  158. let UnibaseId = identity.unibaseId;
  159. let FileId = fileId;
  160. let FirstName = identity.name;
  161. let SessionId = identity.sessionId;
  162. let TenantId = identity.tenantId;
  163. console.log("connection started");
  164. Unibase.Apps.Collaboration.Hubs.UniDocHub.Instance(_appsettings.dochub_url()).getConnection().invoke("Connect", FileId, UnibaseId, FirstName, documentgroup, SessionId, TenantId).catch(function (err) {
  165. return console.error(err.toString());
  166. });
  167. });
  168. }
  169. catch (err) {
  170. console.log(err);
  171. setTimeout(this.start, 5000);
  172. }
  173. });
  174. }
  175. ;
  176. static Instance() {
  177. if (this.instance === undefined) {
  178. this.instance = new DocConnector();
  179. }
  180. return this.instance;
  181. }
  182. }
  183. Components.DocConnector = DocConnector;
  184. })(Components = Collaboration.Components || (Collaboration.Components = {}));
  185. })(Collaboration = Apps.Collaboration || (Apps.Collaboration = {}));
  186. })(Apps = Unibase.Apps || (Unibase.Apps = {}));
  187. })(Unibase || (Unibase = {}));