Example #1
0
 def requestpath(self, path):
     getconn().sioreq({
         "kind": "getpath",
         "owner": self.id,
         "drive": self.drive,
         "path": path
     })
Example #2
0
 def requestdirlist(self):
     getconn().sioreq({
         "kind": "getdirlist",
         "owner": self.id,
         "drive": self.drive,
         "dirpath": self.path()
     })
Example #3
0
 def startcallback(self):
     getconn().sioreq({
         "kind": "startprocess",
         "key": self.key,
         "command": self.command,
         "command_args": self.command_args
     })
Example #4
0
 def requestcreatedir(self, createname):
     getconn().sioreq({
         "kind": "createdir",
         "owner": self.id,
         "drive": self.drive,
         "path": self.comppath(createname),
         "dirpath": self.path()
     })
Example #5
0
 def requestsave(self, path, content):
     getconn().sioreq({
         "kind": "savefile",
         "owner": self.id,
         "drive": self.drive,
         "content": content,
         "path": path
     })
Example #6
0
 def requestdeletedir(self, dir):
     getconn().sioreq({
         "kind": "deletedir",
         "owner": self.id,
         "drive": self.drive,
         "path": self.comppath(dir),
         "dirpath": self.path()
     })
Example #7
0
 def sendline(self, sline):
     getconn().sioreq({
         "kind": "sendline",
         "key": self.key,
         "command": self.command,
         "command_args": self.command_args,
         "sline": sline
     })
Example #8
0
 def movecallback(self, variantkey, fen, uci):
     if self.reqfenunderway:
         print("a fen request is in progress, cannot start a new one")
         return
     self.root.shift()
     self.root.reqfenunderway = True
     self.root.reqnode = self
     getconn().sioreq({
         "kind": "forumgamemove",
         "owner": "forumgame",
         "moveuci": uci,
         "variantkey": variantkey,
         "fen": fen
     })
Example #9
0
 def idclicked(self):
     self.parent.loadedgameid = self.id
     self.parent.loadedgameside = "white"        
     if self.meblack():
         self.parent.loadedgameside = "black"
     self.parent.pgntext.setpgn(self.content)
     self.bds("dotted").bdw("6").bdc("#00f")
     localStorage.setItem("pgninfo/idclicked", self.id)
     self.pgnlistparent.bookmarkedpi = self
     getconn().sioreq({
         "kind": "parsepgn",
         "owner": self.parent.id,
         "data": self.content
     })
Example #10
0
 def store(self):
     self.parenttabpane.contentdiv.bc("#faa")
     self.messagediv.html("Parsing JSON")
     try:
         obj = JSON.parse(self.textarea.getText())
         self.messagediv.html("Storing JSON")
         getconn().sioreq({
             "kind": "setforumgame",
             "owner": "forumgame",
             "forumgame": obj
         })
     except:
         self.messagediv.html("Error: could not parse JSON")
         return
Example #11
0
 def dirclicked():
     if dir == "..":
         if len(self.pathlist) > 0:
             self.pathlist.pop()
         self.requestdirlist()
     else:
         self.pathlist.append(dir)
         getconn().sioreq({
             "kind": "appenddirtopath",
             "owner": self.id,
             "drive": self.drive,
             "dirpath": self.path(),
             "dir": dir
         })
         self.pathlist.pop()
Example #12
0
 def __init__(self, args={}):
     super().__init__("div")
     self.id = args.get("id", "doc")
     self.startpage = args.get("startpage", "contents")
     self.showcontentslink = args.get("showcontentslink", True)
     self.mdconv = __new__(showdown.Converter())
     self.docdiv = Div("docdiv")
     self.srcdiv = Div("srcdiv")
     self.a(self.docdiv)
     getconn().sioreq({
         "kind": "getdoc",
         "owner": self.id,
         "data": self.startpage,
         "switchtodoctab": False
     })
Example #13
0
 def __init__(self, args={}):
     super().__init__("div")
     self.ac("dirbrowser")
     self.id = args.get("id", None)
     self.drive = args.get("drive", False)
     self.editclickedcallback = args.get("editclickedcallback", None)
     self.pathlist = []
     self.listing = []
     self.filesdiv = SplitPane({"controlheight": 40})
     self.pathlabel = Div("pathlabel")
     self.createfilebutton = Button("Create file", self.createfileclicked)
     self.createdirbutton = Button("Create dir", self.createdirclicked)
     self.refreshbutton = Button("Refresh", self.refreshclicked)
     self.filesdiv.controlpanel.a([
         self.pathlabel, self.createfilebutton, self.createdirbutton,
         self.refreshbutton
     ])
     if self.drive:
         self.ziptocloudbutton = Button("Zip to cloud",
                                        self.ziptocloudclicked)
         self.unzipfromcloudbutton = Button("Unzip from cloud",
                                            self.unzipfromcloudclicked)
         self.filesdiv.controlpanel.a(
             [self.ziptocloudbutton, self.unzipfromcloudbutton])
     self.filescontentdiv = Div()
     self.filesdiv.setcontentelement(self.filescontentdiv)
     self.editor = Editor()
     self.editor.reloadbutton.ae("mousedown", self.reloadclicked)
     self.editor.savebutton.ae("mousedown", self.saveclicked)
     self.uploader = FileUploader({
         "url": "/dirbrowserupload",
         "accept": "*",
         "acceptdisplay": "file",
         "drive": self.drive,
         "dirbrowseruploadedcallback": self.dirbrowseruploadedcallback,
         "dirbrowsergetpathcallback": self.path,
         "getuid": getconn().getuid
     })
     self.tabs = TabPane({
         "id":
         self.id + "tabpane",
         "tabs": [
             Tab("files", "Files", self.filesdiv),
             Tab("edit", "Edit", self.editor),
             Tab("upload", "Upload", self.uploader),
         ],
         "selected":
         "files"
     })
     self.tabs.controlpanel.ac("subcontrolpanel")
     self.a(self.tabs)
     self.requestdirlist()
Example #14
0
 def onready(self):
     getconn().sioreq({"kind": "connected", "queryparams": queryparams})
Example #15
0
 def synclocalstorage(self):
     getconn().sioreq({"kind": "synclocalstorage", "owner": self.id})
Example #16
0
 def serializelocalstorage(self):
     getconn().sioreq({
         "kind": "serializelocalstorage",
         "data": JSON.stringify(localStorage),
         "owner": self.id
     })
Example #17
0
 def serializeconfig(self):
     getconn().sioreq({
         "kind": "serializeconfig",
         "data": self.configschema.toargs(),
         "owner": self.id
     })
Example #18
0
 def requestziptocloud(self):
     getconn().sioreq({
         "kind": "ziptocloud",
         "owner": self.id,
         "drive": self.drive
     })
Example #19
0
 def reflinkclicked():
     getconn().sioreq({"kind": "getdoc", "owner": self.id, "data": ref})
Example #20
0
 def stopcallback(self):
     getconn().sioreq({"kind": "stopprocess", "key": self.key})
Example #21
0
 def requestforumgame(self):
     getconn().sioreq({"kind": "getforumgame", "owner": "forumgame"})
Example #22
0
 def requestunzipfromcloud(self):
     getconn().sioreq({
         "kind": "unzipfromcloud",
         "owner": self.id,
         "drive": self.drive
     })
Example #23
0
 def requestbots(self):
     getconn().sioreq({"kind": "getmybots"})
Example #24
0
    def build(self):
        self.root.innerHTML = ""

        self.owners["config"] = self.config

        if self.dodirbrowser:
            self.maindirbrowser = DirBrowser({"id": "maindirbrowser"})
            self.owners["maindirbrowser"] = self.maindirbrowser
        else:
            self.maindirbrowser = Div()

        if self.dodrive:
            self.drive = DirBrowser({
                "id":
                "drive",
                "drive":
                True,
                "editclickedcallback":
                self.driveeditclickedcallback
            })
            self.owners["drive"] = self.drive
        else:
            self.drive = Div()

        self.createbotdiv()

        if self.doboard:
            self.mainboard = Board({
                "dobook": self.dobook,
                "dostoredanalysis": self.dostoredanalysis,
                "dostoredauto": self.dostoredauto,
                "dogames": self.dogames,
                "setposinfo": self.setposinfo,
                "dogamepreview": self.dogamepreview,
                "background": self.boardbackground,
                "autoanalysisdelay": self.autoanalysisdelay,
                "maxgames": self.maxgames,
                "gamesfilter": self.gamesfilter,
                "analysispvlength": self.analysispvlength
            })
            self.mainboard.setusername(self.username, self.usertoken)
            self.mainboard.tabpane.controlpanel.ac("subcontrolpanel")
            self.owners["mainboard"] = self.mainboard
        else:
            self.mainboard = Div()

        if self.dodocs:
            self.doc = Doc()
            self.srcdiv = self.doc.srcdiv
            self.owners["doc"] = self.doc
        else:
            self.doc = Div()
            self.srcdiv = Div()

        if self.doabout:
            self.about = Doc({
                "id": "about",
                "startpage": "about",
                "showcontentslink": False
            })
            self.owners["about"] = self.about
        else:
            self.about = Div()

        if self.isadmin:
            self.processpane = ProcessPane(
                {"configsch": self.config.getpath("processes")})
            self.processpane.processtabpane.controlpanel.ac("subcontrolpanel")
        else:
            self.processpane = Div("featureplaceholder").html(
                "Admin only feature.")

        self.forumgametab = Tab(
            "forumgame", "Forum game",
            Div("featureplaceholder").html("Forum game disabled."))
        if self.doforumgame:
            self.forumgame = Forumgame()
            self.forumgame.mainboard = self.mainboard
            self.owners["forumgame"] = self.forumgame
            self.forumgametab = Tab("forumgame", "Forum game", self.forumgame)

        self.tabs = TabPane({
            "id":
            "maintabpane",
            "fillwindow":
            True,
            "tabs": [
                Tab("config", "Config", self.config),
                Tab("upload", "Upload", FileUploader({"url": "/upload"})),
                Tab("board", "Board", self.mainboard), self.forumgametab,
                Tab("process", "Process", self.processpane),
                Tab("dirbrowser", "Dirbrowser", self.maindirbrowser),
                Tab("drive", "Drive", self.drive),
                Tab("bots", "Bots", self.botdiv),
                Tab("doc", "Doc", self.doc),
                Tab("src", "Src", self.srcdiv),
                Tab("log", "Log",
                    getconn().log),
                getconn().profiletab,
                Tab("about", "About", self.about)
            ],
            "selected":
            "drive"
        })

        self.root.appendChild(self.tabs.e)

        qseltab = queryparams.get("tab", None)
        if qseltab:
            self.tabs.selectbykey(qseltab)
Example #25
0
 def openclicked():
     if self.drive:
         window.open("/file/drive/" + getconn().getuid() + "/" +
                     self.comppath(dir))
     else:
         window.open("/file/" + self.comppath(dir))