index.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]-->
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>Grapheditor</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  8. <link rel="stylesheet" type="text/css" href="styles/grapheditor.css">
  9. <script type="text/javascript">
  10. // Parses URL parameters. Supported parameters are:
  11. // - lang=xy: Specifies the language of the user interface.
  12. // - touch=1: Enables a touch-style user interface.
  13. // - storage=local: Enables HTML5 local storage.
  14. // - chrome=0: Chromeless mode.
  15. var urlParams = (function(url)
  16. {
  17. var result = new Object();
  18. var idx = url.lastIndexOf('?');
  19. if (idx > 0)
  20. {
  21. var params = url.substring(idx + 1).split('&');
  22. for (var i = 0; i < params.length; i++)
  23. {
  24. idx = params[i].indexOf('=');
  25. if (idx > 0)
  26. {
  27. result[params[i].substring(0, idx)] = params[i].substring(idx + 1);
  28. }
  29. }
  30. }
  31. return result;
  32. })(window.location.href);
  33. // Default resources are included in grapheditor resources
  34. mxLoadResources = false;
  35. </script>
  36. <script type="text/javascript" src="js/Init.js"></script>
  37. <script type="text/javascript" src="deflate/pako.min.js"></script>
  38. <script type="text/javascript" src="deflate/base64.js"></script>
  39. <script type="text/javascript" src="jscolor/jscolor.js"></script>
  40. <script type="text/javascript" src="sanitizer/sanitizer.min.js"></script>
  41. <script type="text/javascript" src="../../../src/js/mxClient.js"></script>
  42. <script type="text/javascript" src="js/EditorUi.js"></script>
  43. <script type="text/javascript" src="js/Editor.js"></script>
  44. <script type="text/javascript" src="js/Sidebar.js"></script>
  45. <script type="text/javascript" src="js/Graph.js"></script>
  46. <script type="text/javascript" src="js/Format.js"></script>
  47. <script type="text/javascript" src="js/Shapes.js"></script>
  48. <script type="text/javascript" src="js/Actions.js"></script>
  49. <script type="text/javascript" src="js/Menus.js"></script>
  50. <script type="text/javascript" src="js/Toolbar.js"></script>
  51. <script type="text/javascript" src="js/Dialogs.js"></script>
  52. </head>
  53. <body class="geEditor">
  54. <script type="text/javascript">
  55. // Extends EditorUi to update I/O action states based on availability of backend
  56. (function()
  57. {
  58. var editorUiInit = EditorUi.prototype.init;
  59. EditorUi.prototype.init = function()
  60. {
  61. editorUiInit.apply(this, arguments);
  62. this.actions.get('export').setEnabled(false);
  63. // Updates action states which require a backend
  64. if (!Editor.useLocalStorage)
  65. {
  66. mxUtils.post(OPEN_URL, '', mxUtils.bind(this, function(req)
  67. {
  68. var enabled = req.getStatus() != 404;
  69. this.actions.get('open').setEnabled(enabled || Graph.fileSupport);
  70. this.actions.get('import').setEnabled(enabled || Graph.fileSupport);
  71. this.actions.get('save').setEnabled(enabled);
  72. this.actions.get('saveAs').setEnabled(enabled);
  73. this.actions.get('export').setEnabled(enabled);
  74. }));
  75. }
  76. };
  77. // Adds required resources (disables loading of fallback properties, this can only
  78. // be used if we know that all keys are defined in the language specific file)
  79. mxResources.loadDefaultBundle = false;
  80. var bundle = mxResources.getDefaultBundle(RESOURCE_BASE, mxLanguage) ||
  81. mxResources.getSpecialBundle(RESOURCE_BASE, mxLanguage);
  82. // Fixes possible asynchronous requests
  83. mxUtils.getAll([bundle, STYLE_PATH + '/default.xml'], function(xhr)
  84. {
  85. // Adds bundle text to resources
  86. mxResources.parse(xhr[0].getText());
  87. // Configures the default graph theme
  88. var themes = new Object();
  89. themes[Graph.prototype.defaultThemeName] = xhr[1].getDocumentElement();
  90. // Main
  91. new EditorUi(new Editor(urlParams['chrome'] == '0', themes));
  92. }, function()
  93. {
  94. document.body.innerHTML = '<center style="margin-top:10%;">Error loading resource files. Please check browser console.</center>';
  95. });
  96. })();
  97. </script>
  98. </body>
  99. </html>