Edit post works
This commit is contained in:
		
							parent
							
								
									e0575939c3
								
							
						
					
					
						commit
						11a50e973c
					
				| 
						 | 
					@ -53,6 +53,15 @@ func (news *News) Insert(db *sql.DB) error {
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Update updatable parts of news itemn in DB
 | 
				
			||||||
 | 
					func (news *News) Update(db *sql.DB) error {
 | 
				
			||||||
 | 
						_, err := db.Exec("UPDATE news SET title=$1, url=$2, category_id=$3, notes=$4 WHERE id=$5", news.Title, news.Url, news.Category_id, news.Notes, news.id)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							fmt.Println("Error updating news: ", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return err
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Delete(db *sql.DB, id int) error {
 | 
					func Delete(db *sql.DB, id int) error {
 | 
				
			||||||
	_, err := db.Exec("DELETE FROM news WHERE id = $1", id)
 | 
						_, err := db.Exec("DELETE FROM news WHERE id = $1", id)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -146,7 +146,7 @@ func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User, ses
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	popup := r.URL.Query().Get("popup")
 | 
						popup := r.URL.Query().Get("popup")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ShowTemplate("post", w, map[string]interface{}{"user": user, "flashes": flashes, "link": url, "categories": categories.CategoriesTree, "title": title, "popup": popup})
 | 
						ShowTemplate("post", w, map[string]interface{}{"mode": "add", "user": user, "flashes": flashes, "link": url, "categories": categories.CategoriesTree, "title": title, "popup": popup, "category_id": -1})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
 | 
					func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
 | 
				
			||||||
| 
						 | 
					@ -160,7 +160,7 @@ func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, ses
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		var flashes = make(map[string]interface{})
 | 
							var flashes = make(map[string]interface{})
 | 
				
			||||||
		flashes["error"] = []string{ "Category required: " +err.Error() }
 | 
							flashes["error"] = []string{ "Category required: " +err.Error() }
 | 
				
			||||||
		ShowTemplate("post", w, map[string]interface{}{"user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": popup, "notes": news.Notes, "category_id": news.Category_id})
 | 
							ShowTemplate("post", w, map[string]interface{}{"mode": "add", "user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": popup, "notes": news.Notes, "category_id": news.Category_id})
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	news.Category_id = category_id
 | 
						news.Category_id = category_id
 | 
				
			||||||
| 
						 | 
					@ -169,7 +169,7 @@ func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, ses
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		var flashes = make(map[string]interface{})
 | 
							var flashes = make(map[string]interface{})
 | 
				
			||||||
		flashes["error"] = []string{ "Error saving news: "+err.Error() }
 | 
							flashes["error"] = []string{ "Error saving news: "+err.Error() }
 | 
				
			||||||
		ShowTemplate("post", w, map[string]interface{}{"user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": popup, "notes": news.Notes, "category_id": news.Category_id})
 | 
							ShowTemplate("post", w, map[string]interface{}{"mode": "add", "user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": popup, "notes": news.Notes, "category_id": news.Category_id})
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		session.AddFlash("Added news \""+news.Title+"\"", flash_info)
 | 
							session.AddFlash("Added news \""+news.Title+"\"", flash_info)
 | 
				
			||||||
| 
						 | 
					@ -204,7 +204,7 @@ func editFormHandler(w http.ResponseWriter, r *http.Request, user *user.User, se
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	session.Save(r, w)
 | 
						session.Save(r, w)
 | 
				
			||||||
	ShowTemplate("post", w, map[string]interface{}{"user": user, "flashes": flashes, "categories": categories.CategoriesTree, "link": newsItem.Url, "title": newsItem.Title, "notes": newsItem.Notes, "popup": false, "category_id": newsItem.Category_id, "id": newsItem.Id()})
 | 
						ShowTemplate("post", w, map[string]interface{}{"mode": "edit", "user": user, "flashes": flashes, "categories": categories.CategoriesTree, "link": newsItem.Url, "title": newsItem.Title, "notes": newsItem.Notes, "popup": false, "category_id": newsItem.Category_id, "id": newsItem.Id()})
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -234,7 +234,7 @@ func editPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, se
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		var flashes = make(map[string]interface{})
 | 
							var flashes = make(map[string]interface{})
 | 
				
			||||||
		flashes["error"] = []string{ "Category required: " +err.Error() }
 | 
							flashes["error"] = []string{ "Category required: " +err.Error() }
 | 
				
			||||||
		ShowTemplate("post", w, map[string]interface{}{"user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": false, "notes": news.Notes, "category_id": news.Category_id})
 | 
							ShowTemplate("post", w, map[string]interface{}{"mode": "edit", "user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": false, "notes": news.Notes, "category_id": news.Category_id, "id": news.Id()})
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	news.Category_id = category_id
 | 
						news.Category_id = category_id
 | 
				
			||||||
| 
						 | 
					@ -243,7 +243,7 @@ func editPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, se
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		var flashes = make(map[string]interface{})
 | 
							var flashes = make(map[string]interface{})
 | 
				
			||||||
		flashes["error"] = []string{ "Error saving news: "+err.Error() }
 | 
							flashes["error"] = []string{ "Error saving news: "+err.Error() }
 | 
				
			||||||
		ShowTemplate("post", w, map[string]interface{}{"user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": false, "notes": news.Notes, "category_id": news.Category_id})
 | 
							ShowTemplate("post", w, map[string]interface{}{"mode": "edit", "user": user, "flashes": flashes, "link": news.Url, "categories": categories.CategoriesTree, "title": news.Title, "popup": false, "notes": news.Notes, "category_id": news.Category_id, "id": news.Id()})
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		session.AddFlash("Updated news \""+news.Title+"\"", flash_info)
 | 
							session.AddFlash("Updated news \""+news.Title+"\"", flash_info)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,37 +2,20 @@
 | 
				
			||||||
<h2 class="list-heading">List</h2>
 | 
					<h2 class="list-heading">List</h2>
 | 
				
			||||||
{{template "flashes" .}}
 | 
					{{template "flashes" .}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="row">
 | 
					 | 
				
			||||||
<div class="col-xs-2">
 | 
					 | 
				
			||||||
    <a class="btn btn-lg btn-primary btn-block" href="{{template "launch-add" .}}">Add to transmet</a>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
<div class="col-xs-4"></div>
 | 
					 | 
				
			||||||
<div class="col-xs-4"></div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="col-xs-2">
 | 
					 | 
				
			||||||
    <button class="confirm-export btn btn-lg btn-primary btn-block" type="submit">Export</button>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="col-xs-6">
 | 
					 | 
				
			||||||
Drag this link to bookmark bar and click anywhere to add a link
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
<div class="col-xs-6">
 | 
					 | 
				
			||||||
Click this to mark the current queue of news items as exported (clearing them)
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="col-xs-12"> </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<textarea class="form-control" name="template" placeholder="Template"  rows="16" cols="80">{{.template}}</textarea>
 | 
					<textarea class="form-control" name="template" placeholder="Template"  rows="16" cols="80">{{.template}}</textarea>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="ros">
 | 
					<div class="row">
 | 
				
			||||||
<div class="col-xs-10"></div>
 | 
					    <div class="col-xs-2">
 | 
				
			||||||
<div class="col-xs-2"><b>{{.count}}</b> news items</div>
 | 
					        <button class="confirm-export btn btn-lg btn-primary btn-block" type="submit">Export</button>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="col-xs-6">
 | 
				
			||||||
 | 
					        Click this to mark the current queue of news items as exported (clearing them)
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="col-xs-2"></div>
 | 
				
			||||||
 | 
					    <div class="col-xs-2"><b>{{.count}}</b> news items</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{define "launch-add"}}
 | 
					 | 
				
			||||||
javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='{{.url}}add',l=d.location,e=encodeURIComponent,u=f+'?popup=1&url='+e(l.href)+'&title='+e(d.title);a=function(){if(!w.open(u,'t','toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=410'))l.href=u;};if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0); else a();void(0)
 | 
					 | 
				
			||||||
{{end}}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,17 @@
 | 
				
			||||||
{{define "body"}}
 | 
					{{define "body"}}
 | 
				
			||||||
    <h2 class="news-heading">News</h2>
 | 
					    <h2 class="news-heading">News</h2>
 | 
				
			||||||
    {{template "flashes" .}}
 | 
					    {{template "flashes" .}}
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					        <div class="col-xs-2">
 | 
				
			||||||
 | 
					            <a class="btn btn-lg btn-primary btn-block" href="{{template "launch-add" .}}">Add to transmet</a>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div class="col-xs-6">
 | 
				
			||||||
 | 
					            Drag this link to bookmark bar and click anywhere to add a link
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="col-xs-4"></div>
 | 
				
			||||||
 | 
					        <div class="col-xs-12"> </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
    <div class="news-posts">
 | 
					    <div class="news-posts">
 | 
				
			||||||
    {{range $news_post := .news}}
 | 
					    {{range $news_post := .news}}
 | 
				
			||||||
                {{template "row-news" dict "post" $news_post "categories" $.categories}}
 | 
					                {{template "row-news" dict "post" $news_post "categories" $.categories}}
 | 
				
			||||||
| 
						 | 
					@ -37,3 +48,8 @@
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
{{end}}
 | 
					{{end}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!-- JS for the launcher of the add bookmarklet -->
 | 
				
			||||||
 | 
					{{define "launch-add"}}
 | 
				
			||||||
 | 
					javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='{{.url}}add',l=d.location,e=encodeURIComponent,u=f+'?popup=1&url='+e(l.href)+'&title='+e(d.title);a=function(){if(!w.open(u,'t','toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=410'))l.href=u;};if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0); else a();void(0)
 | 
				
			||||||
 | 
					{{end}}
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
{{define "body"}}
 | 
					{{define "body"}}
 | 
				
			||||||
<h2 class="form-add-heading">Add Link</h2>
 | 
					<h2 class="form-add-heading">{{if eq .mode "add"}}Add Link{{else}}Edit News{{end}}</h2>
 | 
				
			||||||
{{template "flashes" .}}
 | 
					{{template "flashes" .}}
 | 
				
			||||||
<form class="form-add" action="/add" method="post" role="form" class="container col-form">
 | 
					<form class="form-add" action="{{if eq "add" .mode}}/add{{else}}/edit{{end}}" method="post" role="form" class="container col-form">
 | 
				
			||||||
    <input type="hidden" name="popup" value="{{.popup}}" />
 | 
					    <input type="hidden" name="popup" value="{{.popup}}" />
 | 
				
			||||||
    <input type="hidden" name="id" value="{{.id}}" />
 | 
					    <input type="hidden" name="id" value="{{.id}}" />
 | 
				
			||||||
<div class="row">
 | 
					<div class="row">
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@
 | 
				
			||||||
        </select>  
 | 
					        </select>  
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="col-xs-2">Notes:</div><div class="col-xs-10"><textarea class="form-control" name="notes" placeholder="Notes"  rows="5" cols="80">{{.notes}}</textarea></div>
 | 
					    <div class="col-xs-2">Notes:</div><div class="col-xs-10"><textarea class="form-control" name="notes" placeholder="Notes"  rows="5" cols="80">{{.notes}}</textarea></div>
 | 
				
			||||||
    <div class="col-xs-2"></div><div class="col-xs-10"><input class="add-submit btn btn-lg btn-primary btn-block" type="submit" value="Add Link" /></div>
 | 
					    <div class="col-xs-2"></div><div class="col-xs-10"><input class="add-submit btn btn-lg btn-primary btn-block" type="submit" value="{{if eq .mode "add"}}Add Link{{else}}Commit Edit{{end}}" /></div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue