root 4 years ago
parent
commit
b4d9269f36
3 changed files with 75 additions and 27 deletions
  1. 23 5
      index.js
  2. 48 20
      src/blockly/account.js
  3. 4 2
      src/blockly/cocoblockly.js

+ 23 - 5
index.js

@@ -230,7 +230,7 @@ $(window).one("load", () => {
         toast.dismiss();
         clearTimeout(timeout);
       }
-      toast = Materialize.toast(content, ms,'shareUrl');
+      toast = Materialize.toast(content, ms, 'shareUrl');
       timeout = setTimeout(() => toast = timeout = null, ms);
     };
   })(_lang);
@@ -484,7 +484,11 @@ window.onload = function () {
   });
 
   $("#confirm_btn").click(() => {
-    var code = Ardublockly.generateXml();
+    var _xml = blockpy.components.editor.getBlocksFromXml();
+    _xml.setAttribute("type", $("#mode")[0].selectedIndex == 1 ? "AI" : "IoT")
+    var code = Blockly.Xml.domToPrettyText(_xml);
+
+    //var code = Ardublockly.generateXml();
     var title = $("#cloud_input").val() != '' ? $("#cloud_input").val() : '未命名';
     savelxfile(title, code, showSaveToast);
   });
@@ -505,7 +509,7 @@ function styled() {
     $("#iot_modules").css("width", "170px");
     $("#plugin_mac_or_windows").css("left", "208px");
     $("#connect_method").css("left", "208px");
-    $("#connect_method").css("minWidth","155px");
+    $("#connect_method").css("minWidth", "155px");
     $("#local_help").addClass("helpEnglish");
     $("#local_help_ai_kit").css("left", "242px");
     $("#help_extends").css("left", "242px");
@@ -515,7 +519,7 @@ function styled() {
     $("input").css("font-family", "Arial");
     $("#workspace_screenshot").css("right", "470px");
     $("#downloadbutton-li").css("right", "62px");
-    $("#uploadpy").css("width","120px");
+    $("#uploadpy").css("width", "120px");
   }
 }
 
@@ -1282,7 +1286,7 @@ function getQueryParams() {
     query_str = url.substr(url.indexOf("?") + 1, url.length - 1);
     r_params = query_str.split("&");
     params = {};
-    for (i in r_params) {
+    for (var i = 0; i < r_params.length; i++) {
       param = r_params[i].split("=");
       params[param[0]] = param[1];
     }
@@ -1489,6 +1493,20 @@ function getlxfiles(page, cb) {
   }
 }
 
+
+function getlxfilebyid(id) {
+  var _token = window.localStorage.Token;
+  if (_token) {
+    $.ajax(`/api/web/v1/blockpy/project/` + id, {
+      type: "GET",
+      headers: { 'Authorization': "Bearer " + _token },
+      success: (data) => {
+        cb(data)
+      }
+    });
+  }
+}
+
 function getFileList(data) {
   var fileList = [];
   data.data.records.filter(val => {

+ 48 - 20
src/blockly/account.js

@@ -319,27 +319,50 @@ function loginModalStatus() {
  * @param {String} filename : the name of file
  */
 function loadCloudXmlFile(file, filename) {
-  var xmlfile = file;
-  if (file.indexOf("$") == 4) {
-    var file_mode = file.substr(0, 4);
-    if (file_mode == "main" && CCB.mode == false) {
-      $("#network-btn").click();
-    } else if (file_mode == "wifi" && CCB.mode == true) {
-      $("#network-btn").click();
+  // var xmlfile = file;
+  // if (file.indexOf("$") == 4) {
+  //   var file_mode = file.substr(0, 4);
+  //   if (file_mode == "main" && CCB.mode == false) {
+  //     $("#network-btn").click();
+  //   } else if (file_mode == "wifi" && CCB.mode == true) {
+  //     $("#network-btn").click();
+  //   }
+  //   var xmlfile = file.substr(5);
+  // }
+  // var success1 = Ardublockly.replaceBlocksfromXml(xmlfile);
+  // if (success1) {
+  //   Ardublockly.renderContent();
+  //   Ardublockly.sketchNameSet(filename);
+  // } else {
+  //   Ardublockly.alertMessage(
+  //     Ardublockly.getLocalStr("ErrorBlockTitle"),
+  //     Ardublockly.getLocalStr("ErrorBlockBody"),
+  //     false
+  //   );
+  // }
+  var result_xml = file;
+  try {
+    var xmlDom = Blockly.Xml.textToDom(result_xml);
+    if (xmlDom.getAttribute("type") == "AI") {
+      $("#mode")[0].selectedIndex = 1;
+      $("#mode")[0].onchange();
+      $('.selectMode_input')[0].value = Ardublockly.LOCALISED_TEXT.ai_module;
+      appearExample(0);
+    }
+    else {
+      $("#mode")[0].selectedIndex = 0;
+      $("#mode")[0].onchange();
+      $('.selectMode_input')[0].value = Ardublockly.LOCALISED_TEXT.iot_module;
+      appearExample(1);
     }
-    var xmlfile = file.substr(5);
+  } catch (e) {
+    return false;
   }
-  var success1 = Ardublockly.replaceBlocksfromXml(xmlfile);
-  if (success1) {
-    Ardublockly.renderContent();
-    Ardublockly.sketchNameSet(filename);
-  } else {
-    Ardublockly.alertMessage(
-      Ardublockly.getLocalStr("ErrorBlockTitle"),
-      Ardublockly.getLocalStr("ErrorBlockBody"),
-      false
-    );
+  var success = Ardublockly.replaceBlocksfromXml(result_xml);
+  if (!success) {
+    Ardublockly.alertMessage(Ardublockly.getLocalStr('ErrorBlockTitle'), Ardublockly.getLocalStr('ErrorBlockBody'), false);
   }
+  $('#sketch_name').val(filename);
 }
 
 /**
@@ -589,7 +612,7 @@ function confirmRename(i) {
     upadtelxfilenamebyid(CCB.cloudFileList[i].filenameId, filename, function (data) {
       if (data.success) {
         $("#cloud_modal_preload").css("display", "none");
-        Materialize.toast(CCB.str_group.success_renameFile, 4000,'shareUrl');
+        Materialize.toast(CCB.str_group.success_renameFile, 4000, 'shareUrl');
         CCB.cloudFileList[i].filename = filename;
         $("#cloud_name" + i).html(filename + ".xml");
         document.getElementById("cloud_name" + i).title = filename + ".xml";
@@ -658,7 +681,12 @@ function confirmCreateNew() {
   var filename = $("#cloud_sketch_name").val();
   filename = filename.replace(/(\s*$)/g, "");
   if (checkFileName(filename) && filename !== '') {
-    savelxfile(filename, Ardublockly.generateXml(), function (data) {
+
+    var _xml = blockpy.components.editor.getBlocksFromXml();
+    _xml.setAttribute("type", $("#mode")[0].selectedIndex == 1 ? "AI" : "IoT")
+    var code = Blockly.Xml.domToPrettyText(_xml);
+
+    savelxfile(filename, code, function (data) {
       if (data.success) {
         $("#cloud_modal_preload").css("display", "none");
         Materialize.toast(CCB.str_group.success_uploadFile, 4000, 'shareUrl');

+ 4 - 2
src/blockly/cocoblockly.js

@@ -1710,8 +1710,10 @@ async function cocoblockly() {
     clipboard_copy("#err-copy", "#apikey-copy", "#code-copy");
     add_tooltips(tooltips);
     ws_connect();
-
-    getlxfiles(0, getFileList);
+    if (getQueryParams()["id"]) {
+        openCloudFile(getQueryParams()["id"])
+    }
+    //  getlxfiles(0, getFileList);
 };