assign-series.cgi: unassign series

series cannot only assigned but assigned, too.
This commit is contained in:
Milan
2020-11-14 18:57:07 +01:00
parent f820c64522
commit eba29073dd
2 changed files with 73 additions and 5 deletions

View File

@@ -79,7 +79,8 @@ unless ( $permissions->{scan_series_events} == 1 ) {
}
if ( defined $params->{action} ) {
assign_series( $config, $request ) if $params->{action} eq 'assign_series';
assign_series( $config, $request ) if $params->{action} eq 'assign_series';
unassign_series( $config, $request ) if $params->{action} eq 'unassign_series';
}
show_events( $config, $request );
@@ -200,12 +201,67 @@ sub assign_series {
return;
}
sub unassign_series {
my $config = shift;
my $request = shift;
my $params = $request->{params}->{checked};
my $permissions = $request->{permissions};
unless ( $permissions->{assign_series_events} == 1 ) {
uac::permissions_denied('assign_series_events');
return;
}
my $entry = {};
for my $attr ( 'project_id', 'studio_id', 'series_id' ) {
if ( defined $params->{$attr} ) {
$entry->{$attr} = $params->{$attr};
} else {
uac::print_error( $attr . ' not given!' );
return;
}
}
$config->{access}->{write} = 1;
#check if series is assigned to project/studio
my $series = series::get(
$config,
{
project_id => $entry->{project_id},
studio_id => $entry->{studio_id},
series_id => $entry->{series_id},
}
);
if ( @$series > 0 ) {
# assign series to project/studio
project::unassign_series(
$config,
{
project_id => $entry->{project_id},
studio_id => $entry->{studio_id},
series_id => $entry->{series_id},
}
);
} else {
print STDERR
"event $entry->{event_id} is not assigned to project $entry->{project_id}, studio $entry->{studio_id}, series $entry->{series_id}\n";
}
$config->{access}->{write} = 0;
uac::print_info("The show was removed from the series.");
return;
}
sub check_params {
my $params = shift;
my $checked = {};
$checked->{action} = entry::element_of( $params->{action}, ['assign_series'] );
$checked->{action} = entry::element_of( $params->{action}, ['assign_series','unassign_series'] );
$checked->{exclude} = 0;
entry::set_numbers( $checked, $params, [

View File

@@ -15,10 +15,18 @@
if (series_id=='')return false;
$('#assignments_form input[name="series_id"]').val(series_id);
//console.log(project_id+" "+studio_id+" "+series_id);
var url="assign-series.cgi?project_id="+project_id+'&studio_id='+studio_id+'&series_id='+series_id+'&action=assign_series';
//console.log(url);
$('#assignments_form').submit();
return false;
}
function unassign_series(project_id, studio_id, series_id){
if (project_id=='')return false;
if (studio_id=='')return false;
if (series_id=='')return false;
$('#assignments_form input[name="series_id"]').val(series_id);
var url="assign-series.cgi?project_id="+project_id+'&studio_id='+studio_id+'&series_id='+series_id+'&action=unassign_series';
$('#assignments_form').submit();
return false;
}
@@ -54,6 +62,10 @@
onclick="assign_series('<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', $('#series_id').val());return false;"
style="float:left"
>assign</button>
<button target="_blank"
onclick="unassign_series('<TMPL_VAR .project_id>', '<TMPL_VAR .studio_id>', $('#series_id').val());return false;"
style="float:left"
>unassign</button>
</form>
</div>
</div>