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' %> | ||||
| <server-selector> | ||||
|   <div id="global_server_selector" class="text-center hidden"> | ||||
|     <div class="join"> | ||||
|     <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' %>"> | ||||
|       <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 %>"> | ||||
|         <%= svg_icon 'world', class: 'w-5 h-5' %> | ||||
|         Global | ||||
|       </a> | ||||
|     <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' %>"> | ||||
|       <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 %>"> | ||||
|         <%= 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 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