mirror of
https://github.com/sensebox/blockly-app
synced 2025-02-23 16:23:59 +01:00
306 lines
15 KiB
HTML
306 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"> </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">< ></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>
|