menu.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const path = require('path');
  2. const window = require('../../../helper/window');
  3. const file = require('../../../helper/file');
  4. const dialog = require('./dialog');
  5. const menu = {};
  6. menu.new = function() {
  7. window.new(path.join(__dirname, '../../renderer/page/edit/edit.html'), 800, 575);
  8. };
  9. menu.import = function() {
  10. // Select file on user computer
  11. const filter = [
  12. {name: 'JSON', extensions: ['json']},
  13. {name: 'Markdown', extensions: ['md']}
  14. ];
  15. dialog.fileSelector(true, false, filter, (canceled, filepath) => {
  16. // If the user select one file
  17. if (canceled) {
  18. return;
  19. }
  20. // Read informations
  21. const ext = file.getExtension(filepath).toLowerCase();
  22. const content = file.read(filepath);
  23. let data = {};
  24. if (ext === 'md') {
  25. // Create data from markdown file
  26. data.id = '_' + Math.random().toString(36).substr(2, 9);
  27. data.title = path.basename(filepath);
  28. data.content = content;
  29. } else {
  30. data = JSON.parse(content);
  31. // Check if JSON structure is good
  32. if (data.id === undefined || data.title === undefined || data.content === undefined) {
  33. // Error data is invalid
  34. dialog.error('Données invalides', 'Les données dans le fichier JSON sont invalides. Les données ne peuvent pas être importées');
  35. }
  36. }
  37. // Send informations to main window
  38. mainWindow.webContents.send('import-card', data);
  39. });
  40. }
  41. menu.devTool = function (item, focusedWindow) {
  42. if (focusedWindow) {
  43. focusedWindow.toggleDevTools()
  44. }
  45. }
  46. module.exports = menu;