Set explicit referrer when changing app theme
to include url #hash value if there is one, so switching theme is more seamless from the view profile page
This commit is contained in:
		
							parent
							
								
									6a7c06d26e
								
							
						
					
					
						commit
						00e2af1561
					
				
					 3 changed files with 10 additions and 7 deletions
				
			
		|  | @ -401,6 +401,7 @@ | ||||||
|                 <div class="level-item"> |                 <div class="level-item"> | ||||||
|                   ${h.form(url('change_theme'), method="post", ref='themePickerForm')} |                   ${h.form(url('change_theme'), method="post", ref='themePickerForm')} | ||||||
|                     ${h.csrf_token(request)} |                     ${h.csrf_token(request)} | ||||||
|  |                     <input type="hidden" name="referrer" :value="referrer" /> | ||||||
|                     <div style="display: flex; align-items: center; gap: 0.5rem;"> |                     <div style="display: flex; align-items: center; gap: 0.5rem;"> | ||||||
|                       <span>Theme:</span> |                       <span>Theme:</span> | ||||||
|                       <b-select name="theme" |                       <b-select name="theme" | ||||||
|  | @ -856,6 +857,7 @@ | ||||||
| 
 | 
 | ||||||
|         % if expose_theme_picker and request.has_perm('common.change_app_theme'): |         % if expose_theme_picker and request.has_perm('common.change_app_theme'): | ||||||
|             globalTheme: ${json.dumps(theme)|n}, |             globalTheme: ${json.dumps(theme)|n}, | ||||||
|  |             referrer: location.href, | ||||||
|         % endif |         % endif | ||||||
| 
 | 
 | ||||||
|         % if can_edit_help: |         % if can_edit_help: | ||||||
|  |  | ||||||
|  | @ -792,6 +792,7 @@ | ||||||
|               % if expose_theme_picker and request.has_perm('common.change_app_theme'): |               % if expose_theme_picker and request.has_perm('common.change_app_theme'): | ||||||
|                   ${h.form(url('change_theme'), method="post", ref='themePickerForm')} |                   ${h.form(url('change_theme'), method="post", ref='themePickerForm')} | ||||||
|                     ${h.csrf_token(request)} |                     ${h.csrf_token(request)} | ||||||
|  |                     <input type="hidden" name="referrer" :value="referrer" /> | ||||||
|                     <div style="display: flex; align-items: center; gap: 0.5rem;"> |                     <div style="display: flex; align-items: center; gap: 0.5rem;"> | ||||||
|                       <span>Theme:</span> |                       <span>Theme:</span> | ||||||
|                       <b-select name="theme" |                       <b-select name="theme" | ||||||
|  | @ -1121,6 +1122,7 @@ | ||||||
| 
 | 
 | ||||||
|         % if expose_theme_picker and request.has_perm('common.change_app_theme'): |         % if expose_theme_picker and request.has_perm('common.change_app_theme'): | ||||||
|             globalTheme: ${json.dumps(theme)|n}, |             globalTheme: ${json.dumps(theme)|n}, | ||||||
|  |             referrer: location.href, | ||||||
|         % endif |         % endif | ||||||
| 
 | 
 | ||||||
|         % if can_edit_help: |         % if can_edit_help: | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # | # | ||||||
| #  Rattail -- Retail Software Framework | #  Rattail -- Retail Software Framework | ||||||
| #  Copyright © 2010-2023 Lance Edgar | #  Copyright © 2010-2024 Lance Edgar | ||||||
| # | # | ||||||
| #  This file is part of Rattail. | #  This file is part of Rattail. | ||||||
| # | # | ||||||
|  | @ -24,16 +24,14 @@ | ||||||
| Various common views | Various common views | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
|  | import importlib | ||||||
| import os | import os | ||||||
| from collections import OrderedDict | from collections import OrderedDict | ||||||
| 
 | 
 | ||||||
| from rattail.batch import consume_batch_id | from rattail.batch import consume_batch_id | ||||||
| from rattail.util import simple_error, import_module_path | from rattail.util import simple_error | ||||||
| from rattail.files import resource_path | from rattail.files import resource_path | ||||||
| 
 | 
 | ||||||
| from pyramid import httpexceptions |  | ||||||
| from pyramid.response import Response |  | ||||||
| 
 |  | ||||||
| from tailbone import forms | from tailbone import forms | ||||||
| from tailbone.forms.common import Feedback | from tailbone.forms.common import Feedback | ||||||
| from tailbone.db import Session | from tailbone.db import Session | ||||||
|  | @ -110,7 +108,7 @@ class CommonView(View): | ||||||
|             return self.project_version |             return self.project_version | ||||||
| 
 | 
 | ||||||
|         pkg = self.rattail_config.app_package() |         pkg = self.rattail_config.app_package() | ||||||
|         mod = import_module_path(pkg) |         mod = importlib.import_module(pkg) | ||||||
|         return mod.__version__ |         return mod.__version__ | ||||||
| 
 | 
 | ||||||
|     def exception(self): |     def exception(self): | ||||||
|  | @ -155,7 +153,8 @@ class CommonView(View): | ||||||
|                 self.request.session.flash(msg, 'error') |                 self.request.session.flash(msg, 'error') | ||||||
|             else: |             else: | ||||||
|                 self.request.session.flash("App theme has been changed to: {}".format(theme)) |                 self.request.session.flash("App theme has been changed to: {}".format(theme)) | ||||||
|         return self.redirect(self.request.get_referrer()) |         referrer = self.request.params.get('referrer') or self.request.get_referrer() | ||||||
|  |         return self.redirect(referrer) | ||||||
| 
 | 
 | ||||||
|     def change_db_engine(self): |     def change_db_engine(self): | ||||||
|         """ |         """ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar