mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2025-07-13 14:14:27 +02:00
update code
This commit is contained in:
@ -1 +1,243 @@
|
||||
(function(){var e;(e=class extends this.OS.GUI.BaseApplication{constructor(e){super("MarkOn",e)}main(){var e;return e=this.find("markarea"),this.container=this.find("mycontainer"),this.previewOn=!1,this.args&&this.args.length>0?this.currfile=this.args[0].path.asFileHandle():this.currfile="Untitled".asFileHandle(),this.editormux=!1,this.editor=new SimpleMDE({element:e,autoDownloadFontAwesome:!1,autofocus:!0,tabSize:4,indentWithTabs:!0,toolbar:["bold","italic","heading","|","quote","code","unordered-list","ordered-list","|","link","image","table","horizontal-rule","|",{name:"preview",className:"fa fa-eye no-disable",action:e=>(this.previewOn=!this.previewOn,SimpleMDE.togglePreview(e))}]}),this.editor.codemirror.on("change",()=>{if(!this.editormux)return!1===this.currfile.dirty?(this.currfile.dirty=!0,this.scheme.set("apptitle",this.currfile.basename+"*")):void 0}),this.on("hboxchange",e=>this.resizeContent()),this.bindKey("ALT-N",()=>this.actionFile(this.name+"-New")),this.bindKey("ALT-O",()=>this.actionFile(this.name+"-Open")),this.bindKey("CTRL-S",()=>this.actionFile(this.name+"-Save")),this.bindKey("ALT-W",()=>this.actionFile(this.name+"-Saveas")),this.resizeContent(),this.open(this.currfile)}resizeContent(){var e,t,i,s,a;return t=$(this.container).children(),s=$(this.scheme).find(".afx-window-top")[0],a=t[1],i=t[4],e=$(this.scheme).height()-$(s).height()-$(a).height()-$(i).height()-40,$(t[2]).css("height",e+"px")}open(e){if("Untitled"!==e.path)return e.dirty=!1,e.read().then(t=>(this.currfile=e,this.editormux=!0,this.editor.value(t),this.scheme.set("apptitle",""+this.currfile.basename),this.editormux=!1)).catch(t=>this.error(__("Unable to open: {0}",e.path),t))}save(e){return e.write("text/plain").then(t=>t.error?this.error(__("Error saving file {0}: {1}",e.basename,t.error)):(e.dirty=!1,e.text=e.basename,this.scheme.set("apptitle",""+this.currfile.basename))).catch(t=>this.error(__("Unable to save file: {0}",e.path),t))}menu(){return[{text:"__(File)",child:[{text:"__(New)",dataid:this.name+"-New",shortcut:"A-N"},{text:"__(Open)",dataid:this.name+"-Open",shortcut:"A-O"},{text:"__(Save)",dataid:this.name+"-Save",shortcut:"C-S"},{text:"__(Save as)",dataid:this.name+"-Saveas",shortcut:"A-W"}],onchildselect:e=>this.actionFile(e.data.item.get("data").dataid)}]}actionFile(e){var t;switch(t=()=>this.openDialog("FileDialog",{title:__("Save as"),file:this.currfile}).then(e=>{var t;return t=e.file.path.asFileHandle(),"file"===e.file.type&&(t=t.parent()),this.currfile.setPath(`${t.path}/${e.name}`),this.save(this.currfile)}),e){case this.name+"-Open":return this.openDialog("FileDialog",{title:__("Open file")}).then(e=>this.open(e.file.path.asFileHandle()));case this.name+"-Save":return this.currfile.cache=this.editor.value(),this.currfile.basename?this.save(this.currfile):t();case this.name+"-Saveas":return this.currfile.cache=this.editor.value(),t();case this.name+"-New":return this.currfile="Untitled".asFileHandle(),this.currfile.cache="",this.editor.value("")}}cleanup(e){if(this.currfile.dirty)return e.preventDefault(),this.openDialog("YesNoDialog",{title:__("Quit"),text:__("Quit without saving ?")}).then(e=>{if(e)return this.currfile.dirty=!1,this.quit()})}}).dependencies=["os://scripts/mde/simplemde.min.js","os://scripts/mde/simplemde.min.css"],this.OS.register("MarkOn",e)}).call(this);
|
||||
(function() {
|
||||
// Copyright 2017-2018 Xuan Sang LE <xsang.le AT gmail DOT com>
|
||||
|
||||
// AnTOS Web desktop is is licensed under the GNU General Public
|
||||
// License v3.0, see the LICENCE file for more information
|
||||
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of
|
||||
// the License, or (at your option) any later version.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
//along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
var MarkOn;
|
||||
|
||||
MarkOn = class MarkOn extends this.OS.application.BaseApplication {
|
||||
constructor(args) {
|
||||
super("MarkOn", args);
|
||||
}
|
||||
|
||||
main() {
|
||||
var markarea;
|
||||
markarea = this.find("markarea");
|
||||
this.container = this.find("mycontainer");
|
||||
this.previewOn = false;
|
||||
if (this.args && this.args.length > 0) {
|
||||
this.currfile = this.args[0].path.asFileHandle();
|
||||
} else {
|
||||
this.currfile = "Untitled".asFileHandle();
|
||||
}
|
||||
this.editormux = false;
|
||||
this.editor = new SimpleMDE({
|
||||
element: markarea,
|
||||
autoDownloadFontAwesome: false,
|
||||
autofocus: true,
|
||||
tabSize: 4,
|
||||
indentWithTabs: true,
|
||||
toolbar: [
|
||||
"bold",
|
||||
"italic",
|
||||
"heading",
|
||||
"|",
|
||||
"quote",
|
||||
"code",
|
||||
"unordered-list",
|
||||
"ordered-list",
|
||||
"|",
|
||||
"link",
|
||||
"image",
|
||||
"table",
|
||||
"horizontal-rule",
|
||||
"|",
|
||||
{
|
||||
name: "preview",
|
||||
className: "fa fa-eye no-disable",
|
||||
action: (e) => {
|
||||
this.previewOn = !this.previewOn;
|
||||
return SimpleMDE.togglePreview(e);
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
//if(self.previewOn) toggle the highlight
|
||||
//{
|
||||
// var container = self._scheme.find(self,"Text")
|
||||
// .$element.getElementsByClassName("editor-preview");
|
||||
// if(container.length == 0) return;
|
||||
// var codes = container[0].getElementsByTagName('pre');
|
||||
// codes.forEach(function(el){
|
||||
// hljs.highlightBlock(el);
|
||||
// });
|
||||
// //console.log(code);
|
||||
//}
|
||||
this.editor.codemirror.on("change", () => {
|
||||
if (this.editormux) {
|
||||
return;
|
||||
}
|
||||
if (this.currfile.dirty === false) {
|
||||
this.currfile.dirty = true;
|
||||
return this.scheme.apptitle = `${this.currfile.basename}*`;
|
||||
}
|
||||
});
|
||||
this.on("hboxchange", (e) => {
|
||||
return this.resizeContent();
|
||||
});
|
||||
this.bindKey("ALT-N", () => {
|
||||
return this.actionFile(`${this.name}-New`);
|
||||
});
|
||||
this.bindKey("ALT-O", () => {
|
||||
return this.actionFile(`${this.name}-Open`);
|
||||
});
|
||||
this.bindKey("CTRL-S", () => {
|
||||
return this.actionFile(`${this.name}-Save`);
|
||||
});
|
||||
this.bindKey("ALT-W", () => {
|
||||
return this.actionFile(`${this.name}-Saveas`);
|
||||
});
|
||||
this.resizeContent();
|
||||
return this.open(this.currfile);
|
||||
}
|
||||
|
||||
resizeContent() {
|
||||
var cheight, children, statusbar, titlebar, toolbar;
|
||||
children = ($(this.container)).children();
|
||||
titlebar = (($(this.scheme)).find(".afx-window-top"))[0];
|
||||
toolbar = children[1];
|
||||
statusbar = children[4];
|
||||
cheight = ($(this.scheme)).height() - ($(titlebar)).height() - ($(toolbar)).height() - ($(statusbar)).height() - 40;
|
||||
return ($(children[2])).css("height", cheight + "px");
|
||||
}
|
||||
|
||||
open(file) {
|
||||
//find table
|
||||
if (file.path === "Untitled") {
|
||||
return;
|
||||
}
|
||||
file.dirty = false;
|
||||
return file.read().then((d) => {
|
||||
this.currfile = file;
|
||||
this.editormux = true;
|
||||
this.editor.value(d);
|
||||
this.scheme.apptitle = `${this.currfile.basename}`;
|
||||
return this.editormux = false;
|
||||
}).catch((e) => {
|
||||
return this.error(__("Unable to open: {0}", file.path), e);
|
||||
});
|
||||
}
|
||||
|
||||
save(file) {
|
||||
return file.write("text/plain").then((d) => {
|
||||
if (d.error) {
|
||||
return this.error(__("Error saving file {0}: {1}", file.basename, d.error));
|
||||
}
|
||||
file.dirty = false;
|
||||
file.text = file.basename;
|
||||
return this.scheme.apptitle = `${this.currfile.basename}`;
|
||||
}).catch((e) => {
|
||||
return this.error(__("Unable to save file: {0}", file.path), e);
|
||||
});
|
||||
}
|
||||
|
||||
menu() {
|
||||
var menu;
|
||||
menu = [
|
||||
{
|
||||
text: "__(File)",
|
||||
nodes: [
|
||||
{
|
||||
text: "__(New)",
|
||||
dataid: `${this.name}-New`,
|
||||
shortcut: "A-N"
|
||||
},
|
||||
{
|
||||
text: "__(Open)",
|
||||
dataid: `${this.name}-Open`,
|
||||
shortcut: "A-O"
|
||||
},
|
||||
{
|
||||
text: "__(Save)",
|
||||
dataid: `${this.name}-Save`,
|
||||
shortcut: "C-S"
|
||||
},
|
||||
{
|
||||
text: "__(Save as)",
|
||||
dataid: `${this.name}-Saveas`,
|
||||
shortcut: "A-W"
|
||||
}
|
||||
],
|
||||
onchildselect: (e) => {
|
||||
return this.actionFile(e.data.item.data.dataid);
|
||||
}
|
||||
}
|
||||
];
|
||||
return menu;
|
||||
}
|
||||
|
||||
actionFile(e) {
|
||||
var saveas;
|
||||
saveas = () => {
|
||||
return this.openDialog("FileDialog", {
|
||||
title: __("Save as"),
|
||||
file: this.currfile
|
||||
}).then((f) => {
|
||||
var d;
|
||||
d = f.file.path.asFileHandle();
|
||||
if (f.file.type === "file") {
|
||||
d = d.parent();
|
||||
}
|
||||
this.currfile.setPath(`${d.path}/${f.name}`);
|
||||
return this.save(this.currfile);
|
||||
});
|
||||
};
|
||||
switch (e) {
|
||||
case `${this.name}-Open`:
|
||||
return this.openDialog("FileDialog", {
|
||||
title: __("Open file")
|
||||
}).then((f) => {
|
||||
return this.open(f.file.path.asFileHandle());
|
||||
});
|
||||
case `${this.name}-Save`:
|
||||
this.currfile.cache = this.editor.value();
|
||||
if (this.currfile.basename) {
|
||||
return this.save(this.currfile);
|
||||
}
|
||||
return saveas();
|
||||
case `${this.name}-Saveas`:
|
||||
this.currfile.cache = this.editor.value();
|
||||
return saveas();
|
||||
case `${this.name}-New`:
|
||||
this.currfile = "Untitled".asFileHandle();
|
||||
this.currfile.cache = "";
|
||||
return this.editor.value("");
|
||||
}
|
||||
}
|
||||
|
||||
cleanup(evt) {
|
||||
if (!this.currfile.dirty) {
|
||||
return;
|
||||
}
|
||||
evt.preventDefault();
|
||||
return this.openDialog("YesNoDialog", {
|
||||
title: __("Quit"),
|
||||
text: __("Quit without saving ?")
|
||||
}).then((d) => {
|
||||
if (d) {
|
||||
this.currfile.dirty = false;
|
||||
return this.quit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
MarkOn.dependencies = ["os://scripts/mde/simplemde.min.js", "os://scripts/mde/simplemde.min.css"];
|
||||
|
||||
this.OS.register("MarkOn", MarkOn);
|
||||
|
||||
}).call(this);
|
||||
|
@ -6,7 +6,7 @@
|
||||
"author": "Xuan Sang LE",
|
||||
"email": "xsang.le@gmail.com"
|
||||
},
|
||||
"version":"0.0.4-a",
|
||||
"version":"0.0.6-a",
|
||||
"category":"Utils",
|
||||
"iconclass":"fa fa-leanpub",
|
||||
"mimes":["text/.*"]
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user