render-proecss.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. 'use strict';
  2. const path = require('path');
  3. const electron = require('electron');
  4. const core = require('../core');
  5. const constants = require('../config/constants');
  6. const localfs = require('../lib/localfs');
  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 notifyRenderProcessChangeDevMode = function (devMode) {
  37. core.mainWindow.webContents.send('on-main-change-dev-mode', devMode);
  38. };
  39. let notifyRenderProcessShowErrorMessage = function (message) {
  40. core.mainWindow.webContents.send('on-main-show-error', message);
  41. };
  42. let notifyRenderProcessNavigateToPath = function (routeUrl) {
  43. core.mainWindow.webContents.send('on-main-navigate-to', routeUrl);
  44. };
  45. let notifyRenderProcessNavigateToNewTask = function () {
  46. notifyRenderProcessNavigateToPath(constants.ariaNgPageLocations.NewTask);
  47. };
  48. let notifyRenderProcessNavigateToAriaNgSettings = function () {
  49. notifyRenderProcessNavigateToPath(constants.ariaNgPageLocations.AriaNgSettings);
  50. };
  51. let notifyRenderProcessNewTaskFromFile = function (filePath, async) {
  52. let fileExtension = path.extname(filePath);
  53. if (!constants.supportedFileExtensions[fileExtension]) {
  54. notifyRenderProcessShowErrorMessage('The selected file type is invalid!');
  55. return;
  56. }
  57. let result = null;
  58. try {
  59. result = {
  60. type: constants.supportedFileExtensions[fileExtension],
  61. fileName: path.basename(filePath),
  62. base64Content: localfs.getLocalFSFileBase64Content(filePath),
  63. async: !!async
  64. };
  65. } catch (e) {
  66. result = {
  67. exception: e
  68. }
  69. }
  70. core.mainWindow.webContents.send('on-main-new-task-from-file', result);
  71. };
  72. let notifyRenderProcessNewTaskFromText = function (text, async) {
  73. let result = {
  74. text: text,
  75. async: !!async
  76. };
  77. core.mainWindow.webContents.send('on-main-new-task-from-text', result);
  78. };
  79. let notifyRenderProcessNewNewTaskFromFileAfterViewLoaded = function (filePath) {
  80. if (!filePath) {
  81. return;
  82. }
  83. ipcMain.once('on-render-view-content-loaded', (event, arg) => {
  84. notifyRenderProcessNewTaskFromFile(filePath, true);
  85. });
  86. };
  87. let notifyRenderProcessNewNewTaskFromTextAfterViewLoaded = function (text) {
  88. if (!text) {
  89. return;
  90. }
  91. ipcMain.once('on-render-view-content-loaded', (event, arg) => {
  92. notifyRenderProcessNewTaskFromText(text, true);
  93. });
  94. };
  95. let onRenderProcessElectronServiceInited = function (callback) {
  96. ipcMain.on('on-render-electron-service-inited', callback);
  97. };
  98. let onRenderProcessNewDropFile = function (callback) {
  99. ipcMain.on('on-render-new-drop-file', callback);
  100. };
  101. let onRenderProcessNewDropText = function (callback) {
  102. ipcMain.on('on-render-new-drop-text', callback);
  103. };
  104. module.exports = {
  105. notifyRenderProcessLogDebug: notifyRenderProcessLogDebug,
  106. notifyRenderProcessLogInfo: notifyRenderProcessLogInfo,
  107. notifyRenderProcessLogWarn: notifyRenderProcessLogWarn,
  108. notifyRenderProcessLogError: notifyRenderProcessLogError,
  109. notifyRenderProcessChangeDevMode: notifyRenderProcessChangeDevMode,
  110. notifyRenderProcessShowErrorMessage: notifyRenderProcessShowErrorMessage,
  111. notifyRenderProcessNavigateToNewTask: notifyRenderProcessNavigateToNewTask,
  112. notifyRenderProcessNavigateToAriaNgSettings: notifyRenderProcessNavigateToAriaNgSettings,
  113. notifyRenderProcessNewTaskFromFile: notifyRenderProcessNewTaskFromFile,
  114. notifyRenderProcessNewTaskFromText: notifyRenderProcessNewTaskFromText,
  115. notifyRenderProcessNewNewTaskFromFileAfterViewLoaded: notifyRenderProcessNewNewTaskFromFileAfterViewLoaded,
  116. notifyRenderProcessNewNewTaskFromTextAfterViewLoaded: notifyRenderProcessNewNewTaskFromTextAfterViewLoaded,
  117. onRenderProcessElectronServiceInited: onRenderProcessElectronServiceInited,
  118. onRenderProcessNewDropFile: onRenderProcessNewDropFile,
  119. onRenderProcessNewDropText: onRenderProcessNewDropText
  120. }