コード例 #1
0
ファイル: project.py プロジェクト: fiefdx/CallingViewer
    def post(self):
        query_str = self.get_argument("query", "[]").strip()
        query = json.loads(query_str)
        project_name = self.get_argument("project_name", "").strip()

        LOG.debug("query: %s, project_name: %s", query, project_name)

        nodes = []
        tree = []
        projects = Projects()
        if project_name != "" and projects.get(project_name):
            project = Project()
            project.parse_dict(projects.get(project_name))
            for q_id in query:
                dirs, files = project.listdir(q_id)
                if dirs != [] or files != []:
                    tree.append({"id": q_id})
                for d in dirs:
                    nodes.append({"id": os.path.join(q_id, d["name"]),
                                  "parent": q_id, 
                                  "text": d["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                  "type": "directory"})
                for f in files:
                    nodes.append({"id": os.path.join(q_id, f["name"]),
                                  "parent": q_id,
                                  "text": f["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                  "type": "file"})

        data = {}
        data["nodes"] = nodes
        data["tree"] = tree
        self.write(data)
コード例 #2
0
ファイル: project.py プロジェクト: fiefdx/CallingViewer
    def post(self):
        project_name = self.get_argument("project_name", "").strip()
        LOG.debug("project_name: %s", project_name)

        projects = Projects()
        data = {}
        data["nodes"] = []
        data["tree"] = []
        data["project"] = project_name
        nodes = []
        project = Project()
        project.parse_dict(projects.get(project_name))
        data["project_path"] = project.project_path
        data["main_path"] = project.main_path
        data["go_path"] = project.go_path
        dirs, files = project.listdir()
        if dirs != [] or files != []:
            parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"}
        else:
            parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"}
        for d in dirs:
            nodes.append({"id": os.path.join(project.project_path, d["name"]),
                          "parent": project.project_path,
                          "text": d["name"].replace("<", "&lt;").replace(">", "&gt;"),
                          "type": "directory"})
        for f in files:
            nodes.append({"id": os.path.join(project.project_path, f["name"]),
                          "parent": project.project_path,
                          "text": f["name"].replace("<", "&lt;").replace(">", "&gt;"),
                          "type": "file"})
        nodes.insert(0, parent)
        data["nodes"] = nodes
        self.write(data)
コード例 #3
0
ファイル: call.py プロジェクト: fiefdx/CallingViewer
    def get(self):
        projects = Projects()
        data = {}
        data["nodes"] = []
        data["tree"] = []
        data["projects"] = [v for v in projects.all().itervalues()]
        data["projects"].sort(lambda x,y : cmp(x['project_name'], y['project_name']))
        if len(data["projects"]) > 0:
            nodes = []
            data["project"] = data["projects"][0]["project_name"]
            project = Project()
            project.parse_dict(data["projects"][0])
            data["project_path"] = project.project_path
            data["main_path"] = project.main_path
            data["go_path"] = project.go_path
            dirs, files = project.listdir()
            if dirs != [] or files != []:
                parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"}
            else:
                parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"}
            for d in dirs:
                nodes.append({"id": os.path.join(project.project_path, d["name"]),
                              "parent": project.project_path,
                              "text": escape_html(d["name"]),
                              "type": "directory"})
            for f in files:
                nodes.append({"id": os.path.join(project.project_path, f["name"]),
                              "parent": project.project_path,
                              "text": escape_html(f["name"]),
                              "type": "file"})
            nodes.insert(0, parent)
            data["nodes"] = nodes

        self.render("call/call_tree.html", current_nav = "View", version = CONFIG["version"], result = json.dumps(data))
コード例 #4
0
ファイル: project.py プロジェクト: fiefdx/CallingViewer
    def post(self):
        data = {}
        try:
            project_name = self.get_argument("project_name", "").strip()
            LOG.debug("project_name: %s", project_name)

            projects = Projects()
            data["nodes"] = []
            data["tree"] = []
            data["project"] = ""
            projects.delete(project_name)
            data["projects"] = [v for v in projects.all().itervalues()]
            data["projects"].sort(lambda x,y : cmp(x['project_name'], y['project_name']))
            if len(data["projects"]) > 0:
                nodes = []
                data["project"] = data["projects"][0]["project_name"]
                project = Project()
                project.parse_dict(data["projects"][0])
                data["project_path"] = project.project_path
                data["main_path"] = project.main_path
                data["go_path"] = project.go_path
                dirs, files = project.listdir()
                if dirs != [] or files != []:
                    parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"}
                else:
                    parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"}
                for d in dirs:
                    nodes.append({"id": os.path.join(project.project_path, d["name"]),
                                  "parent": project.project_path,
                                  "text": d["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                  "type": "directory"})
                for f in files:
                    nodes.append({"id": os.path.join(project.project_path, f["name"]),
                                  "parent": project.project_path,
                                  "text": f["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                  "type": "file"})
                nodes.insert(0, parent)
                data["nodes"] = nodes
        except Exception, e:
            LOG.exception(e)
            data["exception"] = "%s" % e
コード例 #5
0
ファイル: project.py プロジェクト: fiefdx/CallingViewer
    def post(self):
        data = {}
        try:
            project_name = self.get_argument("project_name", "").strip()
            project_path = self.get_argument("project_path", "").strip()
            project_path = project_path.rstrip("/") if project_path != "/" else "/"
            go_path = self.get_argument("go_path", "").strip()
            go_path = go_path.rstrip("/") if go_path != "/" else "/"
            main_path = self.get_argument("main_path", "").strip()

            LOG.debug("add project: project_name %s, project_path: %s, go_path: %s, main_path: %s", project_name, project_path, go_path, main_path)

            if not validate_params(project_name, project_path, go_path, main_path):
                raise errors.InvalidParamsError

            data["nodes"] = []
            data["tree"] = []
            data["project"] = ""
            projects = Projects()
            if project_name != "" and projects.exist(project_name):
                raise errors.ExistProjectError
            elif project_name != "" and not projects.exist(project_name):
                project = Project()
                project.go_path = go_path
                project.main_path = main_path
                project.project_path = project_path
                project.project_name = project_name
                project.hash()
                flag = projects.add(project)
                data["projects"] = [v for v in projects.all().itervalues()]
                data["projects"].sort(lambda x,y : cmp(x['project_name'], y['project_name']))
                if flag:
                    project_import = ProjectImport(CONFIG["process_num"])
                    data["project"] = project_name
                    nodes = []
                    project = Project()
                    project.parse_dict(projects.get(project_name))
                    project.hash()
                    data["project_path"] = project.project_path
                    data["main_path"] = project.main_path
                    data["go_path"] = project.go_path
                    SEARCH_IX.delete(project_name)
                    flag = SEARCH_IX.add(project_name)
                    if flag:
                        flag = yield project_import.import_project(project)
                        if flag:
                            LOG.info("Add Project[%s] Success", project_name)
                        else:
                            LOG.info("Add Project[%s] Failed", project_name)
                            flag = projects.delete(project.project_name)
                            if flag:
                                LOG.info("Delete Project[%s] (by add project failed) Success", project_name)
                            else:
                                LOG.error("Delete Project[%s] (by add project failed) Failed", project_name)
                            raise errors.AddProjectError
                        dirs, files = project.listdir()
                        if dirs != [] or files != []:
                            parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"}
                        else:
                            parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"}
                        for d in dirs:
                            nodes.append({"id": os.path.join(project.project_path, d["name"]),
                                          "parent": project.project_path,
                                          "text": d["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                          "type": "directory"})
                        for f in files:
                            nodes.append({"id": os.path.join(project.project_path, f["name"]),
                                          "parent": project.project_path,
                                          "text": f["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                          "type": "file"})
                        nodes.insert(0, parent)
                        data["nodes"] = nodes
                elif len(data["projects"]) > 0:
                    nodes = []
                    data["project"] = data["projects"][0]["project_name"]
                    project = Project()
                    project.parse_dict(data["projects"][0])
                    data["project_path"] = project.project_path
                    data["main_path"] = project.main_path
                    data["go_path"] = project.go_path
                    dirs, files = project.listdir()
                    if dirs != [] or files != []:
                        parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"}
                    else:
                        parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"}
                    for d in dirs:
                        nodes.append({"id": os.path.join(project.project_path, d["name"]),
                                      "parent": project.project_path,
                                      "text": d["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                      "type": "directory"})
                    for f in files:
                        nodes.append({"id": os.path.join(project.project_path, f["name"]),
                                      "parent": project.project_path,
                                      "text": f["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                      "type": "file"})
                    nodes.insert(0, parent)
                    data["nodes"] = nodes
            else:
                data["projects"] = [v for v in projects.all().itervalues()]
                data["projects"].sort(lambda x,y : cmp(x['project_name'], y['project_name']))
                nodes = []
                data["project"] = data["projects"][0]["project_name"]
                project = Project()
                project.parse_dict(data["projects"][0])
                data["project_path"] = project.project_path
                data["main_path"] = project.main_path
                data["go_path"] = project.go_path
                dirs, files = project.listdir()
                if dirs != [] or files != []:
                    parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"}
                else:
                    parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"}
                for d in dirs:
                    nodes.append({"id": os.path.join(project.project_path, d["name"]),
                                  "parent": project.project_path,
                                  "text": d["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                  "type": "directory"})
                for f in files:
                    nodes.append({"id": os.path.join(project.project_path, f["name"]),
                                  "parent": project.project_path,
                                  "text": f["name"].replace("<", "&lt;").replace(">", "&gt;"),
                                  "type": "file"})
                nodes.insert(0, parent)
                data["nodes"] = nodes
        except Exception, e:
            LOG.exception(e)
            data["exception"] = "%s" % e