1
0
Fork 0
mirror of https://github.com/sensebox/blockly-app synced 2025-02-23 07:54:00 +01:00
blockly-app/assets/blockly.html
2019-05-01 14:23:21 +00:00

305 lines
15 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#00878F">
<link rel="icon" href="img/favicon.ico">
<title class="translatable_title">Blockly for senseBox</title>
<!-- Materialize, Prettify, and Ardublockly CSS -->
<link rel="stylesheet" href="blockly/ardublockly/materialize/materialize.css" media="screen,projection">
<link rel="stylesheet" href="blockly/ardublockly/prettify/arduino.css">
<link rel="stylesheet" href="blockly/ardublockly/ardublockly.css" media="screen,projection">
<style>
body {
padding: 0px;
}
.hidden {
display: none!important;
}
.blocks_panel_large, .blocks_panel_small, #content_blocks, .content_xml_large, .content_xml_small {
height: 100vh;
}
</style>
<!-- Ardublockly - These three files contain the compress version-->
<script src="blockly/blockly/blockly_compressed.js"></script>
<script src="blockly/blockly/blocks_compressed.js"></script>
<script src="blockly/blockly/arduino_compressed.js"></script>
<!-- Default language js files, user selection appended to head on load -->
<script src="blockly/blockly/msg/js/en.js"></script>
<script src="blockly/ardublockly/msg/en.js"></script>
</head>
<body>
<!-- Horizontal Navigation bar -->
<nav class="nav-fixed sensebox_green hidden">
<div class="nav-wrapper container">
<a class="show-on-large button-collapse" href="#" data-activates="slide-out" id="button-collapse"><i class="mdi-navigation-menu"></i></a>
<a id="logo-container" class="brand-logo">
<span class="app_title translatable_title">senseBox:</span>
<!-- Sketch name editable text field -->
<span class="sketch_name_wrapper">
<i class="mdi-image-edit sketch_name_icon"></i>
<input id="sketch_name" class="sketch_name" type="text">
</span>
</a>
<!-- Horizontal Navbar links only shown on large resolutions -->
<ul id="nav-mobile" class="right hide-on-med-and-down">
<li><a href="#" id="button_load"><span class="translatable_open">Open Blocks</span><i class="mdi-file-file-upload left"></i></a></li>
<li><a href="#" id="button_save"><span class="translatable_save">Save Blocks</span><i class="mdi-file-file-download left"></i></a></li>
<li><a href="#" id="button_save_ino"><span class="translatable_save_ino">Save Sketch</span><i class="mdi-file-file-download left"></i></a></li>
<li><a href="#" id="button_delete"><span class="translatable_deleteAll">Delete All</span><i class="mdi-action-delete left"></i></a></li>
</ul>
</div>
</nav>
<!-- Sidebar navigation -->
<ul id="slide-out" class="side-nav hidden">
<li class="logo"><img src="blockly/ardublockly/img/sidenav_header.png" alt="Ardublockly block image"></li>
<li class="no-padding">
<ul>
<li id="menu_load"><a href="#"><span class="translatable_open">Open</span><i class="mdi-file-file-upload left"></i></a></li>
<li id="menu_save"><a href="#"><span class="translatable_save">Save</span><i class="mdi-file-file-download left"></i></a></li>
<li id="menu_delete"><a href="#"><span class="translatable_deleteAll">Delete All</span><i class="mdi-action-delete left"></i></a></li>
<li id="menu_settings"><a href="#"><span class="translatable_settings">Settings</span><i class="mdi-action-settings left"></i></a></li>
<li id="menu_bug"><a href="https://sensebox.github.io/books-v2/blockly/" target="_blank"><span class="translatable_documentation">Documentation</span><i class="mdi-action-help left"></i></a></li>
<li id="menu_bug"><a href="http://github.com/sensebox/ardublockly-1/issues" target="_blank"><span class="translatable_reportBug">Report Bug</span><i class="mdi-action-bug-report left"></i></a></li>
</ul>
<li class="no-padding">
<ul class="collapsible collapsible-accordion">
<li>
<div class="collapsible-header"><span class="translatable_examples">Examples</span><i class="mdi-navigation-arrow-drop-down"></i></div>
<div class="collapsible-body">
<ul>
<li id="menu_example_1"><a href="#!" class="translatable_Blink">Blink</a></li>
<li id="menu_example_2"><a href="#!" class="translatable_Display_print">Display print</a></li>
<li id="menu_example_3"><a href="#!" class="translatable_GPS">Display GPS</a></li>
<li id="menu_example_4"><a href="#!" class="translatable_send_osem">Send to oSeM</a></li>
</ul>
</div>
</li>
</ul>
</li>
<li class="no-padding side-menu-end">&nbsp;</li>
</ul>
<!-- Content -->
<div id="blocklyview">
<!-- Toolbox visibility button -->
<a id="button_toggle_toolbox" class="waves-effect waves-light btn-flat button_toggle_toolbox_off"><i id="button_toggle_toolbox_icon" class="mdi-action-visibility-off"></i></a>
<!-- Arduino IDE action buttons -->
<div id="ide_buttons_wrapper" class="hidden">
<div id="buttons_offline">
<a id="button_ide_left" class="waves-effect waves-light waves-circle btn-floating z-depth-1-half arduino_yellow"><i id="button_ide_left_icon" class="mdi-action-open-in-browser"></i></a>
<a id="button_ide_middle" class="waves-effect waves-light waves-circle btn-floating z-depth-1-half arduino_teal"><i id="button_ide_middle_icon" class="mdi-navigation-check"></i></a>
<a id="button_ide_large" class="waves-effect waves-light waves-circle btn-floating z-depth-1-half arduino_orange"><i id="button_ide_large_icon" class="mdi-av-play-arrow"></i></a>
</div>
<div id="buttons_online" class="hidden">
<a id="button_copy_clipboard" class="tooltipped copy-btn waves-effect waves-light waves-circle btn-floating z-depth-1-half arduino_blue" data-clipboard-action="copy" data-clipboard-target="#content_arduino" data-position="left" data-delay="750" data-tooltip="In Zwischenablage kopieren"><i id="button_copy_clipboard_icon" class="mdi-action-assignment"></i></a>
<a id="button_compile_sketch" class="tooltipped copy-btn waves-effect waves-light waves-circle btn-floating z-depth-1-half arduino_orange" data-position="left" data-delay="750" data-tooltip="Sketch kompilieren"><i id="button_compile_sketch_icon" class="mdi-action-assignment-turned-in"></i></a>
</div>
<div id="button_ide_large_spinner" class="preloader-wrapper active ide_loader hidden">
<div class="spinner-layer spinner-orange">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-dark-teal">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-yellow">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
<div class="spinner-layer spinner-light-teal">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
</div>
<!-- Blockly Panel -->
<div style="padding: 0">
<div id="blocks_panel" class="content blocks_panel_large">
<div id="content_blocks" class="content z-depth-1"></div>
</div>
</div>
</div>
<div id="codeview" class="hidden">
<ul class="collapsible z-depth-1" data-collapsible="accordion">
<li>
<div class="collapsible-header active">
<span class="collapsible_logo">{ }</span>
<span class="translatable_arduinoSourceCode">Arduino Source Code</span>
</div>
<div class="collapsible-body">
<pre id="content_arduino" class="content content_height_transition content_arduino_large"></pre>
</div>
</li>
<li>
<div class="collapsible-header" id="xml_collapsible_header">
<span class="collapsible_logo">&#60; &#62;</span>
<span class="translatable_blocksXml">Blocks XML</span>
</div>
<div class="collapsible-body" style="position:relative" id="xml_collapsible_body">
<a class="btn-floating btn-large waves-effect waves-light arduino_teal z-depth-1-half" id="button_load_xml"><i class="mdi-action-extension"></i></a>
<textarea id="content_xml" class="content content_height_transition content_xml_large" wrap="soft"></textarea>
</div>
</li>
</ul>
</div>
<!-- IDE Output content -->
<div class="ide_output_wrapper hidden">
<ul class="collapsible ide_output_collapsible" data-collapsible="expandable">
<li>
<div id="ide_output_collapsible_header" class="collapsible-header ide_output_header_normal">
<i class="mdi-action-swap-vert Medium" style="font-size: 2.2rem;"></i>
<span class="translatable_arduinoOpMainTitle">Arduino IDE output</span>
</div>
<div class="collapsible-body">
<div id="content_ide_output" class="content"></div>
</div>
</li>
</ul>
</div>
<!-- Settings: Displayed as a Materialize Modal -->
<div id="settings_dialog" class="modal modal-fixed-footer hidden">
<div class="modal-content">
<h4><span class="translatable_settings">Settings</span></h4>
<div class="modal_section online">
<label><span class="translatable_compilerLocation">Compiler Location</span>:</label>
<input type="text" id="settings_compiler_location">
</div>
<div class="modal_section online">
<label><span class="translatable_sketchFolder">Sketch Folder</span>:</label>
<input type="text" id="settings_sketch_location">
</div>
<div class="modal_section online">
<label><span class="translatable_arduinoBoard">Arduino Board</span>:</label>
<select name="settings_board" id="board">
<option value="uno" class="translatable_arduinoBoardDefault">Arduino Board unknown</option>
</select>
</div>
<div class="modal_section online">
<label><span class="translatable_comPort">COM Port<span>:</label>
<select name="settings_serial" id="serial_port">
<option value="COMX" class="translatable_comPortDefault">COM Port unknown</option>
</select>
</div>
<div class="modal_section online">
<label><span class="translatable_defaultIdeButton">Default IDE button</span>:</label>
<select name="settings_ide" id="ide_settings">
<option value="verify" class="translatable_defaultIdeButtonDefault">IDE options unknown</option>
</select>
</div>
<div class="modal_section offline hidden">
<label><span>Arduino Board</span>:</label>
<select name="settings_board_online" id="boards-online"></select>
</div>
<div class="modal_section">
<label><span class="translatable_language">Language</span>:</label>
<select name="settings_language" id="language"></select>
</div>
</div>
<div class="modal-footer">
<a href="#" class="waves-effect btn-flat modal-close"><span class="translatable_return">Return</span></a>
</div>
<div class="modal-footer">
<a href="#" class="waves-effect btn-flat modal-close"><span class="translatable_return">Return</span></a>
</div>
</div>
<!-- jQuery and Materialize JS -->
<script src="blockly/ardublockly/js_libs/jquery-2.1.3.min.js"></script>
<script src="blockly/ardublockly/materialize/materialize.js"></script>
<!-- FileSaver JS -->
<script src="blockly/ardublockly/js_libs/FileSaver.min.js"></script>
<!-- JS Diff -->
<script src="blockly/ardublockly/js_libs/diff.js"></script>
<!-- Prettify JS -->
<script src="blockly/ardublockly/prettify/prettify.js"></script>
<!-- Ardublockly app -->
<script src="blockly/ardublockly/ardublocklyserver_ajax.js"></script>
<script src="blockly/ardublockly/ardublockly_lang.js"></script>
<script src="blockly/ardublockly/ardublockly_design.js"></script>
<script src="blockly/ardublockly/ardublockly_toolbox.js"></script>
<script src="blockly/ardublockly/ardublockly_blockly.js"></script>
<script src="blockly/ardublockly/ardublockly.js"></script>
<!-- copy to clipboard stuff -->
<script src="blockly/ardublockly/js_libs/clipboard.min.js"></script>
<script src="blockly/ardublockly/sensebox_extensions.js"></script>
<script>
window.addEventListener('load', function load(event) {
window.removeEventListener('load', load, false);
Ardublockly.init({ blocklyPath: './blockly' });
SenseboxExtension.init();
/**
* message handler for the postMessage protocol with the iframe parent (ionic BlocklyPage).
*/
window.addEventListener('message', function msgHandler (event) {
switch (event.data.type) {
case 'getSketch':
var code = Ardublockly.generateArduino();
event.source.postMessage({ type: 'sketch', data: code }, event.origin);
break;
case 'getXml':
var xml = Ardublockly.generateXml();
event.source.postMessage({ type: 'xml', data: xml }, event.origin);
break;
case 'setXml':
var xml = Ardublockly.replaceBlocksfromXml(event.data.data);
break;
case 'toggleView':
document.getElementById('blocklyview').classList.toggle('hidden');
document.querySelector('.blocklyToolboxDiv').classList.toggle('hidden');
document.getElementById('codeview').classList.toggle('hidden');
break;
default:
event.source.postMessage({
type: 'log',
data: `postMessage type ${event.data.type} not implemented`,
}, event.origin);
}
});
// notify parent that we are ready to receive commands.
// @FIXME: this is not exactly correct, as the default sketch is still loading after this point!
parent.postMessage({ type: 'ready' }, '*')
});
</script>
</body>
</html>