mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									5f44806287
								
							
						
					
					
						commit
						fc6f796f30
					
				| @ -1,12 +1,50 @@ | |||||||
| <div class="text-center"> | <% eu_server = request.host == 'docuseal.eu' %> | ||||||
|   <div class="join"> | <server-selector> | ||||||
|     <a href="https://docuseal.com<%= request.fullpath.gsub('docuseal.eu', 'docuseal.com') %>" class="btn bg-base-200 join-item w-32  <%= 'bg-base-300' if request.host == 'docuseal.com' %>"> |   <div id="global_server_selector" class="text-center hidden"> | ||||||
|       <%= svg_icon 'world', class: 'w-5 h-5' %> |     <div class="join"> | ||||||
|       Global |       <a href="https://docuseal.com<%= request.fullpath.gsub('docuseal.eu', 'docuseal.com') %>" class="btn bg-base-200 join-item w-40 <%= 'bg-base-300' unless eu_server %>"> | ||||||
|     </a> |         <%= svg_icon 'world', class: 'w-5 h-5' %> | ||||||
|     <a href="https://docuseal.eu<%= request.fullpath.gsub('docuseal.com', 'docuseal.eu') %>" class="btn bg-base-200 join-item w-32 <%= 'bg-base-300' if request.host == 'docuseal.eu' %>"> |         Global | ||||||
|       <%= svg_icon 'eu_flag', class: 'w-5 h-5' %> |       </a> | ||||||
|       Europe |       <a href="https://docuseal.eu<%= request.fullpath.gsub('docuseal.com', 'docuseal.eu') %>" class="relative btn bg-base-200 join-item w-40 <%= 'bg-base-300' if eu_server %>"> | ||||||
|     </a> |         <%= svg_icon 'eu_flag', class: 'w-5 h-5' %> | ||||||
|  |         Europe | ||||||
|  |         <span id="eu_server_alert" class="absolute flex space-x-1 hidden" style="top: -1.5rem;"> | ||||||
|  |           <span class="text-xs font-normal leading-none text-base-content normal-case"> | ||||||
|  |             <%= t('eu_data_residency') %> | ||||||
|  |           </span> | ||||||
|  |           <%= svg_icon 'corner_right_down', class: 'w-4 h-5 stroke-1 shrink-0 pt-1' %> | ||||||
|  |         </span> | ||||||
|  |       </a> | ||||||
|  |     </div> | ||||||
|   </div> |   </div> | ||||||
| </div> |   <div id="us_server_selector" class="flex justify-center hidden"> | ||||||
|  |     <div class="dropdown"> | ||||||
|  |       <label tabindex="0" class="relative btn btn-sm btn-outline normal-case border-base-content/20 w-36"> | ||||||
|  |         <% if eu_server %> | ||||||
|  |           <%= svg_icon 'eu_flag', class: 'w-5 h-5' %> | ||||||
|  |           <span>EU Cloud</span> | ||||||
|  |         <% else %> | ||||||
|  |           <%= svg_icon 'usa_flag', class: 'w-5 h-5' %> | ||||||
|  |           <span>US Cloud</span> | ||||||
|  |         <% end %> | ||||||
|  |         <%= svg_icon 'chevron_down', class: 'w-4 h-4 absolute right-1' %> | ||||||
|  |       </label> | ||||||
|  |       <ul tabindex="0" class="dropdown-content z-[1] menu border border-base-content/20 mt-1 bg-base-100 rounded-box w-36"> | ||||||
|  |         <li> | ||||||
|  |           <a href="https://docuseal.com<%= request.fullpath.gsub('docuseal.eu', 'docuseal.com') %>" class="flex items-center space-x-2 <%= 'bg-base-300' unless eu_server %>"> | ||||||
|  |             <%= svg_icon 'usa_flag', class: 'w-5 h-5' %> | ||||||
|  |             US Cloud | ||||||
|  |           </a> | ||||||
|  |         </li> | ||||||
|  |         <li> | ||||||
|  |           <a href="https://docuseal.eu<%= request.fullpath.gsub('docuseal.com', 'docuseal.eu') %>" class="flex items-center space-x-2 <%= 'bg-base-300' if eu_server %>"> | ||||||
|  |             <%= svg_icon 'eu_flag', class: 'w-5 h-5' %> | ||||||
|  |             EU Cloud | ||||||
|  |           </a> | ||||||
|  |         </li> | ||||||
|  |       </ul> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </server-selector> | ||||||
|  | <%= render 'scripts/server_selector' %> | ||||||
|  | |||||||
| After Width: | Height: | Size: 285 B | 
| After Width: | Height: | Size: 671 B | 
| @ -0,0 +1,21 @@ | |||||||
|  | <script> | ||||||
|  |   customElements.define('server-selector', class extends HTMLElement { | ||||||
|  |     connectedCallback() { | ||||||
|  |       const usServerSelector = this.querySelector('#us_server_selector'); | ||||||
|  |       const globalServerSelector = this.querySelector('#global_server_selector'); | ||||||
|  |       const euServerAlert = this.querySelector('#eu_server_alert'); | ||||||
|  |       const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone | ||||||
|  |       const usTimezones = /^(?:America\/(?:New_York|Detroit|Kentucky\/(?:Louisville|Monticello)|Indiana\/(?:Indianapolis|Vincennes|Winamac|Marengo|Petersburg|Vevay|Tell_City|Knox)|Chicago|Menominee|North_Dakota\/(?:Center|New_Salem|Beulah)|Denver|Boise|Phoenix|Los_Angeles|Anchorage|Juneau|Sitka|Metlakatla|Yakutat|Nome|Adak)|Pacific\/Honolulu)$/; | ||||||
|  |       const euTimezones = /^Europe\/(?:Vienna|Brussels|Sofia|Zagreb|Nicosia|Prague|Copenhagen|Tallinn|Helsinki|Paris|Berlin|Athens|Budapest|Dublin|Rome|Riga|Vilnius|Luxembourg|Valletta|Amsterdam|Warsaw|Lisbon|Bratislava|Ljubljana|Madrid|Stockholm|Bucharest)$/; | ||||||
|  | 
 | ||||||
|  |       if (usTimezones.test(timezone)) { | ||||||
|  |         usServerSelector.classList.remove('hidden'); | ||||||
|  |       } else if (euTimezones.test(timezone)) { | ||||||
|  |         globalServerSelector.classList.remove('hidden'); | ||||||
|  |         euServerAlert.classList.remove('hidden'); | ||||||
|  |       } else { | ||||||
|  |         globalServerSelector.classList.remove('hidden'); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | </script> | ||||||
					Loading…
					
					
				
		Reference in new issue