func (ctl *ConfigurationController) postEditConfigurationAction(c *gin.Context) {

	appId := c.Param("app_id")
	configId := c.Param("config_id")

	application := ctl.getApplication(c, appId)
	if application == nil {
		return
	}

	config := ctl.getConfig(c, application, configId)
	if config == nil {
		return
	}

	var form models.ConfigUpdateForm
	if err := c.Bind(&form); err != nil {
		c.AbortWithStatus(http.StatusBadRequest)
		return
	}

	// Workaround for bool field, because http form only send string
	// The value is "on" for true, and "" for false
	form.Enabled = c.PostForm("enabled") == "on"

	if err := form.Validate(); err != nil {
		c.HTML(http.StatusOK, "configuration_edit.html", map[string]interface{}{
			"errors":      err.Errors,
			"application": application,
			"form":        form,
		})
		return
	}

	config.Update(&form)

	if err := models.ConfigMapper.Update(config); err != nil {
		panic(err)
	}

	c.Redirect(http.StatusFound, "/application/show/"+application.Name)
}