示例#1
0
    def render(self, request):
        packages = self.env.registry.getPackageIds()
        resourcetypes = self.env.registry.getAllPackagesAndResourceTypes()
        index_types = sorted(INDEX_TYPES)
        index_types_dict = {}
        for i, v in INDEX_TYPES.iteritems():
            index_types_dict[v] = i

        data = {
            'index_types': index_types,
            'index_types_dict': index_types_dict,
            'package_id': '',
            'resourcetype_id': '',
            'indexes': [],
            'error': '',
            'xpath': '',
            'label': '',
            'options': '',
            'packages': packages,
            'resourcetypes': resourcetypes,
            'resturl': self.env.getRestUrl(),
        }
        if request.method == 'POST':
            args = request.args
            data['package_id'] = args.get('package_id', [''])[0]
            data['resourcetype_id'] = args.get('resourcetype_id', [''])[0]
            if 'add' in args.keys() and 'xpath' in args:
                data['label'] = args.get('label', [''])[0]
                data['xpath'] = args.get('xpath', [''])[0]
                data['type_id'] = args.get('type_id', [''])[0]
                data['options'] = args.get('options', [None])[0]
                data = self._addIndex(data)
            elif 'delete' in args and 'index[]' in args:
                data['index[]'] = args['index[]']
                data = self._deleteIndexes(data)
            elif 'reindex' in args and 'index[]' in args:
                data['index[]'] = args['index[]']
                data = self._reindexIndexes(data)
            elif 'reindex-all' in args:
                data = self._reindexResourceType(data)
            elif 'filter' in args:
                data = self._getIndexes(data)
        return data