Browse Source

auto height meeting editing with textarea

master
Patrick Peng Sun 9 years ago
parent
commit
b5adad4754
9 changed files with 62 additions and 19 deletions
  1. +1
    -1
      crmMeeting_test.go
  2. +11
    -0
      crmdMeeting.go
  3. +0
    -10
      editEvent.go
  4. +40
    -0
      editMeeting.go
  5. +2
    -2
      livecast.go
  6. +2
    -2
      main.go
  7. +3
    -1
      spa/assets/js/spa.js
  8. +2
    -2
      spa/editmeeting.html
  9. +1
    -1
      spa/pinegrow.json

+ 1
- 1
crmMeeting_test.go View File

AssertEqual(t, newMeeting.Status, "Planned", "meeting status is planned") AssertEqual(t, newMeeting.Status, "Planned", "meeting status is planned")


AssertEqual(t, newMeeting.ParentName, "", "parentName not expected to be updated") 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") AssertEqual(t, err, nil, "re read saved meeting should be ok")
anotherRead, ok := entity.(crmdMeeting) anotherRead, ok := entity.(crmdMeeting)
AssertEqual(t, ok, true, "reading entity shold be crmdMeeting") AssertEqual(t, ok, true, "reading entity shold be crmdMeeting")

+ 11
- 0
crmdMeeting.go View File

//cover //cover
CoverID string `json:"coverId,omitempty"` CoverID string `json:"coverId,omitempty"`
CoverName string `json:"coverName,omitempty"` CoverName string `json:"coverName,omitempty"`

//for web spa operation
spaErrMsg string
} }


func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) { func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) {
} }
return return
} }

func (m *crmdMeeting) setSpaErr(e string) {
m.spaErrMsg = e
}

func (m crmdMeeting) ErrorMessage() string {
return m.spaErrMsg
}

+ 0
- 10
editEvent.go View File

package main

import (
"fmt"
"net/http"
)

func editMeetingHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "ok meeting handled")
}

+ 40
- 0
editMeeting.go View File

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())
}
}

+ 2
- 2
livecast.go View File

Description string `json:"description,omitempty"` Description string `json:"description,omitempty"`
} }


func liveCastHandler(w http.ResponseWriter, r *http.Request) {
func spaLiveCastHandler(w http.ResponseWriter, r *http.Request) {
castID := "" castID := ""
q, err := url.ParseQuery(r.URL.RawQuery) q, err := url.ParseQuery(r.URL.RawQuery)
if err == nil { if err == nil {
} }


//castID = "5967812b87eb10564" //castID = "5967812b87eb10564"
entity, err := crmFindEntityByID("Livecast", castID)
entity, err := crmGetEntity("Livecast", castID)
if err != nil || entity == nil { if err != nil || entity == nil {
response404Handler(w) response404Handler(w)
return return

+ 2
- 2
main.go View File

http.HandleFunc("/crmpixel.png", crmpixel) //tracking pixel. http.HandleFunc("/crmpixel.png", crmpixel) //tracking pixel.
http.HandleFunc("/crmcache", crmcache) http.HandleFunc("/crmcache", crmcache)
http.HandleFunc("/spa/editprofile", spaEditProfile) 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) http.ListenAndServe(":65500", nil)
} }



+ 3
- 1
spa/assets/js/spa.js View File

} }


$(document).ready(function() { $(document).ready(function() {
console.log("ready");
$('.datepicker').pickadate({ $('.datepicker').pickadate({
format: 'mm/dd/yyyy', format: 'mm/dd/yyyy',
selectMonths: true, // Creates a dropdown to control month selectMonths: true, // Creates a dropdown to control month
$('#modalerr').modal('open'); $('#modalerr').modal('open');
} }
$("textarea").height( $("textarea")[0].scrollHeight );
console.log("spa ready");
}); });


$("form").submit(function(event){ $("form").submit(function(event){

spa/newevent.html → spa/editmeeting.html View File

<div class="row"> <div class="row">
<div class="input-field col s12"> <div class="input-field col s12">
<i class="mdi-action-loyalty small prefix"></i> <i class="mdi-action-loyalty small prefix"></i>
<input name="meetingname" id="meetingname" type="text" class="validate">
<input name="meetingname" id="meetingname" type="text" class="validate" value="{{.Name}}">
<label for="meetingname"> 活动主题/标题 (30字以内) </label> <label for="meetingname"> 活动主题/标题 (30字以内) </label>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="input-field col s12"> <div class="input-field col s12">
<i class="mdi-action-list small prefix"></i> <i class="mdi-action-list small prefix"></i>
<textarea id="description" name="description" class="materialize-textarea"></textarea>
<textarea id="description" name="description" class="materialize-textarea">{{.Description}}</textarea>
<label for="description"> <label for="description">
活动描述 200字左右 活动描述 200字左右
</label> </label>

+ 1
- 1
spa/pinegrow.json View 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}},"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"}
{"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"}

Loading…
Cancel
Save