123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- 'use strict';
- var ArdublocklyServer = {};
- ArdublocklyServer.ajaxPostForm = function(url, params, callback) {
- var request = ArdublocklyServer.createAjaxRequest();
- try {
- request.open('POST', url, true);
- request.setRequestHeader(
- 'Content-type', 'application/x-www-form-urlencoded');
- } catch (e) {
-
-
- callback(null);
- }
-
-
- request.onreadystatechange = function() {
- if (request.readyState == 4) {
- if (request.status == 200) {
- callback(request.responseText);
- } else if (request.status == 405) {
-
- callback(null);
- }
- }
- };
-
- try {
- request.send(params);
- } catch (e) {
-
- callback(null);
- }
- };
- ArdublocklyServer.ajaxPostPlain = function(url, data, callback) {
- var request = ArdublocklyServer.createAjaxRequest();
- request.open('POST', url, true);
- request.setRequestHeader('Content-type', 'text/plain');
-
-
- request.onreadystatechange = function() {
- if (request.readyState == 4) {
- if (request.status == 200) {
- callback(request.responseText);
- } else if (request.status == 405) {
-
- callback(null);
- }
- }
- };
-
- try {
- request.send(data);
- } catch (e) {
-
-
- callback(null);
- }
- };
- Ardublockly.getJsonData = function(fileLocation, jsonDataCb) {
- var request = ArdublocklyServer.createAjaxRequest();
- request.overrideMimeType("application/json");
- var requestCb = function() {
- if (request.readyState == 4) {
- if (request.status == 200) {
- var jsonObj = null;
- try {
- jsonObj = JSON.parse(request.responseText);
- } catch(e) {
- console.error('Incorrectly formatted JSON data from ' + fileLocation);
- throw e;
- }
- jsonDataCb(jsonObj);
- } else {
- jsonDataCb(null);
- }
- }
- };
- try {
- request.open('GET', fileLocation, true);
- request.onreadystatechange = requestCb;
- request.send(null);
- } catch (e) {
- jsonDataCb(null);
- }
- };
- ArdublocklyServer.createAjaxRequest = function() {
- var request = false;
- try {
-
- request = new XMLHttpRequest();
- }
- catch (e) {
-
- try {
- request = new ActiveXObject('Msxml2.XMLHTTP');
- }
- catch (e) {
- try {
- request = new ActiveXObject('Microsoft.XMLHTTP');
- }
- catch (e) {
- throw 'Your browser does not support AJAX. You will not be able to' +
- 'use all of Ardublockly features.';
- request = null;
- }
- }
- }
- return request;
- };
- ArdublocklyServer.createElementFromJson = function(json_data) {
- var parsed_json = JSON.parse(json_data);
- var element = null;
- if (parsed_json.element == 'text_input') {
-
- element = document.createElement('input');
- element.setAttribute('type', 'text');
- element.setAttribute('value', parsed_json.display_text);
- } else if (parsed_json.element == 'dropdown') {
-
- element = document.createElement('select');
- element.name = parsed_json.response_type;
- for (var i = 0; i < parsed_json.options.length; i++) {
- var option = document.createElement('option');
- option.value = parsed_json.options[i].value;
- option.text = parsed_json.options[i].display_text;
-
- if (parsed_json.options[i].value == parsed_json.selected) {
- option.selected = true;
- }
- element.appendChild(option);
- }
- } else if (parsed_json.element == 'div_ide_output') {
-
- var el_title = document.createElement('h4');
- el_title.innerHTML = Ardublockly.getLocalStr(parsed_json.conclusion);
- if (parsed_json.success == true) {
- el_title.className = 'arduino_dialog_success';
- } else {
- el_title.className = 'arduino_dialog_failure';
- }
- var el_out = document.createElement('span');
- el_out.className = 'arduino_dialog_out';
-
- if (parsed_json.output.length < 50) {
- el_out.innerHTML = Ardublockly.getLocalStr(parsed_json.output) ||
- parsed_json.output.split('\n').join('<br />');
- } else {
- el_out.innerHTML = parsed_json.output.split('\n').join('<br />');
- }
- element = document.createElement('div');
- element.appendChild(el_title);
- element.appendChild(el_out);
-
- if (parsed_json.success == false) {
- var el_err = document.createElement('span');
- el_err.className = 'arduino_dialog_out_error';
-
- if (parsed_json.output.length < 50) {
- el_err.innerHTML = Ardublockly.getLocalStr(parsed_json.error_output) ||
- parsed_json.error_output.split('\n').join('<br />');
- } else {
- el_err.innerHTML = parsed_json.error_output.split('\n').join('<br />');
- }
- element.appendChild(el_err);
- }
- } else {
-
- }
- return element;
- };
|