def main(wfile, req): # this is called from the controller weblib # if rid is defined, make sure it is valid if req.rid > 0: if not store.getWeblib().webpages.getById(req.rid): wfile.write('404 not found\r\n\r\n') wfile.write('rid %s not found' % req.rid) if req.method == 'PUT': bean = Bean(req) doPutResource(wfile, req, bean) elif req.method == 'POST': wfile.write('404 Method Not Allowed\r\n\r\n') wfile.write('Use PUT to update the item.') elif req.method == 'DELETE': doDeleteResource(wfile, req) else: # otherwise it is GET bean = Bean(req) if req.rid == -1 and bean.oldItem: # if bookmarklet to an existing item, redirect to the appropiate rid url = '%s?%s' % (request.rid_url(bean.item.id), req.env.get('QUERY_STRING','')) response.redirect(wfile, url) else: doGetResource(wfile, req, bean)
def render(self, node, bean, tags): item = bean.item wlib = store.getWeblib() if item.id == -1: node.form_title.content %= 'Add Entry' node.edit_header.omit() else: node.form_title.content %= 'Edit Entry' node.add_header.omit() form = node.form id = item.id < 0 and '_' or str(item.id) form.atts['action'] = request.rid_url(id) if bean.errors: escaped_errors = map(saxutils.escape, bean.errors) form.error.message.raw = '<br />'.join(escaped_errors) else: form.error.omit() if item: form.name .atts['value'] = item.name form.created .atts['value'] = item.created form.url .atts['value'] = item.url form.description.content = item.description form.tags .atts['value'] = bean.item.tags_description form.nickname .atts['value'] = item.nickname if weblib_util.isFileURL(item.url): scheme, netloc, url_path, _, _, _ = urlparse.urlparse(item.url) pathname = weblib_util.nt_url2pathname(url_path) form.url_link.atts['href'] = '/weblib/%s/url#%s' % (item.id, item.url) form.filename.content = pathname else: form.url_link.atts['href'] = item.url form.filename.omit() # if item.modified: # form.modified_txt.content = item.modified # if item.fetched: # form.snapshot_txt.content = item.fetched tags_strings = [u' "%s"' % response.jsEscapeString(unicode(tag)) for tag in tags] node.form.tags_array.raw = node.form.tags_array.raw % ',\n'.join(tags_strings) new_tags = bean.newTags and u', '.join(bean.newTags) or '' encoded_tags = response.jsEscapeString(new_tags) node.form.new_tags_js_var.raw = node.form.new_tags_js_var.raw % encoded_tags # weblibForm get invoked from CGI weblib.py #if __name__ == "__main__": # main(sys.stdin, sys.stdout, os.environ)