diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..bc0b5e6 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "tabWidth": 2, + "arrowParens": "avoid", + "bracketSameLine": true, + "bracketSpacing": true, + "trailingComma": "all", + "printWidth": 120 +} diff --git a/src/js/control-view.js b/src/js/control-view.js index 314c732..2aacaea 100644 --- a/src/js/control-view.js +++ b/src/js/control-view.js @@ -205,7 +205,7 @@ module.exports = { gcodeFiles: function () { const filesWithNoMacros=this.state.files.filter(item => !this.config.macrosList.some(compareItem => compareItem.gcode_file_name == item)); console.log('filesWithNoMacros: ',filesWithNoMacros); - console.log("this.config.GCodeList",this.state.GCodeList) + console.log("this.state.GCodeList",this.state.GCodeList) const unionSet = new Set([...filesWithNoMacros, ...this.state.GCodeList]); const files = [...unionSet]; console.log("files: ",files); @@ -409,6 +409,8 @@ module.exports = { if (this.state.selected) { api.delete(`file/${this.state.selected}`); } + }else{ + this.state.GCodeList.filter(item=>item!=this.state.selected); } this.deleteGCode = false; @@ -422,6 +424,7 @@ module.exports = { delete_all_except_macros: function() { const macrosList=this.config.macrosList.map(item=>item.gcode_file_name).toString(); api.delete(`file/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE${macrosList}`); + this.state.GCodeList=[]; this.deleteGCode = false; }, diff --git a/src/js/macros.js b/src/js/macros.js index 2256269..6b44576 100644 --- a/src/js/macros.js +++ b/src/js/macros.js @@ -12,16 +12,8 @@ module.exports = { tab: "1", confirmReset: false, confirmSave: false, - selectedValues: [ - "default", - "default", - "default", - "default", - "default", - "default", - "default", - "default", - ], + deleteGCode: false, + selectedValues: ["default", "default", "default", "default", "default", "default", "default", "default"], newGcode: ["", "", "", "", "", "", "", ""], }; }, @@ -40,7 +32,10 @@ module.exports = { return this.mach_state == "READY"; }, macrosList: function () { - return this.config.macrosList.map((el) => el.gcode_file_name); + return this.config.macrosList.map(el => el.gcode_file_name); + }, + getMacrosData: function (key) { + return this.config.macros[this.tab - 1][key]; }, }, methods: { @@ -59,14 +54,14 @@ module.exports = { const text = (await response.text()).split(" ").join("\n"); console.log(text); // this.newGcode[this.tab - 1]=text; - this.$set('newGcode[this.tab-1]',text); + this.$set("newGcode[this.tab-1]", text); } else { // this.newGcode[this.tab - 1]=""; - this.$set('newGcode[this.tab-1]',""); + this.$set("newGcode[this.tab-1]", ""); } - console.log("newGcode: ",this.newGcode[this.tab - 1]); + console.log("newGcode: ", this.newGcode[this.tab - 1]); }, - uploadMacrosGcode:async function (e) { + uploadMacrosGcode: async function (e) { const files = e.target.files || e.dataTransfer.files; if (!files.length) { return; @@ -90,8 +85,8 @@ module.exports = { gcode_file_name: file.name, gcode_file_time: this.state.selected_time, }; - if(!this.config.macrosList.some(item=> item['gcode_file_name'] == file.name)){ - console.log('new gcode file'); + if (!this.config.macrosList.some(item => item["gcode_file_name"] == file.name)) { + console.log("new gcode file"); this.config.macrosList.push(gcodeData); try { await api.put("config/save", this.config); @@ -100,11 +95,11 @@ module.exports = { console.error("Restore Failed: ", error); alert("Restore failed"); } - }else{ - console.log('Already exists'); + } else { + console.log("Already exists"); } - this.$set('selectedValues[this.tab - 1]',file.name); + this.$set("selectedValues[this.tab - 1]", file.name); this.loadMacrosGcode(); SvelteComponents.showDialog("Upload", { @@ -154,27 +149,23 @@ module.exports = { } }, saveMacros: async function () { - var macrosName = document.getElementById( - `macros-name-${this.tab - 1}` - ).value; - var macrosColor = document.getElementById( - `macros-color-${this.tab - 1}` - ).value; + var macrosName = document.getElementById(`macros-name-${this.tab - 1}`).value; + var macrosColor = document.getElementById(`macros-color-${this.tab - 1}`).value; - console.log(" this.state.selected && time: ",this.state.selected, this.state.selected_time); - console.log("selectedValues: ",this.selectedValues[this.tab - 1]); + console.log(" this.state.selected && time: ", this.state.selected, this.state.selected_time); + console.log("selectedValues: ", this.selectedValues[this.tab - 1]); - var file_name=this.selectedValues[this.tab - 1] == "default"?macrosName+'.ngc':this.selectedValues[this.tab - 1]; + var file_name = + this.selectedValues[this.tab - 1] == "default" ? macrosName + ".ngc" : this.selectedValues[this.tab - 1]; var file = this.newGcode[this.tab - 1]; this.uploadGCode(file_name, file); this.config.macros[this.tab - 1].name = macrosName; this.config.macros[this.tab - 1].color = macrosColor; - this.config.macros[this.tab - 1].gcode_file_name = file_name ; - this.config.macros[this.tab - 1].gcode_file_time = - this.state.selected_time; - console.log("config.macros[this.tab - 1].gcode_file_name",this.config.macros[this.tab - 1].gcode_file_name); + this.config.macros[this.tab - 1].gcode_file_name = file_name; + this.config.macros[this.tab - 1].gcode_file_time = this.state.selected_time; + console.log("config.macros[this.tab - 1].gcode_file_name", this.config.macros[this.tab - 1].gcode_file_name); this.confirmSave = false; try { await api.put("config/save", this.config); @@ -185,6 +176,65 @@ module.exports = { alert("Restore failed"); } }, + delete_current: function () { + console.log("delete a gcode"); + // if(this.config.macrosList.find(item=>item.gcode_file_name==this.state.selected)==undefined){ + // if (this.state.selected) { + // api.delete(`file/${this.state.selected}`); + // } + // } + + this.deleteGCode = false; + }, + delete_all_macros: async function () { + const defaultMacrosList = [ + { + gcode_file_name: "FireLaser.ngc", + gcode_file_time: 1705008250.2333415, + }, + { + gcode_file_name: "GoHomeXYZ.ngc", + gcode_file_time: 1705008321.710827, + }, + { + gcode_file_name: "ParkRearRightWW.ngc", + gcode_file_time: 1705008360.977644, + }, + { + gcode_file_name: "SpindleWarmUp1Minute.ngc", + gcode_file_time: 1705008372.967075, + }, + { + gcode_file_name: "TurnOnSpindle.ngc", + gcode_file_time: 1705008405.5059154, + }, + { + gcode_file_name: "TurnOffSpindleAndLaser.ngc", + gcode_file_time: 1705008384.6566093, + }, + { + gcode_file_name: "VacOn.ngc", + gcode_file_time: 1705008413.7756715, + }, + { + gcode_file_name: "TurnOffVac.ngc", + gcode_file_time: 1705008395.476232, + }, + ]; + const isPresent = obj => defaultMacrosList.find(item => item.gcode_file_name == obj.gcode_file_name); + const itemsToDelete = this.config.macrosList.filter(el => !isPresent(el)); + const macrosList = itemsToDelete.map(item => item.gcode_file_name).toString(); + api.delete(`file/DINCAIQABiDARixAxiABDIHCAMQABiABDIHCAQQABiABDIH${macrosList}`); + this.config.macrosList = defaultMacrosList; + this.deleteGCode = false; + try { + await api.put("config/save", this.config); + this.$dispatch("update"); + } catch (error) { + console.error("Restore Failed: ", error); + alert("Restore failed"); + } + }, cancelMacros: function () { document.getElementById(`macros-name-${this.tab - 1}`).value = ""; document.getElementById(`macros-color-${this.tab - 1}`).value = "#ffffff"; diff --git a/src/pug/templates/control-view.pug b/src/pug/templates/control-view.pug index f4f8c21..29a9118 100644 --- a/src/pug/templates/control-view.pug +++ b/src/pug/templates/control-view.pug @@ -287,15 +287,12 @@ script#control-view-template(type="text/x-template") p(slot="body") div(slot="footer") button.pure-button(@click="deleteGCode = false") Cancel - button.pure-button.button-error(@click="delete_all") + button.pure-button.button-error(@click="delete_all_except_macros") .fa.fa-trash |  All button.pure-button.button-success(@click="delete_current") .fa.fa-trash |  Selected - button.pure-button.button-success(@click="delete_all_except_macros") - .fa.fa-trash - |  Not Macros select(title="Select previously uploaded GCode programs.", v-model="state.selected", @change="loadGCode", :disabled="!is_ready", diff --git a/src/pug/templates/macros.pug b/src/pug/templates/macros.pug index 873c880..404b38c 100644 --- a/src/pug/templates/macros.pug +++ b/src/pug/templates/macros.pug @@ -18,11 +18,25 @@ script#macros-template(type="text/x-template") div(slot="footer") button.pure-button(@click="confirmSave=false") Cancel button.pure-button.pure-button-primary(@click="saveMacros") Confirm + message(:show.sync="deleteGCode") + h3(slot="header") Delete GCode? + p(slot="body") + div(slot="footer") + button.pure-button(@click="deleteGCode = false") Cancel + button.pure-button.button-error(@click="delete_all_macros") + .fa.fa-trash + |  All Macross + button.pure-button.button-success(@click="delete_current") + .fa.fa-trash + |  Selected h1 Macros Configuration button.pure-button(title="Reset Macros", @click="confirmReset=true", style="height:50px;width:170px;font-weight:normal;color:#fff;background-color:#5a9ad7;display:flex;align-items:center;justify-content:space-around") Reset Macros .fa.fa-rotate-right + button.pure-button(title="Delete Macros GCodes",@click="deleteMacros = true", + :disabled="!state.selected",style="height:50px;width:170px;font-weight:normal;color:#fff;background-color:#5a9ad7;display:flex;align-items:center;justify-content:space-around:margin-left: 0.1rem") Delete GCode + .fa.fa-trash .warning-box p u Note: @@ -56,8 +70,8 @@ script#macros-template(type="text/x-template") .macros-form p.title Name .input-container - input.input-color(type="color",id="macros-color-0",value="#ffffff") - input.input-name(type="text",minlength='1',maxlength='15',id="macros-name-0") + input.input-color(type="color",id="macros-color-0",value="getMacrosData('color')") + input.input-name(type="text",minlength='1',maxlength='15',id="macros-name-0" value="getMacrosData('name')") p.title G-Code .select-upload-gcode select#gcodeSelect-0(title="Select previously uploaded GCode programs.",selected diff --git a/src/py/bbctrl/FileHandler.py b/src/py/bbctrl/FileHandler.py index c444e7e..578398e 100644 --- a/src/py/bbctrl/FileHandler.py +++ b/src/py/bbctrl/FileHandler.py @@ -40,18 +40,32 @@ class FileHandler(bbctrl.APIHandler): allFiles = self.get_ctrl().state.return_files() if filename.startswith('/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE'): - macrosList=filename.replace('/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE','').split(',') - for i in macrosList: + exceptionList=filename.replace('/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE','').split(',') + for i in exceptionList: self.get_log('FileHandler').info('macrosListItem ' + i) - for filename in [item for item in allFiles if item not in macrosList]: + for filename in [item for item in allFiles if item not in exceptionList]: filename = os.path.basename(filename) - self.get_log('FileHandler').info('filenamed ' + filename) - self.get_log('FileHandler').info(' self.get_upload(filename)' + self.get_upload(filename)) + # self.get_log('FileHandler').info('filenamed ' + filename) + # self.get_log('FileHandler').info(' self.get_upload(filename)' + self.get_upload(filename)) safe_remove(self.get_upload(filename)) self.get_ctrl().preplanner.delete_plans(filename) self.get_ctrl().state.remove_file(filename) + elif filename.startswith('/DINCAIQABiDARixAxiABDIHCAMQABiABDIHCAQQABiABDIH'): + deletionList=filename.replace('/DINCAIQABiDARixAxiABDIHCAMQABiABDIHCAQQABiABDIH','').split(',') + for i in deletionList: + self.get_log('FileHandler').info('macrosListItem ' + i) + + for filename in [item for item in allFiles if item in deletionList]: + filename = os.path.basename(filename) + self.get_log('FileHandler').info('filename deleted as Macros ' + filename) + self.get_log('FileHandler').info(' self.get_upload(filename)' + self.get_upload(filename)) + safe_remove(self.get_upload(filename)) + self.get_ctrl().preplanner.delete_plans(filename) + self.get_ctrl().state.remove_file(filename) + + elif not filename: # Delete everything for path in glob.glob(self.get_upload('*')): @@ -63,8 +77,8 @@ class FileHandler(bbctrl.APIHandler): else: # Delete a single file filename = os.path.basename(filename) - self.get_log('FileHandler').info('filenamed ' + filename) - self.get_log('FileHandler').info(' self.get_upload(filename)' + self.get_upload(filename)) + # self.get_log('FileHandler').info('filenamed ' + filename) + # self.get_log('FileHandler').info(' self.get_upload(filename)' + self.get_upload(filename)) safe_remove(self.get_upload(filename)) self.get_ctrl().preplanner.delete_plans(filename) self.get_ctrl().state.remove_file(filename)