func (wc workerController) AddJob(context *admin.Context) { jobResource := wc.Worker.JobResource result := jobResource.NewStruct().(QorJobInterface) job := wc.Worker.GetRegisteredJob(context.Request.Form.Get("job_name")) result.SetJob(job) if !job.HasPermission(roles.Create, context.Context) { context.AddError(errors.New("don't have permission to run job")) } if context.AddError(jobResource.Decode(context.Context, result)); !context.HasError() { // ensure job name is correct result.SetJob(job) context.AddError(jobResource.CallSave(result, context.Context)) context.AddError(wc.Worker.AddJob(result)) } if context.HasError() { responder.With("html", func() { context.Writer.WriteHeader(422) context.Execute("edit", result) }).With("json", func() { context.Writer.WriteHeader(422) context.JSON("index", map[string]interface{}{"errors": context.GetErrors()}) }).Respond(context.Request) return } context.Flash(string(context.Admin.T(context.Context, "qor_worker.form.successfully_created", "{{.Name}} was successfully created", jobResource)), "success") http.Redirect(context.Writer, context.Request, context.Request.URL.Path, http.StatusFound) }
func (wc workerController) Update(context *admin.Context) { if job, err := wc.GetJob(context.ResourceID); err == nil { if job.GetStatus() == JobStatusScheduled || job.GetStatus() == JobStatusNew { if job.GetJob().HasPermission(roles.Update, context.Context) { if context.AddError(wc.Worker.JobResource.Decode(context.Context, job)); !context.HasError() { context.AddError(wc.Worker.JobResource.CallSave(job, context.Context)) context.AddError(wc.Worker.AddJob(job)) } if !context.HasError() { context.Flash(string(context.Admin.T(context.Context, "qor_worker.form.successfully_updated", "{{.Name}} was successfully updated", wc.Worker.JobResource)), "success") } context.Execute("edit", job) return } } context.AddError(errors.New("not allowed to update this job")) } else { context.AddError(err) } http.Redirect(context.Writer, context.Request, context.Request.URL.Path, http.StatusFound) }
func (ctrl controller) UpdateActivity(context *admin.Context) { c := context.Admin.NewContext(context.Writer, context.Request) c.ResourceID = ctrl.ActivityResource.GetPrimaryValue(context.Request) c.Resource = ctrl.ActivityResource c.Searcher = &admin.Searcher{Context: c} result, err := c.FindOne() context.AddError(err) if !context.HasError() { if context.AddError(c.Resource.Decode(c.Context, result)); !context.HasError() { context.AddError(context.Resource.CallSave(result, c.Context)) } } redirectTo := context.Request.Referer() if context.HasError() { context.Writer.WriteHeader(admin.HTTPUnprocessableEntity) responder.With("html", func() { http.Redirect(context.Writer, context.Request, redirectTo, http.StatusFound) }).With("json", func() { context.JSON("edit", map[string]interface{}{"errors": context.GetErrors()}) }).Respond(context.Request) } else { responder.With("html", func() { context.Flash(string(context.Admin.T(context.Context, "activity.successfully_updated", "Activity was successfully updated")), "success") http.Redirect(context.Writer, context.Request, redirectTo, http.StatusFound) }).With("json", func() { c.JSON("show", result) }).Respond(context.Request) } }
func (ctrl controller) CreateActivity(context *admin.Context) { result, err := context.FindOne() activityResource := ctrl.ActivityResource newActivity := &QorActivity{} if err == nil { if context.AddError(activityResource.Decode(context.Context, newActivity)); !context.HasError() { context.AddError(CreateActivity(context, newActivity, result)) } } context.AddError(err) redirectTo := context.Request.Referer() if context.HasError() { responder.With("html", func() { context.Flash(context.Error(), "error") http.Redirect(context.Writer, context.Request, redirectTo, http.StatusFound) }).With("json", func() { context.JSON("edit", map[string]interface{}{"errors": context.GetErrors()}) }).Respond(context.Request) } else { responder.With("html", func() { context.Flash(string(context.Admin.T(context.Context, "activity.successfully_created", "Activity was successfully created")), "success") http.Redirect(context.Writer, context.Request, redirectTo, http.StatusFound) }).With("json", func() { context.Resource = activityResource context.JSON("show", newActivity) }).Respond(context.Request) } }
func (wc workerController) KillJob(context *admin.Context) { if qorJob, err := wc.Worker.GetJob(context.ResourceID); err == nil { if context.AddError(wc.Worker.KillJob(qorJob.GetJobID())); !context.HasError() { context.Flash(string(context.Admin.T(context.Context, "qor_worker.form.successfully_killed", "{{.Name}} was successfully killed", wc.JobResource)), "success") } else { context.Flash(string(context.Admin.T(context.Context, "qor_worker.form.failed_to_kill", "Failed to kill job {{.Name}}", wc.JobResource)), "error") } } http.Redirect(context.Writer, context.Request, context.Request.URL.Path, http.StatusFound) }