render-proecss.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. 'use strict';
  2. const fs = require('fs');
  3. const path = require('path');
  4. const electron = require('electron');
  5. const core = require('../core');
  6. const constants = require('../config/constants');
  7. const ipcMain = electron.ipcMain;
  8. let notifyRenderProcessLogDebug = function (msg, object) {
  9. try {
  10. core.mainWindow.webContents.send('on-main-log-debug', msg, object);
  11. } catch (ex) {
  12. // Do Nothing
  13. }
  14. };
  15. let notifyRenderProcessLogInfo = function (msg, object) {
  16. try {
  17. core.mainWindow.webContents.send('on-main-log-info', msg, object);
  18. } catch (ex) {
  19. // Do Nothing
  20. }
  21. };
  22. let notifyRenderProcessLogWarn = function (msg, object) {
  23. try {
  24. core.mainWindow.webContents.send('on-main-log-warn', msg, object);
  25. } catch (ex) {
  26. // Do Nothing
  27. }
  28. };
  29. let notifyRenderProcessLogError = function (msg, object) {
  30. try {
  31. core.mainWindow.webContents.send('on-main-log-error', msg, object);
  32. } catch (ex) {
  33. // Do Nothing
  34. }
  35. };
  36. let notifyRenderProcessWindowMaximized = function (maximized) {
  37. try {
  38. core.mainWindow.webContents.send('on-main-window-maximized', maximized);
  39. } catch (ex) {
  40. // Do Nothing
  41. }
  42. };
  43. let notifyRenderProcessWindowUnmaximized = function (maximized) {
  44. try {
  45. core.mainWindow.webContents.send('on-main-window-unmaximized', maximized);
  46. } catch (ex) {
  47. // Do Nothing
  48. }
  49. };
  50. let notifyRenderProcessShowErrorMessage = function (message) {
  51. core.mainWindow.webContents.send('on-main-show-error', message);
  52. };
  53. let notifyRenderProcessNavigateToPath = function (routeUrl) {
  54. core.mainWindow.webContents.send('on-main-navigate-to', routeUrl);
  55. };
  56. let notifyRenderProcessNavigateToNewTask = function () {
  57. notifyRenderProcessNavigateToPath(constants.ariaNgPageLocations.NewTask);
  58. };
  59. let notifyRenderProcessNavigateToAriaNgSettings = function () {
  60. notifyRenderProcessNavigateToPath(constants.ariaNgPageLocations.AriaNgSettings);
  61. };
  62. let notifyRenderProcessNewTaskFromFile = function (filePath, async) {
  63. let fileExtension = path.extname(filePath);
  64. if (!constants.supportedFileExtensions[fileExtension]) {
  65. notifyRenderProcessShowErrorMessage('The selected file type is invalid!');
  66. return;
  67. }
  68. let result = null;
  69. try {
  70. let fileContent = fs.readFileSync(filePath);
  71. result = {
  72. type: constants.supportedFileExtensions[fileExtension],
  73. fileName: path.basename(filePath),
  74. base64Content: Buffer.from(fileContent).toString('base64'),
  75. async: !!async
  76. };
  77. } catch (e) {
  78. result = {
  79. exception: e
  80. }
  81. }
  82. core.mainWindow.webContents.send('on-main-new-task-from-file', result);
  83. };
  84. let notifyRenderProcessNewTaskFromText = function (text, async) {
  85. let result = {
  86. text: text,
  87. async: !!async
  88. };
  89. core.mainWindow.webContents.send('on-main-new-task-from-text', result);
  90. };
  91. let notifyRenderProcessNewNewTaskFromFileAfterViewLoaded = function (filePath) {
  92. if (!filePath) {
  93. return;
  94. }
  95. ipcMain.once('on-render-view-content-loaded', (event, arg) => {
  96. notifyRenderProcessNewTaskFromFile(filePath, true);
  97. });
  98. };
  99. let notifyRenderProcessNewNewTaskFromTextAfterViewLoaded = function (text) {
  100. if (!text) {
  101. return;
  102. }
  103. ipcMain.once('on-render-view-content-loaded', (event, arg) => {
  104. notifyRenderProcessNewTaskFromText(text, true);
  105. });
  106. };
  107. let onRenderProcessElectronServiceInited = function (callback) {
  108. ipcMain.on('on-render-electron-service-inited', callback);
  109. };
  110. let onRenderProcessNewDropFile = function (callback) {
  111. ipcMain.on('on-render-new-drop-file', callback);
  112. };
  113. let onRenderProcessNewDropText = function (callback) {
  114. ipcMain.on('on-render-new-drop-text', callback);
  115. };
  116. module.exports = {
  117. notifyRenderProcessLogDebug: notifyRenderProcessLogDebug,
  118. notifyRenderProcessLogInfo: notifyRenderProcessLogInfo,
  119. notifyRenderProcessLogWarn: notifyRenderProcessLogWarn,
  120. notifyRenderProcessLogError: notifyRenderProcessLogError,
  121. notifyRenderProcessWindowMaximized: notifyRenderProcessWindowMaximized,
  122. notifyRenderProcessWindowUnmaximized: notifyRenderProcessWindowUnmaximized,
  123. notifyRenderProcessShowErrorMessage: notifyRenderProcessShowErrorMessage,
  124. notifyRenderProcessNavigateToNewTask: notifyRenderProcessNavigateToNewTask,
  125. notifyRenderProcessNavigateToAriaNgSettings: notifyRenderProcessNavigateToAriaNgSettings,
  126. notifyRenderProcessNewTaskFromFile: notifyRenderProcessNewTaskFromFile,
  127. notifyRenderProcessNewTaskFromText: notifyRenderProcessNewTaskFromText,
  128. notifyRenderProcessNewNewTaskFromFileAfterViewLoaded: notifyRenderProcessNewNewTaskFromFileAfterViewLoaded,
  129. notifyRenderProcessNewNewTaskFromTextAfterViewLoaded: notifyRenderProcessNewNewTaskFromTextAfterViewLoaded,
  130. onRenderProcessElectronServiceInited: onRenderProcessElectronServiceInited,
  131. onRenderProcessNewDropFile: onRenderProcessNewDropFile,
  132. onRenderProcessNewDropText: onRenderProcessNewDropText
  133. }