From b5adad4754b4da7b80c976561ebbb9ffd3aab200 Mon Sep 17 00:00:00 2001 From: Patrick Peng Sun Date: Sat, 15 Jul 2017 21:53:28 +1000 Subject: [PATCH] auto height meeting editing with textarea --- crmMeeting_test.go | 2 +- crmdMeeting.go | 11 +++++++ editEvent.go | 10 ------- editMeeting.go | 40 +++++++++++++++++++++++++ livecast.go | 4 +-- main.go | 4 +-- spa/assets/js/spa.js | 4 ++- spa/{newevent.html => editmeeting.html} | 4 +-- spa/pinegrow.json | 2 +- 9 files changed, 62 insertions(+), 19 deletions(-) delete mode 100644 editEvent.go create mode 100644 editMeeting.go rename spa/{newevent.html => editmeeting.html} (98%) diff --git a/crmMeeting_test.go b/crmMeeting_test.go index 5d4182a..4eadf3d 100644 --- a/crmMeeting_test.go +++ b/crmMeeting_test.go @@ -214,7 +214,7 @@ func TestCreateMeeting(t *testing.T) { AssertEqual(t, newMeeting.Status, "Planned", "meeting status is planned") AssertEqual(t, newMeeting.ParentName, "", "parentName not expected to be updated") - entity, err := crmFindEntityByID("Meeting", newMeeting.ID) + entity, err := crmGetEntity("Meeting", newMeeting.ID) AssertEqual(t, err, nil, "re read saved meeting should be ok") anotherRead, ok := entity.(crmdMeeting) AssertEqual(t, ok, true, "reading entity shold be crmdMeeting") diff --git a/crmdMeeting.go b/crmdMeeting.go index a38fe07..2502e5e 100644 --- a/crmdMeeting.go +++ b/crmdMeeting.go @@ -41,6 +41,9 @@ type crmdMeeting struct { //cover CoverID string `json:"coverId,omitempty"` CoverName string `json:"coverName,omitempty"` + + //for web spa operation + spaErrMsg string } func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) { @@ -67,3 +70,11 @@ func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) { } return } + +func (m *crmdMeeting) setSpaErr(e string) { + m.spaErrMsg = e +} + +func (m crmdMeeting) ErrorMessage() string { + return m.spaErrMsg +} diff --git a/editEvent.go b/editEvent.go deleted file mode 100644 index 5fe5e02..0000000 --- a/editEvent.go +++ /dev/null @@ -1,10 +0,0 @@ -package main - -import ( - "fmt" - "net/http" -) - -func editMeetingHandler(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "ok meeting handled") -} diff --git a/editMeeting.go b/editMeeting.go new file mode 100644 index 0000000..e2cdc36 --- /dev/null +++ b/editMeeting.go @@ -0,0 +1,40 @@ +package main + +import ( + "fmt" + "html/template" + "io/ioutil" + "log" + "net/http" +) + +func spaEditMeetingHandler(w http.ResponseWriter, r *http.Request) { + //fmt.Fprintf(w, "ok meeting handled") + e, err := crmGetEntity("Meeting", "595d064a6e372fc1f") + log.Println(err) + meeting, ok := e.(crmdMeeting) + log.Println(ok) + spaEditMeetingPopulateMeetingInfo(w, meeting) +} + +func spaEditMeetingPopulateMeetingInfo(w http.ResponseWriter, meeting crmdMeeting) { + tTest := template.New("spaEditMeeting") + str, err := ioutil.ReadFile("spa/editmeeting.html") + if err != nil { + w.WriteHeader(http.StatusInternalServerError) + fmt.Fprintf(w, "Formating information not available.") + return + } + tTest, err = tTest.Parse(string(str)) + if err != nil { + w.WriteHeader(http.StatusInternalServerError) + fmt.Fprintf(w, "Formating instruction invalid") + return + } + err = tTest.Execute(w, meeting) + if err != nil { + w.WriteHeader(http.StatusInternalServerError) + fmt.Fprintf(w, "Monkey runs into our computer room...") + log.Println("ERROR: Template execution on spa/Edit, failed \n" + err.Error()) + } +} diff --git a/livecast.go b/livecast.go index e33112f..6c6674f 100644 --- a/livecast.go +++ b/livecast.go @@ -15,7 +15,7 @@ type crmdLiveCast struct { Description string `json:"description,omitempty"` } -func liveCastHandler(w http.ResponseWriter, r *http.Request) { +func spaLiveCastHandler(w http.ResponseWriter, r *http.Request) { castID := "" q, err := url.ParseQuery(r.URL.RawQuery) if err == nil { @@ -31,7 +31,7 @@ func liveCastHandler(w http.ResponseWriter, r *http.Request) { } //castID = "5967812b87eb10564" - entity, err := crmFindEntityByID("Livecast", castID) + entity, err := crmGetEntity("Livecast", castID) if err != nil || entity == nil { response404Handler(w) return diff --git a/main.go b/main.go index e485d49..a30383a 100644 --- a/main.go +++ b/main.go @@ -65,8 +65,8 @@ func setupHTTPHandler() { http.HandleFunc("/crmpixel.png", crmpixel) //tracking pixel. http.HandleFunc("/crmcache", crmcache) http.HandleFunc("/spa/editprofile", spaEditProfile) - http.HandleFunc("/spa/livecast", liveCastHandler) - http.HandleFunc("/spa/editmeeting", editMeetingHandler) + http.HandleFunc("/spa/livecast", spaLiveCastHandler) + http.HandleFunc("/spa/editmeeting", spaEditMeetingHandler) http.ListenAndServe(":65500", nil) } diff --git a/spa/assets/js/spa.js b/spa/assets/js/spa.js index b77892e..98b6c89 100644 --- a/spa/assets/js/spa.js +++ b/spa/assets/js/spa.js @@ -36,7 +36,7 @@ function closeWechatBrowser(){ } $(document).ready(function() { - console.log("ready"); + $('.datepicker').pickadate({ format: 'mm/dd/yyyy', selectMonths: true, // Creates a dropdown to control month @@ -58,6 +58,8 @@ $(document).ready(function() { $('#modalerr').modal('open'); } + $("textarea").height( $("textarea")[0].scrollHeight ); + console.log("spa ready"); }); $("form").submit(function(event){ diff --git a/spa/newevent.html b/spa/editmeeting.html similarity index 98% rename from spa/newevent.html rename to spa/editmeeting.html index 0c6d4fe..856ea38 100644 --- a/spa/newevent.html +++ b/spa/editmeeting.html @@ -30,14 +30,14 @@
- +
- + diff --git a/spa/pinegrow.json b/spa/pinegrow.json index 22f71ca..ef74c9f 100644 --- a/spa/pinegrow.json +++ b/spa/pinegrow.json @@ -1 +1 @@ -{"files":{"edit.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.asset.manager","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":896},"404.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.asset.manager","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"livecast.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.project.items","pg.asset.manager","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"newEvents.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.project.items","pg.asset.manager","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"newevent.html":{"frameworks":["spa","pg.insight.events","pg.asset.manager","pg.code-validator","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":1024}},"breakpoints":["28.875em","33.875em","35.875em","38.875em","40.125em","46.75em","360px","390px","420px","450px","480px","510px","540px","570px","601px","630px","660px","690px","720px","750px","780px","810px","840px","870px","900px","930px","960px","993px","1200px"],"frameworks":["spa","pg.insight.events","pg.asset.manager","pg.code-validator","pg.project.items","mat0.97.5","pg.html","pg.components"],"template_framework_id":"materialize"} \ No newline at end of file +{"files":{"edit.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.asset.manager","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":896},"404.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.asset.manager","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"livecast.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.project.items","pg.asset.manager","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"newEvents.html":{"frameworks":["spa","pg.insight.events","pg.code-validator","pg.project.items","pg.asset.manager","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"newevent.html":{"frameworks":["spa","pg.insight.events","pg.asset.manager","pg.code-validator","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":1024},"editmeeting.html":{"frameworks":["spa","pg.insight.events","pg.asset.manager","pg.code-validator","pg.project.items","mat0.97.5","pg.html","pg.components"],"last_page_width":1024}},"breakpoints":["28.875em","33.875em","35.875em","38.875em","40.125em","46.75em","360px","390px","420px","450px","480px","510px","540px","570px","601px","630px","660px","690px","720px","750px","780px","810px","840px","870px","900px","930px","960px","993px","1200px"],"frameworks":["spa","pg.insight.events","pg.asset.manager","pg.code-validator","pg.project.items","mat0.97.5","pg.html","pg.components"],"template_framework_id":"materialize"} \ No newline at end of file