Example #1
0
func Review(w http.ResponseWriter, r *http.Request, a app.App) {

	bar, _ := strconv.Atoi(r.URL.Query().Get("save"))
	foo, _ := b64.StdEncoding.DecodeString(r.URL.Query().Get("id"))

	id := string(foo)

	qq := a.Env().Db.Find(bson.M{"resource": id})
	cnt, _ := qq.Count()
	rec := schema.Record{}
	qq.Iter().Next(&rec)
	if cnt != 1 || !((rec.Parsed == 0 && bar == 0) || (rec.Parsed == 0 && bar == 1)) {
		fmt.Fprintf(w, "Wrong flat id or parsed state provided: %d, %d", cnt, rec.Parsed)
		return
	}

	fmt.Fprintf(w, `<html><head>
            <script>
                window.onunload = refreshParent;
                function refreshParent() {
                    window.opener.location.reload();
                }
                function continueExecution() {
                    window.close();
                   
                }
                function closeSelf(f) {
                    f.submit();
                    setTimeout(continueExecution, 1000);
                }                
            </script>
            </head><body>`)
	if bar == 1 {
		oldmeta := schema.WWWRecord{}
		err := json.Unmarshal([]byte(rec.Meta), &oldmeta)
		if err != nil {
			log.Panic(err)
		}

		meta := schema.MetaRecord{}

		meta.SavedHTMLName = oldmeta.SavedHTMLName
		meta.ScreenshotName = oldmeta.ScreenshotName
		meta.SlackTS = oldmeta.SlackTS
		meta.SlackCN = oldmeta.SlackCN
		meta.ReviewTime = time.Now().Format("Jan 2, 2006 at 3:04pm (MST)")

		if len(meta.SlackCN) < 3 {
			log.Panic("no meta")
		}

		meta.TimeToOffice = r.URL.Query().Get("tto")
		meta.Rent = r.URL.Query().Get("rent")
		meta.Address = r.URL.Query().Get("address")
		meta.Good = (r.URL.Query().Get("valid") == "true")

		b, _ := json.Marshal(meta)

		rec.Meta = string(b)
		rec.Parsed = 1
		fmt.Printf("Debug: stored time '%s'\n", rec.Tm)

		//		app.Env().Db.Update(bson.M{"resource": id}, rec)

		fmt.Fprintf(w, "<script>window.close();</script></body></html>")
	} else {
		w.Header().Set("Content-Type", "text/html")
		meta := schema.WWWRecord{}
		json.Unmarshal([]byte(rec.Meta), &meta)

		fmt.Fprintf(w, `(object screenshot and editor for <a href="%v">%v</a> go here)<br />
            Found at time: `+rec.Tm+`<br />
            Meta raw: <i>`+html.EscapeString(rec.Meta)+`</i><br />
            <FORM METHOD="GET" ACTION="/review" onsubmit="closeSelf(this);">
                <input type="hidden" name="save" value="1" />
                <input type="hidden" name="id" value="`+r.URL.Query().Get("id")+`" />
                TimeToOffice minutes: <input type="text" name="tto" /><br />
                Rent (kr): <input type="text" name="rent" /><br />
                Address: <input type="text" name="address" /><br />
                Valid content (no daily rent, weekly rent, Gothia cup/Summer specials): <input type="checkbox" name="valid" value="true" />
                <br /><hr /><input type="submit" value="SEND" />
            </FORM><hr /><br /><br /><img src="file/`+meta.ScreenshotName+`"/>
            `, rec.Link, rec.Link)

		fmt.Fprintf(w, "</body></html>")
	}
}