Update and deletion of schedules
parent
c68307500c
commit
0bb7248dd2
|
@ -1,5 +1,6 @@
|
|||
controller = ($scope, Data) ->
|
||||
nope = (e) -> alert 'Doh!'; console.error e
|
||||
$scope.clear = -> $scope.form = {}
|
||||
$scope.repeats = [{show: 'Minutes', value: 'minutely'},
|
||||
{show: 'Hours', value: 'hourly'},
|
||||
{show: 'Days', value: 'daily'},
|
||||
|
@ -18,32 +19,20 @@ controller = ($scope, Data) ->
|
|||
new Date(s.start_time).toDateString().substring(4, 10)
|
||||
$scope.prettyDates = pretty
|
||||
console.log $scope.prettyDates
|
||||
|
||||
$scope.submit = ->
|
||||
Data
|
||||
.create('schedule', $scope.jsonPayload())
|
||||
.create('schedule', $scope.form)
|
||||
.catch(nope)
|
||||
.then(-> $scope.form = {})
|
||||
|
||||
# Data transfer from angular format to API consumable format.
|
||||
$scope.jsonPayload = ->
|
||||
submission =
|
||||
start_time: $scope.form.dstart
|
||||
end_time: $scope.form.dend
|
||||
time_unit: $scope.form.timeUnit
|
||||
repeat: $scope.form.repeat
|
||||
sequence_id: $scope.form.sequenceId
|
||||
if $scope.form.tstart
|
||||
if submission.start_time
|
||||
submission.start_time.setHours $scope.form.tstart.getHours()
|
||||
submission.start_time.setMinutes $scope.form.tstart.getMinutes()
|
||||
|
||||
if submission.end_time
|
||||
submission.end_time.setMinutes $scope.form.tstart.getMinutes()
|
||||
submission.end_time.setHours $scope.form.tstart.getHours()
|
||||
|
||||
submission
|
||||
|
||||
.then($scope.clear)
|
||||
$scope.destroy = ->
|
||||
if !!$scope.form._id
|
||||
Data
|
||||
.destroy('schedule', $scope.form._id)
|
||||
.catch(nope)
|
||||
.then($scope.clear)
|
||||
else
|
||||
$scope.clear()
|
||||
$scope.edit = (sched) -> _.assign($scope.form, sched)
|
||||
angular.module('FarmBot').controller "ScheduleController", [
|
||||
'$scope'
|
||||
'Data'
|
||||
|
|
|
@ -16,26 +16,31 @@ module Api
|
|||
# render json: schedule
|
||||
# end
|
||||
|
||||
# def update
|
||||
# mutate Schedules::Update.run(params[:schedule],
|
||||
# user: current_user)
|
||||
# end
|
||||
def update
|
||||
if schedule.user != current_user
|
||||
raise Errors::Forbidden, "Not your schedule."
|
||||
end
|
||||
mutate Schedules::Update.run(params[:schedule],
|
||||
user: current_user,
|
||||
schedule: schedule)
|
||||
end
|
||||
|
||||
# def destroy
|
||||
# if (schedule.user == current_user) && schedule.destroy
|
||||
# render nothing: true
|
||||
# else
|
||||
# raise Errors::Forbidden, "Not your schedule."
|
||||
# end
|
||||
# end
|
||||
def destroy
|
||||
if (schedule.user == current_user) && schedule.destroy
|
||||
render nothing: true
|
||||
else
|
||||
raise Errors::Forbidden, "Not your schedule."
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sequence
|
||||
@sequence ||= Sequence.find(params[:sequence_id])
|
||||
end
|
||||
# def schedule
|
||||
# @schedule ||= Schedule.find(params[:id])
|
||||
# end
|
||||
|
||||
def schedule
|
||||
@schedule ||= Schedule.find(params[:id])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
require 'mutations/time_filter'
|
||||
|
||||
module Schedules
|
||||
class Update < Mutations::Command
|
||||
using MongoidRefinements
|
||||
|
||||
required do
|
||||
model :schedule, class: Schedule
|
||||
model :user, class: User
|
||||
end
|
||||
|
||||
optional do
|
||||
string :sequence_id
|
||||
integer :repeat
|
||||
string :time_unit, in: Schedule::UNITS_OF_TIME
|
||||
time :start_time
|
||||
time :end_time
|
||||
end
|
||||
|
||||
def execute
|
||||
update_attributes(schedule, inputs.except(:schedule))
|
||||
end
|
||||
end
|
||||
end
|
|
@ -19,4 +19,4 @@
|
|||
.event-time {{ s.start_time | date: 'h a' }}
|
||||
%i.event-icon.fi-target
|
||||
.event-title {{ s.sequence_name }}
|
||||
%i.edit-icon.fi-pencil.right
|
||||
%i.edit-icon.fi-pencil.right{'ng-click' => 'edit(s)'}
|
||||
|
|
|
@ -17,17 +17,17 @@
|
|||
.small-3.columns
|
||||
%span.prefix.uppercase Starts
|
||||
.small-9.columns
|
||||
%input{'pick-a-date' => "form.dstart", placeholder: "Today", :type => "text"}
|
||||
%input{'pick-a-date' => "form.start_time", placeholder: "Today", :type => "text"}
|
||||
.row.collapse.prefix-radius
|
||||
.small-3.columns
|
||||
%span.prefix.uppercase Ends
|
||||
.small-9.columns
|
||||
%input{'pick-a-date' => "form.dend", :placeholder => "Never", :type => "text"}
|
||||
%input{'pick-a-date' => "form.end_time", :placeholder => "Never", :type => "text"}
|
||||
.row.collapse.prefix-radius
|
||||
.small-3.columns
|
||||
%span.prefix.uppercase Time
|
||||
.small-9.columns
|
||||
%input{'pick-a-time' => "form.tstart", placeholder: "Now", type: "text"}
|
||||
%input{'pick-a-time' => "form.start_time", placeholder: "Now", type: "text"}
|
||||
.large-6.columns
|
||||
.row.collapse.prefix-radius
|
||||
.small-4.columns
|
||||
|
@ -35,7 +35,7 @@
|
|||
.small-4.columns
|
||||
%input{:placeholder => "4", :type => "text", ng_model: 'form.repeat', required: true}
|
||||
.small-4.columns
|
||||
%select{'ng-options' => 'item.value as item.show for item in repeats', 'ng-model' => 'form.timeUnit', required: true}
|
||||
%select{'ng-options' => 'item.value as item.show for item in repeats', 'ng-model' => 'form.time_unit', required: true}
|
||||
.row.collapse.prefix-radius
|
||||
.small-4.columns
|
||||
%span.prefix.uppercase Tool-ID
|
||||
|
@ -45,12 +45,12 @@
|
|||
.small-4.columns
|
||||
%span.prefix.uppercase * Sequence
|
||||
.small-8.columns
|
||||
%select{'ng-options' => 'item._id as item.name for item in sequences', 'ng-model' => 'form.sequenceId', required: true}
|
||||
%select{'ng-options' => 'item._id as item.name for item in sequences', 'ng-model' => 'form.sequence_id', required: true}
|
||||
.row
|
||||
.small-12.columns
|
||||
%button.green.button-like{'ng-disabled' => 'form.$invalid'}
|
||||
%button.green.button-like{'ng-disabled' => 'form.$invalid', type: 'submit'}
|
||||
Schedule
|
||||
%button.red.button-like.left{"ng-click" => "deleteEvent(event)"}
|
||||
%button.red.button-like.left{"ng-click" => "destroy()", type: 'button'}
|
||||
Delete
|
||||
.row.padding-bottom
|
||||
.small-12.columns
|
||||
|
|
|
@ -6,7 +6,7 @@ Dss::Application.routes.draw do
|
|||
resources :sequences, only: [:create, :update, :destroy, :index, :show] do
|
||||
resources :steps, only: [:show, :create, :index, :update, :destroy]
|
||||
end
|
||||
resources :schedules, only: [:create, :index]
|
||||
resources :schedules, only: [:create, :update, :destroy, :index]
|
||||
end
|
||||
|
||||
devise_for :users, :controllers => {:registrations => "registrations"}
|
||||
|
|
Loading…
Reference in New Issue