$self->{end_time} = $self->time_recording->end_time->to_kivitendo_time;
}
+ my $inputs_to_disable = $self->get_inputs_to_disable;
+
$self->setup_edit_action_bar;
$self->render('time_recording/form',
- title => t8('Time Recording'),
+ title => t8('Time Recording'),
+ inputs_to_disable => $inputs_to_disable,
);
}
$::form->{callback} || (action => 'list')
}
+sub get_inputs_to_disable {
+ my ($self) = @_;
+
+ return [qw(customer project)] if $self->time_recording->order_id;
+ return [qw(customer)] if $self->time_recording->project_id && $self->time_recording->project->customer_id;
+}
+
+
1;
namespace('kivi.TimeRecording', function(ns) {
'use strict';
+ ns.inputs_to_disable = [];
+
ns.set_end_date = function() {
if ($('#start_date').val() !== '' && $('#end_date').val() === '') {
var kivi_start_date = kivi.format_date(kivi.parse_date($('#start_date').val()));
});
};
+ ns.set_input_constraints = function() {
+ $(ns.inputs_to_disable).each(function(idx, elt) {
+ if ("customer" === elt) {
+ $('#time_recording_customer_id_name').prop('disabled', true);
+ }
+ if ("project" === elt) {
+ $('#time_recording_project_id_name').prop('disabled', true);
+ }
+ });
+ };
+
});
$(function() {
+ kivi.TimeRecording.set_input_constraints();
$('#time_recording_project_id').on('set_item:ProjectPicker', function(){ kivi.TimeRecording.project_changed() });
});