diff --git a/lib/NGCP/Panel/Controller/Reseller.pm b/lib/NGCP/Panel/Controller/Reseller.pm index 8bcd6d09e9..93b4a34c3d 100644 --- a/lib/NGCP/Panel/Controller/Reseller.pm +++ b/lib/NGCP/Panel/Controller/Reseller.pm @@ -420,12 +420,25 @@ sub create_defaults :Path('create_defaults') :Args(0) :Does(ACL) :ACLDetachTo('/ return; } +sub css :Chained('base') :PathPart('css') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { + my ($self, $c) = @_; + $c->stash(template => 'reseller/branding.tt'); + return; +} + sub edit_branding_css :Chained('base') :PathPart('css/edit') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { my ($self, $c) = @_; $c->detach('/denied_page') if($c->user->read_only); - $c->stash(template => 'reseller/details.tt'); + my $back; + if($c->user->roles eq "admin") { + $c->stash(template => 'reseller/details.tt'); + $back = $c->uri_for_action('/reseller/details', $c->req->captures); + } else { + $c->stash(template => 'reseller/branding.tt'); + $back = $c->uri_for_action('/reseller/css', $c->req->captures); + } my $reseller = $c->stash->{reseller}->first; my $branding = $reseller->branding; @@ -447,7 +460,7 @@ sub edit_branding_css :Chained('base') :PathPart('css/edit') :Args(0) :Does(ACL) c => $c, form => $form, fields => {}, - back_uri => $c->uri_for('/reseller/details', $c->req->captures), + back_uri => $back, ); if($posted && $form->validated) { @@ -485,13 +498,13 @@ sub edit_branding_css :Chained('base') :PathPart('css/edit') :Args(0) :Does(ACL) desc => $c->loc('Failed to update reseller branding'), ); } - NGCP::Panel::Utils::Navigation::back_or($c, $c->uri_for_action('/reseller/details', $c->req->captures)); + NGCP::Panel::Utils::Navigation::back_or($c, $back); } $c->stash(close_target => $c->uri_for()); $c->stash(branding_form => $form); $c->stash(branding_edit_flag => 1); - $c->stash(close_target => $c->uri_for_action('/reseller/details', $c->req->captures)); + $c->stash(close_target => $back); return; } @@ -515,6 +528,12 @@ sub get_branding_logo :Chained('base') :PathPart('css/logo/download') :Args(0) { sub delete_branding_logo :Chained('base') :PathPart('css/logo/delete') :Args(0) :Does(ACL) :ACLDetachTo('/denied_page') :AllowedRole(admin) :AllowedRole(reseller) { my ($self, $c) = @_; + my $back; + if($c->user->roles eq "admin") { + $back = $c->uri_for_action('/reseller/details', $c->req->captures); + } else { + $back = $c->uri_for_action('/reseller/css', $c->req->captures); + } my $reseller = $c->stash->{reseller}->first; my $branding = $reseller->branding; @@ -523,7 +542,7 @@ sub delete_branding_logo :Chained('base') :PathPart('css/logo/delete') :Args(0) $branding->update({ logo => undef, logo_image_type => undef }); } - $c->response->redirect($c->uri_for_action('/reseller/details', $c->req->captures)); + $c->response->redirect($back); } sub get_branding_css :Chained('base') :PathPart('css/download') :Args(0) { diff --git a/share/templates/reseller/branding.tt b/share/templates/reseller/branding.tt new file mode 100644 index 0000000000..2d0779aee0 --- /dev/null +++ b/share/templates/reseller/branding.tt @@ -0,0 +1,75 @@ +[% site_config.title = c.loc('Panel Branding') -%] + +
+ + [% c.loc('Back') %] + +
+[% back_created = 1 -%] + +
+ +
+ [% FOREACH m IN messages -%] +
[% m.text %]
+ [% END -%] + [% IF reseller.first.status != "active" -%] +
[% c.loc('Reseller is [_1]', reseller.first.status) %]
+ [% END -%] +[% messages = [] -%] +
+ + + [% UNLESS c.user.read_only -%] + + Edit Branding + [% IF branding.logo -%] + Delete Logo + [% END -%] + +
+ [% END -%] + + [% IF branding.defined -%] + [% IF branding.logo.defined -%] +

Custom Logo

+ +

+ [% c.loc("You can use the logo by adding the following CSS to the Custom CSS below:") %] +

+#header .brand {
+    background: url([% c.uri_for_action('/reseller/get_branding_logo', c.req.captures) %]) no-repeat 0 0;
+    background-size: 280px 32px;
+}
+
+

+ [% ELSE -%] + No logo uploaded. + [% END -%] + + +

Custom CSS

+

+

+[% branding.css %]
+                
+

+ [% ELSE -%] + No branding specified, using standard branding. + [% END -%] + +[% IF branding_edit_flag == 1 -%] +[% + IF form.has_for_js; + form.render_repeatable_js; + END; + PROCESS "helpers/modal.tt"; + modal_header(m.edit_flag = branding_edit_flag, + m.name = "Reseller Branding"); + translate_form(branding_form).render; + modal_footer(); + modal_script(m.close_target = close_target); +-%] +[% END -%] + +[% # vim: set tabstop=4 syntax=html expandtab: -%] diff --git a/share/templates/reseller/details.tt b/share/templates/reseller/details.tt index 050adfbc92..5d1829d1a9 100644 --- a/share/templates/reseller/details.tt +++ b/share/templates/reseller/details.tt @@ -265,6 +265,7 @@ No branding specified, using standard branding. [% END -%] + diff --git a/share/templates/widgets/reseller_topmenu_settings.tt b/share/templates/widgets/reseller_topmenu_settings.tt index 1437cec145..98e17be5de 100644 --- a/share/templates/widgets/reseller_topmenu_settings.tt +++ b/share/templates/widgets/reseller_topmenu_settings.tt @@ -5,6 +5,7 @@