add settings navbar
This commit is contained in:
@@ -6,6 +6,7 @@ import ToggleVisible from './elements/toggle_visible'
|
|||||||
import DisableHidden from './elements/disable_hidden'
|
import DisableHidden from './elements/disable_hidden'
|
||||||
import TurboModal from './elements/turbo_modal'
|
import TurboModal from './elements/turbo_modal'
|
||||||
import FileDropzone from './elements/file_dropzone'
|
import FileDropzone from './elements/file_dropzone'
|
||||||
|
import MenuActive from './elements/menu_active'
|
||||||
|
|
||||||
import FlowBuilder from './flow_builder/builder'
|
import FlowBuilder from './flow_builder/builder'
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ window.customElements.define('toggle-visible', ToggleVisible)
|
|||||||
window.customElements.define('disable-hidden', DisableHidden)
|
window.customElements.define('disable-hidden', DisableHidden)
|
||||||
window.customElements.define('turbo-modal', TurboModal)
|
window.customElements.define('turbo-modal', TurboModal)
|
||||||
window.customElements.define('file-dropzone', FileDropzone)
|
window.customElements.define('file-dropzone', FileDropzone)
|
||||||
|
window.customElements.define('menu-active', MenuActive)
|
||||||
|
|
||||||
window.customElements.define('flow-builder', class extends HTMLElement {
|
window.customElements.define('flow-builder', class extends HTMLElement {
|
||||||
connectedCallback () {
|
connectedCallback () {
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
export default class extends HTMLElement {
|
||||||
|
connectedCallback () {
|
||||||
|
this.querySelectorAll('a').forEach((link) => {
|
||||||
|
if (document.location.pathname.startsWith(link.pathname)) {
|
||||||
|
link.classList.add('bg-base-300')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
Email settings
|
<div class="max-w-6xl mx-auto">
|
||||||
<% value = @encrypted_config.value || {} %>
|
<div class="flex space-x-8">
|
||||||
<%= form_for @encrypted_config, url: settings_email_index_path, method: :post, html: { autocomplete: 'off' } do |f| %>
|
<%= render 'shared/settings_nav' %>
|
||||||
|
<div class="mt-4">
|
||||||
|
Email settings
|
||||||
|
<% value = @encrypted_config.value || {} %>
|
||||||
|
<%= form_for @encrypted_config, url: settings_email_index_path, method: :post, html: { autocomplete: 'off' } do |f| %>
|
||||||
<%= f.fields_for :value do |ff| %>
|
<%= f.fields_for :value do |ff| %>
|
||||||
<div>
|
<div>
|
||||||
<%= ff.label :host %>
|
<%= ff.label :host %>
|
||||||
@@ -24,4 +28,7 @@ Email settings
|
|||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= f.button button_title %>
|
<%= f.button button_title %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
<%= form_for '', url: settings_esign_index_path, method: :post do |f| %>
|
<div class="max-w-6xl mx-auto">
|
||||||
|
<div class="flex space-x-8">
|
||||||
|
<%= render 'shared/settings_nav' %>
|
||||||
|
<div class="mt-4">
|
||||||
|
<%= form_for '', url: settings_esign_index_path, method: :post do |f| %>
|
||||||
<file-dropzone data-name="verify_attachments">
|
<file-dropzone data-name="verify_attachments">
|
||||||
<label for="file">
|
<label for="file">
|
||||||
<input id="attachment_uuid" name="attachment_uuid" class="hidden" data-target="file-dropzone.valueField" type="text">
|
<input id="attachment_uuid" name="attachment_uuid" class="hidden" data-target="file-dropzone.valueField" type="text">
|
||||||
@@ -7,4 +11,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</file-dropzone>
|
</file-dropzone>
|
||||||
<%= f.button button_title %>
|
<%= f.button button_title %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<menu-active class="block">
|
||||||
|
<div class="mt-4 -ml-3.5">
|
||||||
|
<ul class="menu menu-compact px-2 w-52">
|
||||||
|
<li class="menu-title"><span>Settings</span></li>
|
||||||
|
<li></li>
|
||||||
|
<li>
|
||||||
|
<a href="<%= settings_profile_index_path %>" class="hover:bg-base-300">
|
||||||
|
Profile
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="<%= settings_email_index_path %>" class="hover:bg-base-300">
|
||||||
|
Email
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="<%= settings_storage_index_path %>" class="hover:bg-base-300">
|
||||||
|
Storage
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="<%= settings_esign_index_path %>" class="hover:bg-base-300">
|
||||||
|
eSign
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="<%= settings_users_path %>" class="hover:bg-base-300">
|
||||||
|
Team
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</menu-active>
|
||||||
@@ -1,7 +1,11 @@
|
|||||||
Storage settings
|
<div class="max-w-6xl mx-auto">
|
||||||
<% value = @encrypted_config.value || { 'service' => 'disk' } %>
|
<div class="flex space-x-8">
|
||||||
<% configs = value['configs'] || {} %>
|
<%= render 'shared/settings_nav' %>
|
||||||
<%= form_for @encrypted_config, url: settings_storage_index_path, method: :post, html: { autocomplete: 'off' } do |f| %>
|
<div class="mt-4">
|
||||||
|
Storage settings
|
||||||
|
<% value = @encrypted_config.value || { 'service' => 'disk' } %>
|
||||||
|
<% configs = value['configs'] || {} %>
|
||||||
|
<%= form_for @encrypted_config, url: settings_storage_index_path, method: :post, html: { autocomplete: 'off' } do |f| %>
|
||||||
<% options = [['Disk', 'disk'], ['AWS S3', 'aws_s3'], ['Google Cloud', 'google']] %>
|
<% options = [['Disk', 'disk'], ['AWS S3', 'aws_s3'], ['Google Cloud', 'google']] %>
|
||||||
<toggle-visible data-element-ids="<%= options.map(&:last).to_json %>">
|
<toggle-visible data-element-ids="<%= options.map(&:last).to_json %>">
|
||||||
<% [['Disk', 'disk'], ['AWS S3', 'aws_s3'], ['Google Cloud', 'google']].each do |(label, val)| %>
|
<% [['Disk', 'disk'], ['AWS S3', 'aws_s3'], ['Google Cloud', 'google']].each do |(label, val)| %>
|
||||||
@@ -64,4 +68,7 @@ Storage settings
|
|||||||
<% end %>
|
<% end %>
|
||||||
</disable-hidden>
|
</disable-hidden>
|
||||||
<%= f.button button_title %>
|
<%= f.button button_title %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
<div>
|
<div class="max-w-6xl mx-auto">
|
||||||
|
<div class="flex space-x-8">
|
||||||
|
<%= render 'shared/settings_nav' %>
|
||||||
|
<div class="mt-4">
|
||||||
|
<div>
|
||||||
Users
|
Users
|
||||||
<a href="<%= new_user_path %>" data-turbo-frame="modal">New User</a>
|
<a href="<%= new_user_path %>" data-turbo-frame="modal">New User</a>
|
||||||
</div>
|
</div>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
User
|
User
|
||||||
@@ -34,4 +38,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ Rails.application.routes.draw do
|
|||||||
resources :storage, only: %i[index create], controller: 'storage_settings'
|
resources :storage, only: %i[index create], controller: 'storage_settings'
|
||||||
resources :email, only: %i[index create], controller: 'email_settings'
|
resources :email, only: %i[index create], controller: 'email_settings'
|
||||||
resources :esign, only: %i[index create], controller: 'esign_settings'
|
resources :esign, only: %i[index create], controller: 'esign_settings'
|
||||||
|
resources :profile, only: %i[index create]
|
||||||
resources :users, only: %i[index]
|
resources :users, only: %i[index]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+8
-1
@@ -3,6 +3,13 @@ module.exports = {
|
|||||||
require('daisyui')
|
require('daisyui')
|
||||||
],
|
],
|
||||||
daisyui: {
|
daisyui: {
|
||||||
themes: ['cupcake']
|
themes: [
|
||||||
|
{
|
||||||
|
cupcake: {
|
||||||
|
...require('daisyui/src/colors/themes')['[data-theme=cupcake]'],
|
||||||
|
primary: '#E4E0E1'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user