當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Wrapper.Serve方法代碼示例

本文整理匯總了Golang中github.com/mongolar/mongolar/wrapper.Wrapper.Serve方法的典型用法代碼示例。如果您正苦於以下問題:Golang Wrapper.Serve方法的具體用法?Golang Wrapper.Serve怎麽用?Golang Wrapper.Serve使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/mongolar/mongolar/wrapper.Wrapper的用法示例。


在下文中一共展示了Wrapper.Serve方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: DeleteElement

// Controller to delete an element and all references to the element
func DeleteElement(w *wrapper.Wrapper) {
	id := w.APIParams[0]
	err := elements.Delete(id, w)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to delete %s : %s", id, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to delete element.", "Error", w)
	}
	err = elements.WrapperDeleteAllChild(id, w)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to delete reference to element %s : %s", id, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to delete all references to your element.", "Error", w)
	}
	err = elements.SlugDeleteAllChild(id, w)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to delete reference to element %s : %s", id, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to delete all references to your element.", "Error", w)
	}
	err = paths.DeleteAllChild(id, w)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to delete reference to %s : %s", id, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to delete all references to your element.", "Error", w)
	}
	dynamic := services.Dynamic{
		Target:   id,
		Template: "default.html",
	}
	services.SetDynamic(dynamic, w)
	services.AddMessage("Successfully deleted element", "Success", w)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:36,代碼來源:delete.go

示例2: ContentTypeEditorSubmit

// Controller to handle submission for content type change form.
func ContentTypeEditorSubmit(w *wrapper.Wrapper) {
	elementid := w.APIParams[0]
	e, err := elements.LoadContentElement(elementid, w)
	if err != nil {
		errmessage := fmt.Sprintf("Element not found to edit for %s by %s", elementid, w.Request.Host)
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("This element was not found", "Error", w)
		w.Serve()
		return
	}
	type Post struct {
		Type string `json:"type"`
	}
	var post Post
	err = form.GetValidFormData(w, &post)
	if err != nil {
		return
	}
	e.ContentValues.Type = post.Type
	err = e.Save(w)
	if err != nil {
		errmessage := fmt.Sprintf("Element not saved %s by %s", w.APIParams[0], w.Request.Host)
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to save element.", "Error", w)
	} else {
		services.AddMessage("Element content type saved.", "Success", w)
	}
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:31,代碼來源:content.go

示例3: ContentEditorSubmit

// Controller to handle content editor submission.
func ContentEditorSubmit(w *wrapper.Wrapper) {
	elementid := w.APIParams[0]
	e, err := elements.LoadContentElement(elementid, w)
	post := make(map[string]interface{})
	err = form.GetValidFormData(w, &post)
	if err != nil {
		return
	}
	e.ContentValues.Content = post
	delete(e.ContentValues.Content, "mongolartype")
	delete(e.ContentValues.Content, "mongolarid")
	delete(e.ContentValues.Content, "form_id")
	err = e.Save(w)
	if err != nil {
		errmessage := fmt.Sprintf("Element not saved %s by %s", w.APIParams[0], w.Request.Host)
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to save element.", "Error", w)
		w.Serve()
		return
	}
	services.AddMessage("Element content saved.", "Success", w)
	dynamic := services.Dynamic{
		Target:     elementid,
		Id:         elementid,
		Controller: "admin/element",
		Template:   "admin/element.html",
	}
	services.SetDynamic(dynamic, w)
	w.Serve()
	return

}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:33,代碼來源:content.go

示例4: PathEditorForm

// Controller to present path editor form
func PathEditorForm(w *wrapper.Wrapper) {
	pathid := w.APIParams[0]
	f := form.NewForm()
	f.AddText("title", "text").AddLabel("Title").Required()
	f.AddText("path", "text").AddLabel("Path").Required()
	f.AddText("template", "text").AddLabel("Template").Required()
	f.AddCheckBox("wildcard").AddLabel("Wildcard")
	ops := []map[string]string{
		map[string]string{"name": "published", "value": "published"},
		map[string]string{"name": "unpublished", "value": "unpublished"},
	}
	f.AddRadio("status", ops).AddLabel("Status").Required()
	f.AddText("id", "text").Hidden()
	var p paths.Path
	var err error
	if pathid != "new" {
		p, err = paths.LoadPath(pathid, w)
		if err != nil {
			errmessage := fmt.Sprintf("Could not retrieve path %s by %s: %s", w.APIParams[0], w.Request.Host, err.Error())
			w.SiteConfig.Logger.Error(errmessage)
			services.AddMessage("Error retrieving path information.", "Error", w)
			w.Serve()
			return
		}
	} else {
		p = paths.NewPath()
	}
	f.FormData = p
	f.Register(w)
	w.SetTemplate("admin/form.html")
	w.SetPayload("form", f)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:35,代碼來源:path.go

示例5: AddExistingChild

// Controller for adding existing element to wrapper element or path.
func AddExistingChild(w *wrapper.Wrapper) {
	var parenttype string
	if len(w.APIParams) > 1 {
		parenttype = w.APIParams[0]
	} else {
		http.Error(w.Writer, "Forbidden", 403)
		w.Serve()
		return
	}
	if w.Request.Method != "POST" {
		AddExistingChildForm(w)
		return
	}
	w.Shift()
	switch parenttype {
	case "wrapper":
		AddExistingWrapperSubmit(w)
		return
	case "paths":
		AddExistingPathSubmit(w)
		return
	default:
		http.Error(w.Writer, "Forbidden", 403)
		w.Serve()
	}
	return
}
開發者ID:ultimatums,項目名稱:mongolar,代碼行數:28,代碼來源:children.go

示例6: AdminPaths

// Controller to list all paths
func AdminPaths(w *wrapper.Wrapper) {
	pl, err := paths.PathList(w)
	if err != nil {
		services.AddMessage("There was an error retrieving your site paths", "Error", w)
		errmessage := fmt.Sprintf("Error getting path list: %s", err.Error())
		w.SiteConfig.Logger.Error(errmessage)
	} else {
		w.SetContent(pl)
	}
	w.Serve()
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:12,代碼來源:path.go

示例7: PathEditor

// Controller for editing paths
func PathEditor(w *wrapper.Wrapper) {
	if len(w.APIParams) == 0 {
		http.Error(w.Writer, "Forbidden", 403)
		w.Serve()
		return
	}
	if w.Request.Method != "POST" {
		PathEditorForm(w)
		return
	}
	PathEditorSubmit(w)
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:14,代碼來源:path.go

示例8: EditContentType

func EditContentType(w *wrapper.Wrapper) {
	if len(w.APIParams) < 1 {
		http.Error(w.Writer, "Forbidden", 403)
		w.Serve()
		return
	}
	if w.Request.Method != "POST" {
		EditContentTypeForm(w)
		return
	}
	EditContentTypeSubmit(w)
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:13,代碼來源:contenttype.go

示例9: ContentEditorForm

// Controller for content editing form.
func ContentEditorForm(w *wrapper.Wrapper) {
	elementid := w.APIParams[0]
	e, err := elements.LoadContentElement(elementid, w)
	if err != nil {
		errmessage := fmt.Sprintf("Element not found to edit for %s by %s", elementid, w.Request.Host)
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("This element was not found", "Error", w)
		w.Serve()
		return
	}
	if e.ContentValues.Type == "" {
		errmessage := fmt.Sprintf("No content type set for %s", elementid, w.Request.Host)
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("This element doesn't have a content type set.  Set a content type to edit values.", "Error", w)
		w.Serve()
		return
	}
	var ct contenttypes.ContentType
	ct, err = contenttypes.LoadContentTypeT(e.ContentValues.Type, w)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to find content type %s : %s", e.ContentValues.Type, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to find content type.", "Error", w)
		w.Serve()
		return
	}
	f := form.NewForm()
	f.Fields = ct.Form
	f.FormData = e.ContentValues.Content
	f.Register(w)
	w.SetTemplate("admin/form.html")
	w.SetPayload("form", f)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:36,代碼來源:content.go

示例10: EditContentTypeForm

func EditContentTypeForm(w *wrapper.Wrapper) {
	f := form.NewForm()
	ct := new(ContentType)
	if w.APIParams[0] != "new" {
		c := w.DbSession.DB("").C("content_types")
		i := bson.M{"_id": bson.ObjectIdHex(w.APIParams[0])}
		err := c.Find(i).One(ct)
		if err != nil {
			errmessage := fmt.Sprintf("Content Type not found %s : %s", w.APIParams[0], err.Error())
			w.SiteConfig.Logger.Error(errmessage)
			services.AddMessage("Your content types was not found ", "Error", w)
			w.Serve()
			return
		}
		var elements []map[string]interface{}
		for _, field := range ct.Form {
			element := make(map[string]interface{})
			element["type"] = field.Type
			element["key"] = field.Key
			element["label"] = field.TemplateOptions.Label
			element["placeholder"] = field.TemplateOptions.Placeholder
			element["rows"] = field.TemplateOptions.Rows
			element["cols"] = field.TemplateOptions.Cols
			element["options"] = ""
			for _, opt := range field.TemplateOptions.Options {
				element["options"] = fmt.Sprintf("%s%s|%s\n", element["options"], opt["name"], opt["value"])
			}
			elements = append(elements, element)
		}
		data := make(map[string]interface{})
		data["elements"] = elements
		data["content_type"] = ct.Type
		f.FormData = data
	} else {
		data := make(map[string]interface{})
		fd := make([]map[string]string, 0)
		data["elements"] = fd
		data["content_type"] = ""
		f.FormData = data
	}
	f.AddText("content_type", "text").AddLabel("Content Type Name")
	f.AddRepeatSection("elements", "Add another field", FieldFormGroup())
	f.Register(w)
	w.SetPayload("form", f)
	w.SetTemplate("admin/form.html")
	w.Serve()
	return

}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:49,代碼來源:contenttype.go

示例11: GetAllContentTypes

func GetAllContentTypes(w *wrapper.Wrapper) {
	c := w.DbSession.DB("").C("content_types")
	var cts []ContentType
	err := c.Find(nil).Limit(50).Iter().All(&cts)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to retrieve a list of content types.")
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Unable to retrieve a list of elements.", "Error", w)
		w.Serve()
		return
	}
	w.SetPayload("content_types", cts)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:15,代碼來源:contenttype.go

示例12: AllElements

// Controller to list all elements
func AllElements(w *wrapper.Wrapper) {
	c := w.DbSession.DB("").C("elements")
	var es []elements.Element
	err := c.Find(nil).Limit(50).Iter().All(&es)
	if err != nil {
		errmessage := fmt.Sprintf("Unable to retrieve a list of all elements: %s", err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("There was a problem retrieving the element list.", "Error", w)
		w.Serve()
		return
	}
	w.SetPayload("elements", es)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:16,代碼來源:element.go

示例13: GetValidFormData

func GetValidFormData(w *wrapper.Wrapper, post interface{}) error {
	p := make([]byte, w.Request.ContentLength)
	_, err := w.Request.Body.Read(p)
	if err != nil {
		errmessage := fmt.Sprintf("Error processing post values %s: %s", w.Request.Host, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("There was an issue processing your form.", "Error", w)
		w.Serve()
		return errors.New("Could not marshall Post values")
	}
	data := make(map[string]interface{})
	err = json.Unmarshal(p, &data)
	if err != nil {
		errmessage := fmt.Sprintf("Error processing post values %s: %s", w.Request.Host, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("There was an issue processing your form.", "Error", w)
		w.Serve()
		return errors.New("Could not marshall Post values")
	}
	register, reg_err := GetFormRegister(data["form_id"].(string), w)
	if reg_err != nil {
		errmessage := fmt.Sprintf("Invalid or expired form %s: %s", w.Request.Host, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Your form was expired, please try again.", "Error", w)
		w.Serve()
		return errors.New("Inalid or expired form")
	}
	err = json.Unmarshal(p, post)
	if err != nil {
		errmessage := fmt.Sprintf("Error processing post values %s: %s", w.Request.Host, err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("There was an issue processing your form.", "Error", w)
		w.Serve()
		return errors.New("Could not marshall Post values")
	}
	missing := register.ValidateRequired(data)
	if len(missing) > 0 {
		for _, label := range missing {

			message := fmt.Sprintf("%s is required.", label)
			services.AddMessage(message, "Error", w)
		}
		w.Serve()
		return errors.New("missing fields")
	}
	return nil

}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:48,代碼來源:formregister.go

示例14: GetContentType

func GetContentType(w *wrapper.Wrapper) {
	c := w.DbSession.DB("").C("content_types")
	i := bson.M{"_id": bson.ObjectIdHex(w.APIParams[0])}
	var ct ContentType
	err := c.Find(i).One(&ct)
	if err != nil {
		errmessage := fmt.Sprintf("Content Type not found %s : %s", w.APIParams[0], err.Error())
		w.SiteConfig.Logger.Error(errmessage)
		services.AddMessage("Your content types was not found.", "Error", w)
		w.Serve()
		return
	}
	w.SetPayload("content_type", ct)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:16,代碼來源:contenttype.go

示例15: LoginUrls

func (lo *LoginMap) LoginUrls(w *wrapper.Wrapper) {
	us := make(map[string]map[string]string)
	oauthlogins := make(map[string]map[string]string)
	w.SiteConfig.RawConfig.MarshalKey("OAuthLogins", &oauthlogins)
	for k, l := range oauthlogins {
		c := "http://" + w.Request.Host + "/" + w.SiteConfig.APIEndPoint + "/login/callback/" + k
		login := lo.Logins[k]
		login.SetConfig(l, c, lo.State)
		u := login.GetUrl()
		m := map[string]string{"url": u, "login_text": l["login_text"]}
		us[k] = m
	}
	w.SetPayload("login_links", us)
	w.Serve()
	return
}
開發者ID:bdatchar,項目名稱:mongolar,代碼行數:16,代碼來源:oauthlogin.go


注:本文中的github.com/mongolar/mongolar/wrapper.Wrapper.Serve方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。