Mercurial Hosting > freedit
comparison src/lib/Post.luan @ 56:7ce54f6d93f2
add change name
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Mon, 28 Nov 2022 22:00:43 -0700 |
| parents | 289718f121e4 |
| children |
comparison
equal
deleted
inserted
replaced
| 55:c57b84f461ae | 56:7ce54f6d93f2 |
|---|---|
| 44 doc.type == "post" or error "wrong type" | 44 doc.type == "post" or error "wrong type" |
| 45 local post = Post.new { | 45 local post = Post.new { |
| 46 id = doc.id | 46 id = doc.id |
| 47 content = doc.content | 47 content = doc.content |
| 48 date = doc.date | 48 date = doc.date |
| 49 author_name = doc.post_author_name | 49 author_id = doc.post_author_id |
| 50 root_id = doc.post_root_id | 50 root_id = doc.post_root_id |
| 51 is_root = doc.post_is_root == "true" | 51 is_root = doc.post_is_root == "true" |
| 52 | 52 |
| 53 -- root only | 53 -- root only |
| 54 subject = doc.subject | 54 subject = doc.subject |
| 61 return { | 61 return { |
| 62 type = "post" | 62 type = "post" |
| 63 id = post.id | 63 id = post.id |
| 64 content = post.content or error() | 64 content = post.content or error() |
| 65 date = long(post.date) | 65 date = long(post.date) |
| 66 post_author_name = post.author_name or error() | 66 post_author_id = long(post.author_id) |
| 67 post_root_id = long(post.root_id) | 67 post_root_id = long(post.root_id) |
| 68 post_is_root = post.is_root and "true" or nil | 68 post_is_root = post.is_root and "true" or nil |
| 69 | 69 |
| 70 -- root only | 70 -- root only |
| 71 subject = post.subject | 71 subject = post.subject |
| 74 | 74 |
| 75 local metatable = {} | 75 local metatable = {} |
| 76 function metatable.__index(post,key) | 76 function metatable.__index(post,key) |
| 77 if key == "author" then | 77 if key == "author" then |
| 78 local User = require "site:/lib/User.luan" | 78 local User = require "site:/lib/User.luan" |
| 79 return User.get_by_name(post.author_name) | 79 return User.get_by_id(post.author_id) |
| 80 end | 80 end |
| 81 if key == "subject_html" then | 81 if key == "subject_html" then |
| 82 return post.subject and html_encode(post.subject) | 82 return post.subject and html_encode(post.subject) |
| 83 end | 83 end |
| 84 if key == "root" then | 84 if key == "root" then |
| 104 end | 104 end |
| 105 | 105 |
| 106 function post.author_is_current() | 106 function post.author_is_current() |
| 107 local User = require "site:/lib/User.luan" | 107 local User = require "site:/lib/User.luan" |
| 108 local user = User.current() | 108 local user = User.current() |
| 109 return user ~= nil and user.name == post.author_name | 109 return user ~= nil and user.id == post.author_id |
| 110 end | 110 end |
| 111 | 111 |
| 112 function post.ago(now) | 112 function post.ago(now) |
| 113 local diff = now - post.date | 113 local diff = now - post.date |
| 114 for _, t in ipairs(times) do | 114 for _, t in ipairs(times) do |
| 138 function Post.new_thread(author,subject,content) | 138 function Post.new_thread(author,subject,content) |
| 139 return Db.run_in_transaction( function() | 139 return Db.run_in_transaction( function() |
| 140 local post = Post.new{ | 140 local post = Post.new{ |
| 141 subject = subject or error() | 141 subject = subject or error() |
| 142 content = content | 142 content = content |
| 143 author_name = author.name | 143 author_id = author.id |
| 144 is_root = true | 144 is_root = true |
| 145 } | 145 } |
| 146 post.root_id = -1 | 146 post.root_id = -1 |
| 147 post.save() | 147 post.save() |
| 148 post.root_id = post.id or error() | 148 post.root_id = post.id or error() |
