dbdoc_engine 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +331 -0
- data/Rakefile +8 -0
- data/app/assets/builds/dbdoc_engine/application.css +5 -0
- data/app/assets/images/dbdoc_engine/arrowdown.svg +3 -0
- data/app/assets/images/dbdoc_engine/arrowhorizontal.svg +3 -0
- data/app/assets/images/dbdoc_engine/arrowleft.svg +3 -0
- data/app/assets/images/dbdoc_engine/changelog.svg +3 -0
- data/app/assets/images/dbdoc_engine/column_stats_dbdocs.svg +23 -0
- data/app/assets/images/dbdoc_engine/diagram.svg +3 -0
- data/app/assets/images/dbdoc_engine/double_arrow.svg +4 -0
- data/app/assets/images/dbdoc_engine/group_bu.svg +3 -0
- data/app/assets/images/dbdoc_engine/japan_circle.png +0 -0
- data/app/assets/images/dbdoc_engine/log_in_image.png +0 -0
- data/app/assets/images/dbdoc_engine/logo.svg +12 -0
- data/app/assets/images/dbdoc_engine/orange_changelog.svg +3 -0
- data/app/assets/images/dbdoc_engine/orange_fields.svg +23 -0
- data/app/assets/images/dbdoc_engine/orange_logo.svg +12 -0
- data/app/assets/images/dbdoc_engine/orange_table.svg +21 -0
- data/app/assets/images/dbdoc_engine/orange_updates.svg +43 -0
- data/app/assets/images/dbdoc_engine/orange_wiki.svg +3 -0
- data/app/assets/images/dbdoc_engine/search.svg +3 -0
- data/app/assets/images/dbdoc_engine/setting.svg +3 -0
- data/app/assets/images/dbdoc_engine/table_dbdocs.svg +21 -0
- data/app/assets/images/dbdoc_engine/uk_circle_transparent.png +0 -0
- data/app/assets/images/dbdoc_engine/update_stats_dbdocs.svg +43 -0
- data/app/assets/images/dbdoc_engine/wiki.svg +3 -0
- data/app/assets/stylesheets/dbdoc_engine/admin.css +176 -0
- data/app/assets/stylesheets/dbdoc_engine/admin_header.css +179 -0
- data/app/assets/stylesheets/dbdoc_engine/application.scss +1 -0
- data/app/assets/stylesheets/dbdoc_engine/changelog.css +173 -0
- data/app/assets/stylesheets/dbdoc_engine/dashboard.css +513 -0
- data/app/assets/stylesheets/dbdoc_engine/dbdoc_application.css +117 -0
- data/app/assets/stylesheets/dbdoc_engine/ecommerce.css +253 -0
- data/app/assets/stylesheets/dbdoc_engine/group_details.css +178 -0
- data/app/assets/stylesheets/dbdoc_engine/header.css +212 -0
- data/app/assets/stylesheets/dbdoc_engine/loading_spinner.css +127 -0
- data/app/assets/stylesheets/dbdoc_engine/login.css +213 -0
- data/app/assets/stylesheets/dbdoc_engine/schema_diagram.css +149 -0
- data/app/assets/stylesheets/dbdoc_engine/sidebar.css +296 -0
- data/app/assets/stylesheets/dbdoc_engine/table_details.css +417 -0
- data/app/controllers/dbdoc_engine/admin/base_controller.rb +23 -0
- data/app/controllers/dbdoc_engine/admin/dashboard_controller.rb +16 -0
- data/app/controllers/dbdoc_engine/admin/data_transfer_controller.rb +63 -0
- data/app/controllers/dbdoc_engine/admin/db_design_dynamic_tables_controller.rb +198 -0
- data/app/controllers/dbdoc_engine/admin/db_design_table_groups_controller.rb +107 -0
- data/app/controllers/dbdoc_engine/application_controller.rb +65 -0
- data/app/controllers/dbdoc_engine/concerns/internationalization.rb +57 -0
- data/app/controllers/dbdoc_engine/db_doc_sessions_controller.rb +33 -0
- data/app/controllers/dbdoc_engine/home_controller.rb +79 -0
- data/app/controllers/dbdoc_engine/schema_diagram_controller.rb +293 -0
- data/app/helper/dbdoc_engine/application_helper.rb +35 -0
- data/app/helpers/dbdoc_engine/application_helper.rb +4 -0
- data/app/helpers/dbdoc_engine/changelogs_helper.rb +27 -0
- data/app/helpers/dbdoc_engine/column_helper.rb +30 -0
- data/app/helpers/dbdoc_engine/db_design_dynamic_tables_helper.rb +15 -0
- data/app/helpers/dbdoc_engine/home_helper.rb +75 -0
- data/app/javascript/dbdoc_engine/application.js +12 -0
- data/app/javascript/dbdoc_engine/controllers/application.js +29 -0
- data/app/javascript/dbdoc_engine/controllers/auto_submit_controller.js +17 -0
- data/app/javascript/dbdoc_engine/controllers/chart_controller.js +58 -0
- data/app/javascript/dbdoc_engine/controllers/column-type_controller.js +149 -0
- data/app/javascript/dbdoc_engine/controllers/column_controller.js +362 -0
- data/app/javascript/dbdoc_engine/controllers/column_search_controller.js +42 -0
- data/app/javascript/dbdoc_engine/controllers/dbdoc_accordion_controller.js +42 -0
- data/app/javascript/dbdoc_engine/controllers/ecommerce_controller.js +73 -0
- data/app/javascript/dbdoc_engine/controllers/group_details_controller.js +88 -0
- data/app/javascript/dbdoc_engine/controllers/import_export_controller.js +200 -0
- data/app/javascript/dbdoc_engine/controllers/index.js +9 -0
- data/app/javascript/dbdoc_engine/controllers/language_controller.js +100 -0
- data/app/javascript/dbdoc_engine/controllers/loading_spinner_controller.js +48 -0
- data/app/javascript/dbdoc_engine/controllers/login_controller.js +75 -0
- data/app/javascript/dbdoc_engine/controllers/notification_controller.js +15 -0
- data/app/javascript/dbdoc_engine/controllers/schema_diagram_controller.js +1129 -0
- data/app/javascript/dbdoc_engine/controllers/select2_controller.js +67 -0
- data/app/javascript/dbdoc_engine/controllers/sidebar_controller.js +943 -0
- data/app/javascript/dbdoc_engine/controllers/table_details_controller.js +245 -0
- data/app/javascript/dbdoc_engine/controllers/table_group_validation_controller.js +148 -0
- data/app/javascript/dbdoc_engine/controllers/table_validation_controller.js +423 -0
- data/app/jobs/dbdoc_engine/application_job.rb +4 -0
- data/app/mailers/dbdoc_engine/application_mailer.rb +6 -0
- data/app/models/dbdoc_engine/application_record.rb +6 -0
- data/app/models/dbdoc_engine/concerns/soft_deletable.rb +30 -0
- data/app/models/dbdoc_engine/db_design_changelog.rb +44 -0
- data/app/models/dbdoc_engine/db_design_dynamic_column.rb +211 -0
- data/app/models/dbdoc_engine/db_design_dynamic_table.rb +124 -0
- data/app/models/dbdoc_engine/db_design_table_group.rb +88 -0
- data/app/models/dbdoc_engine/user.rb +21 -0
- data/app/queries/dbdoc_engine/admin_dashboard_queries.rb +71 -0
- data/app/queries/dbdoc_engine/db_design_changelog_queries.rb +68 -0
- data/app/queries/dbdoc_engine/db_design_dynamic_column_queries.rb +37 -0
- data/app/queries/dbdoc_engine/db_design_dynamic_table_commands.rb +106 -0
- data/app/queries/dbdoc_engine/db_design_dynamic_table_queries.rb +194 -0
- data/app/queries/dbdoc_engine/db_design_table_group_queries.rb +154 -0
- data/app/services/dbdoc_engine/db_design_dynamic_table_export_service.rb +38 -0
- data/app/services/dbdoc_engine/db_design_dynamic_table_handler_service.rb +49 -0
- data/app/services/dbdoc_engine/db_design_dynamic_tables_service.rb +21 -0
- data/app/services/dbdoc_engine/error_handler_service.rb +43 -0
- data/app/services/dbdoc_engine/schema_rb_import_service.rb +194 -0
- data/app/services/dbdoc_engine/schema_rb_parser_service.rb +339 -0
- data/app/services/dbdoc_engine/table_filter_service.rb +35 -0
- data/app/services/dbdoc_engine/table_groups_service.rb +199 -0
- data/app/services/dbdoc_engine/table_management_service.rb +192 -0
- data/app/views/dbdoc_engine/admin/dashboard/_action_badge.html.erb +11 -0
- data/app/views/dbdoc_engine/admin/dashboard/_changelog_rows.html.erb +22 -0
- data/app/views/dbdoc_engine/admin/dashboard/_changelog_table_headers.html.erb +8 -0
- data/app/views/dbdoc_engine/admin/dashboard/_filter_fields.html.erb +43 -0
- data/app/views/dbdoc_engine/admin/dashboard/index.html.erb +159 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_column_fields.html.erb +225 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_deleted_table_index.html.erb +110 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_foreign_key_fields.html.erb +51 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_form.html.erb +75 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_recent_activity.html.erb +39 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_table_columns.html.erb +127 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_table_index.html.erb +109 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/_table_information.html.erb +99 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/deleted_tables.html.erb +95 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/edit.html.erb +23 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/export_all_to_excel.xlsx.axlsx +240 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/export_to_excel.xlsx.axlsx +135 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/index.html.erb +109 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/new.html.erb +25 -0
- data/app/views/dbdoc_engine/admin/db_design_dynamic_tables/show_table_info.html.erb +125 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/_deleted_table_groups_list.html.erb +75 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/_form.html.erb +88 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/_table_groups_list.html.erb +82 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/deleted_groups.html.erb +60 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/edit.html.erb +25 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/index.html.erb +85 -0
- data/app/views/dbdoc_engine/admin/db_design_table_groups/new.html.erb +26 -0
- data/app/views/dbdoc_engine/db_doc_sessions/new.html.erb +59 -0
- data/app/views/dbdoc_engine/home/changelog_details.html.erb +80 -0
- data/app/views/dbdoc_engine/home/changelogs.html.erb +20 -0
- data/app/views/dbdoc_engine/home/group_details.html.erb +94 -0
- data/app/views/dbdoc_engine/home/index.html.erb +11 -0
- data/app/views/dbdoc_engine/home/partials/_action_badge.html.erb +11 -0
- data/app/views/dbdoc_engine/home/partials/_breadcrumb_navigation.html.erb +30 -0
- data/app/views/dbdoc_engine/home/partials/_changelog_rows.html.erb +35 -0
- data/app/views/dbdoc_engine/home/partials/_changelog_table_headers.html.erb +16 -0
- data/app/views/dbdoc_engine/home/partials/_column_headers.html.erb +23 -0
- data/app/views/dbdoc_engine/home/partials/_column_row.html.erb +157 -0
- data/app/views/dbdoc_engine/home/partials/_filter_form.html.erb +47 -0
- data/app/views/dbdoc_engine/home/partials/_group_section.html.erb +84 -0
- data/app/views/dbdoc_engine/home/partials/_pagination.html.erb +5 -0
- data/app/views/dbdoc_engine/home/partials/_stats_container.html.erb +46 -0
- data/app/views/dbdoc_engine/home/partials/_table_groups.html.erb +7 -0
- data/app/views/dbdoc_engine/home/partials/_table_information_section.html.erb +50 -0
- data/app/views/dbdoc_engine/home/partials/_table_section.html.erb +48 -0
- data/app/views/dbdoc_engine/home/table_details.html.erb +9 -0
- data/app/views/dbdoc_engine/schema_diagram/index.html.erb +102 -0
- data/app/views/dbdoc_engine/shared/_admin_header.html.erb +78 -0
- data/app/views/dbdoc_engine/shared/_header.html.erb +94 -0
- data/app/views/dbdoc_engine/shared/_js_translations.html.erb +3 -0
- data/app/views/dbdoc_engine/shared/_language_button.html.erb +14 -0
- data/app/views/dbdoc_engine/shared/_sidebar.html.erb +128 -0
- data/app/views/kaminari/dbdoc_engine/_first_page.html.erb +3 -0
- data/app/views/kaminari/dbdoc_engine/_gap.html.erb +3 -0
- data/app/views/kaminari/dbdoc_engine/_last_page.html.erb +3 -0
- data/app/views/kaminari/dbdoc_engine/_next_page.html.erb +3 -0
- data/app/views/kaminari/dbdoc_engine/_page.html.erb +9 -0
- data/app/views/kaminari/dbdoc_engine/_paginator.html.erb +17 -0
- data/app/views/kaminari/dbdoc_engine/_prev_page.html.erb +3 -0
- data/app/views/layouts/dbdoc_engine/application.html.erb +107 -0
- data/app/views/layouts/dbdoc_engine/header.html.erb +108 -0
- data/config/importmap.rb +11 -0
- data/config/locales/en.yml +307 -0
- data/config/locales/ja.yml +306 -0
- data/config/routes.rb +73 -0
- data/db/migrate/rails7/20250227060610_create_db_design_table_groups.rb +15 -0
- data/db/migrate/rails7/20250227094626_create_db_design_dynamic_tables.rb +19 -0
- data/db/migrate/rails7/20250228022732_create_db_design_dynamic_columns.rb +34 -0
- data/db/migrate/rails7/20250401051453_create_db_design_changelogs.rb +26 -0
- data/db/migrate/rails7/20250411040822_create_users.rb +14 -0
- data/db/migrate/rails7/20250421080851_add_missing_indexes_to_dbdoc_tables.rb +23 -0
- data/db/migrate/rails8/20250227060610_create_db_design_table_groups.rb +15 -0
- data/db/migrate/rails8/20250227094626_create_db_design_dynamic_tables.rb +19 -0
- data/db/migrate/rails8/20250228022732_create_db_design_dynamic_columns.rb +34 -0
- data/db/migrate/rails8/20250401051453_create_db_design_changelogs.rb +26 -0
- data/db/migrate/rails8/20250411040822_create_users.rb +14 -0
- data/db/migrate/rails8/20250421080851_add_missing_indexes_to_dbdoc_tables.rb +23 -0
- data/db/seeds.rb +28 -0
- data/lib/dbdoc_engine/engine.rb +57 -0
- data/lib/dbdoc_engine/version.rb +3 -0
- data/lib/dbdoc_engine.rb +9 -0
- data/lib/generators/dbdoc_engine/install/install_generator.rb +245 -0
- data/lib/generators/dbdoc_engine/uninstall/uninstall_generator.rb +196 -0
- data/lib/tasks/dbdoc_engine_tasks.rake +44 -0
- data/public/dbdoc_engine_assets/images/camel_chess_head.png +0 -0
- data/public/dbdoc_engine_assets/images/dblogo.svg +4 -0
- data/public/dbdoc_engine_assets/images/japan_circle.png +0 -0
- data/public/dbdoc_engine_assets/images/king_chess_head.png +0 -0
- data/public/dbdoc_engine_assets/images/login-bg.svg +44 -0
- data/public/dbdoc_engine_assets/images/logo.png +0 -0
- data/public/dbdoc_engine_assets/images/logo.svg +12 -0
- data/public/dbdoc_engine_assets/images/queen_chess_head.png +0 -0
- data/public/dbdoc_engine_assets/images/soldier_chess_headd.png +0 -0
- data/public/dbdoc_engine_assets/images/uk_circle_transparent.png +0 -0
- metadata +415 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!-- Custom Styled Breadcrumbs -->
|
|
2
|
+
<div class='d-flex align-items-center mb-3 breadcrumb-container mt-4 ms-5'>
|
|
3
|
+
<a href='<%= dbdoc_engine.root_path %>' class='text-decoration-none text-muted'>
|
|
4
|
+
<small><i class='bi bi-house-door'></i></small>
|
|
5
|
+
</a>
|
|
6
|
+
<span class='slash'> / </span>
|
|
7
|
+
<a href="<%= dbdoc_engine.admin_dashboard_path(locale: I18n.locale) %>" class='text-decoration-none text-muted'>
|
|
8
|
+
<small><%= t('dbdoc.dashboardbread') %></small>
|
|
9
|
+
</a>
|
|
10
|
+
<span class='slash'> / </span>
|
|
11
|
+
<a href='<%= dbdoc_engine.admin_db_design_dynamic_tables_path %>' class='text-decoration-none text-muted'>
|
|
12
|
+
<small><%= t('dbdoc.dynamic_tables_header') %></small>
|
|
13
|
+
</a>
|
|
14
|
+
<span class='slash'> / </span>
|
|
15
|
+
<small><span class='text-custom-primary fw-medium'><%= t('dbdoc.deleted_table_groups') %></span></small>
|
|
16
|
+
</div>
|
|
17
|
+
<div class='container-fluid mt-4 ps-5 pe-5'>
|
|
18
|
+
<!-- Page Heading -->
|
|
19
|
+
<div class='mb-4'>
|
|
20
|
+
<h4 class='fw-bold mb-0 text-custom-primary mb-4'>
|
|
21
|
+
<%= t('dbdoc.deleted_table_groups_h') %>
|
|
22
|
+
</h4>
|
|
23
|
+
<!-- Responsive search and action buttons row -->
|
|
24
|
+
<div class='row mb-3'>
|
|
25
|
+
<!-- Search Form -->
|
|
26
|
+
<div class='col-lg-8 col-md-7 col-sm-12 mb-2 mb-md-0'>
|
|
27
|
+
<%= form_with url: deleted_groups_admin_db_design_table_groups_path,
|
|
28
|
+
method: :get,
|
|
29
|
+
data: { turbo_frame: 'deleted_table_groups_results', controller: 'auto-submit' } do |f| %>
|
|
30
|
+
<%= f.hidden_field :locale, value: I18n.locale %>
|
|
31
|
+
<div class='input-group shadow-sm'>
|
|
32
|
+
<span class='input-group-text bg-white border-end-0'>
|
|
33
|
+
<i class='bi bi-search text-muted'></i>
|
|
34
|
+
</span>
|
|
35
|
+
<%= f.text_field :search,
|
|
36
|
+
value: params[:search],
|
|
37
|
+
class: 'form-control border-start-0',
|
|
38
|
+
placeholder: t('dbdoc.search_by_group_name'),
|
|
39
|
+
'aria-label': 'Search deleted groups',
|
|
40
|
+
data: { action: 'input->auto-submit#submit' } %>
|
|
41
|
+
<% if params[:search].present? %>
|
|
42
|
+
<%= link_to dbdoc_engine.deleted_groups_admin_db_design_table_groups_path, class: 'btn btn-outline-secondary' do %>
|
|
43
|
+
<small><i class='bi bi-x-circle'></i> Clear</small>
|
|
44
|
+
<% end %>
|
|
45
|
+
<% end %>
|
|
46
|
+
</div>
|
|
47
|
+
<% end %>
|
|
48
|
+
</div>
|
|
49
|
+
<!-- Action Button -->
|
|
50
|
+
<div class='col-lg-4 col-md-5 col-sm-12 d-flex justify-content-md-end justify-content-sm-start mt-2 mt-md-0'>
|
|
51
|
+
<%= link_to dbdoc_engine.admin_db_design_table_groups_path,
|
|
52
|
+
class: 'btn btn-outline-primary shadow-sm d-flex align-items-center' do %>
|
|
53
|
+
<small><i class='bi bi-eye-fill me-2'></i><span class="d-none d-sm-inline"><%= t('dbdoc.show_active') %></span></small>
|
|
54
|
+
<% end %>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
<!-- Render Partial for Deleted Table Groups -->
|
|
59
|
+
<%= render 'deleted_table_groups_list', table_groups: @table_groups %>
|
|
60
|
+
</div>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<%# Table Groups - Edit Page. This view provides the UI for editing an existing table group %>
|
|
2
|
+
<%# Page heading with icon %>
|
|
3
|
+
<!-- Custom Styled Breadcrumbs -->
|
|
4
|
+
<div class='d-flex align-items-center mb-3 breadcrumb-container mt-4 ms-5'>
|
|
5
|
+
<a href='<%= dbdoc_engine.root_path %>' class='text-decoration-none text-muted'>
|
|
6
|
+
<small><i class='bi bi-house-door'></i></small>
|
|
7
|
+
</a>
|
|
8
|
+
<span class='slash'> / </span>
|
|
9
|
+
<a href="<%= dbdoc_engine.admin_dashboard_path(locale: I18n.locale) %>" class='text-decoration-none text-muted'>
|
|
10
|
+
<small><%= t('dbdoc.dashboardbread') %></small>
|
|
11
|
+
</a>
|
|
12
|
+
<span class='slash'> / </span>
|
|
13
|
+
<a href='<%= dbdoc_engine.admin_db_design_table_groups_path %>' class='text-decoration-none text-muted'>
|
|
14
|
+
<small><%= t('dbdoc.tablegroups') %></small>
|
|
15
|
+
</a>
|
|
16
|
+
<span class='slash'> / </span>
|
|
17
|
+
<small><span class='text-custom-primary fw-medium'><%= t('dbdoc.editgroup') %></span></small>
|
|
18
|
+
</div>
|
|
19
|
+
<div class='d-flex justify-content-between align-items-center mb-4 ms-4'>
|
|
20
|
+
<h4 class='fw-bold mt-3 ms-4 mb-2 text-custom-primary'>
|
|
21
|
+
<i class='bi bi-pencil-square me-1 text-custom-primary'></i><%= t('dbdoc.edit_table_group_bold') %>
|
|
22
|
+
</h4>
|
|
23
|
+
</div>
|
|
24
|
+
<%# Render the form partial with the table group instance %>
|
|
25
|
+
<%= render 'form', table_group: @table_group %>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
<div class='container-fluid mt-4 ps-5 pe-5'>
|
|
2
|
+
<!-- Custom Styled Breadcrumbs -->
|
|
3
|
+
<div class='d-flex align-items-center mb-3 breadcrumb-container'>
|
|
4
|
+
<nav aria-label="breadcrumb">
|
|
5
|
+
<ol class="breadcrumb mb-3 breadcrumb-container align-items-center">
|
|
6
|
+
<li class="breadcrumb-item p-0 m-0">
|
|
7
|
+
<a href="<%= dbdoc_engine.root_path %>" class="text-decoration-none text-muted">
|
|
8
|
+
<small><i class="bi bi-house-door pe-2"></i></small>
|
|
9
|
+
</a>
|
|
10
|
+
</li>
|
|
11
|
+
<li class="breadcrumb-item p-0 m-0">
|
|
12
|
+
<a href="<%= dbdoc_engine.admin_dashboard_path(locale: I18n.locale) %>" class="text-decoration-none text-muted pe-2">
|
|
13
|
+
<small><%= t('dbdoc.dashboardbread') %></small>
|
|
14
|
+
</a>
|
|
15
|
+
</li>
|
|
16
|
+
<li class="breadcrumb-item active p-0 m-0" aria-current="page">
|
|
17
|
+
<span class="text-custom-primary fw-medium"><small><%= t('dbdoc.tablegroups') %></small></span>
|
|
18
|
+
</li>
|
|
19
|
+
</ol>
|
|
20
|
+
</nav>
|
|
21
|
+
</div>
|
|
22
|
+
<!-- Page Heading -->
|
|
23
|
+
<div class='mb-4'>
|
|
24
|
+
<h4 class='fw-bold mb-3 text-custom-primary mb-4'>
|
|
25
|
+
<%= t('dbdoc.table_groups') %>
|
|
26
|
+
</h4>
|
|
27
|
+
|
|
28
|
+
<!-- Search and Action Buttons -->
|
|
29
|
+
<div class='row mb-3'>
|
|
30
|
+
<!-- Search Form -->
|
|
31
|
+
<div class='col-lg-8 col-md-7 col-sm-12 mb-2 mb-md-0'>
|
|
32
|
+
<%= form_with url: admin_db_design_table_groups_path, method: :get, data: { turbo_frame: 'table_groups_results', controller: 'auto-submit' } do |f| %>
|
|
33
|
+
<%= f.hidden_field :locale, value: I18n.locale %>
|
|
34
|
+
<div class='input-group shadow-sm'>
|
|
35
|
+
<span class='input-group-text bg-white border-end-0'>
|
|
36
|
+
<small><i class='bi bi-search text-muted'></i></small>
|
|
37
|
+
</span>
|
|
38
|
+
<%= f.text_field :search, value: @search_query, class: 'form-control border-start-0',
|
|
39
|
+
placeholder: t('dbdoc.search_by_group_name'),
|
|
40
|
+
'aria-label': 'Search groups',
|
|
41
|
+
data: { action: 'input->auto-submit#submit' } %>
|
|
42
|
+
<% if @search_query.present? %>
|
|
43
|
+
<%= link_to dbdoc_engine.admin_db_design_table_groups_path, class: 'btn btn-outline-secondary' do %>
|
|
44
|
+
<small><i class='bi bi-x-circle'></i></small>
|
|
45
|
+
<% end %>
|
|
46
|
+
<% end %>
|
|
47
|
+
</div>
|
|
48
|
+
<% end %>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<!-- Action Buttons -->
|
|
52
|
+
<div class='col-lg-4 col-md-5 col-sm-12 d-flex justify-content-md-end justify-content-sm-start mt-2 mt-md-0'>
|
|
53
|
+
<div class='d-flex gap-2 flex-wrap'>
|
|
54
|
+
<% if can_delete? %>
|
|
55
|
+
<%= link_to dbdoc_engine.deleted_groups_admin_db_design_table_groups_path, class: 'btn btn-outline-danger shadow-sm d-flex align-items-center btn-sm' do %>
|
|
56
|
+
<small><i class='bi bi-trash me-1'></i><span class="d-none d-sm-inline"><%= t('dbdoc.view_deleted') %></span></small>
|
|
57
|
+
<% end %>
|
|
58
|
+
<% end %>
|
|
59
|
+
|
|
60
|
+
<% if can_edit? %>
|
|
61
|
+
<%= link_to dbdoc_engine.new_admin_db_design_table_group_path, class: 'btn btn-outline-success shadow-sm d-flex align-items-center btn-sm' do %>
|
|
62
|
+
<small><i class='bi bi-plus-circle-fill me-1'></i><span class="d-none d-sm-inline"><%= t('dbdoc.new') %></span></small>
|
|
63
|
+
<% end %>
|
|
64
|
+
<% end %>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
<!-- Table Card -->
|
|
70
|
+
<div class='card shadow mb-4'>
|
|
71
|
+
<div class='card-body p-0'>
|
|
72
|
+
<!-- Search Results Status -->
|
|
73
|
+
<% if @search_query.present? %>
|
|
74
|
+
<div class='alert alert-info mb-3'>
|
|
75
|
+
<div class='d-flex align-items-center'>
|
|
76
|
+
<small><i class='bi bi-info-circle me-2'></i>
|
|
77
|
+
<span>Found <%= @table_groups.count %> group<%= @table_groups.count != 1 ? 's' : '' %> matching '<%= @search_query %>'</span></small>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<% end %>
|
|
81
|
+
<!-- Render Partial -->
|
|
82
|
+
<%= render 'table_groups_list', table_groups: @table_groups, search_query: @search_query %>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<%# Table Groups - New Group Page. This view provides the UI for creating a new table group %>
|
|
2
|
+
<% content_for :title, t('dbdoc.new_table_group') %>
|
|
3
|
+
<!-- Custom Styled Breadcrumbs -->
|
|
4
|
+
<div class='d-flex align-items-center mb-3 breadcrumb-container mt-4 ms-5'>
|
|
5
|
+
<a href='<%= dbdoc_engine.root_path %>' class='text-decoration-none text-muted'>
|
|
6
|
+
<small><i class='bi bi-house-door'></i></small>
|
|
7
|
+
</a>
|
|
8
|
+
<span class='slash'> / </span>
|
|
9
|
+
<a href="<%= dbdoc_engine.admin_dashboard_path(locale: I18n.locale) %>" class='text-decoration-none text-muted'>
|
|
10
|
+
<small><%= t('dbdoc.dashboardbread') %></small>
|
|
11
|
+
</a>
|
|
12
|
+
<span class='slash'> / </span>
|
|
13
|
+
<a href='<%= dbdoc_engine.admin_db_design_table_groups_path %>' class='text-decoration-none text-muted'>
|
|
14
|
+
<small><%= t('dbdoc.tablegroups') %></small>
|
|
15
|
+
</a>
|
|
16
|
+
<span class='slash'> / </span>
|
|
17
|
+
<small><span class='text-custom-primary fw-medium'><%= t('dbdoc.newgroup') %></span></small>
|
|
18
|
+
</div>
|
|
19
|
+
<%# Page heading with icon %>
|
|
20
|
+
<div class="d-flex justify-content-between align-items-center mb-4 ms-4">
|
|
21
|
+
<h4 class="fw-bold mt-3 ms-4 mb-2 text-custom-primary">
|
|
22
|
+
<i class="bi bi-folder me-2 text-custom-primary"></i><%= t('dbdoc.new_table_group') %>
|
|
23
|
+
</h4>
|
|
24
|
+
</div>
|
|
25
|
+
<%# Render the form partial with the new table group instance %>
|
|
26
|
+
<%= render 'form', table_group: @table_group %>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<div class='login-bg'>
|
|
2
|
+
<div class='login-card-container'>
|
|
3
|
+
|
|
4
|
+
<%# Left side: Illustration and tagline %>
|
|
5
|
+
<div class='login-left'>
|
|
6
|
+
<img src='<%= asset_path('dbdoc_engine/log_in_image.png') %>' alt='Login illustration' class='login-illustration' />
|
|
7
|
+
<div class='login-title'><%= t('dbdoc.login.title') %></div>
|
|
8
|
+
<div class='login-desc'>
|
|
9
|
+
<%= t('dbdoc.login.description_html').html_safe %>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<!-- Right side: Login form -->
|
|
14
|
+
<div class='login-right'>
|
|
15
|
+
<!-- Button group: Back to main project + Language toggle -->
|
|
16
|
+
<div class="login-form-btn-row d-flex align-items-center" style="position: absolute; top: 18px; right: 24px; z-index: 10;">
|
|
17
|
+
<a href="/"
|
|
18
|
+
class="back-main-btn d-flex align-items-center justify-content-center fw-bold border-0 me-2"
|
|
19
|
+
title="<%= t('dbdoc.back_to_main_project') %>"
|
|
20
|
+
style="margin-right:10px;">
|
|
21
|
+
<%= t('dbdoc.back_to_main_project') %>
|
|
22
|
+
</a>
|
|
23
|
+
<%= render 'dbdoc_engine/shared/language_button' %>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div class='login-logo-row'>
|
|
27
|
+
<img src='/dbdoc_engine_assets/images/dblogo.svg' alt='DB DOCS Logo' class='login-logo' />
|
|
28
|
+
<span class='login-logo-text'><%= t('dbdoc.login.title') %></span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<%= form_with url: login_path, method: :post, class: 'login-form',
|
|
32
|
+
data: { controller: "login", action: "submit->login#validate" } do |f| %>
|
|
33
|
+
<div class='login-field'>
|
|
34
|
+
<%= f.label :username, t('dbdoc.login.username'), class: 'login-label' %>
|
|
35
|
+
<%= f.text_field :username, class: 'login-input',
|
|
36
|
+
data: { login_target: "username" },
|
|
37
|
+
autocomplete: 'username' %>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<div class='login-field'>
|
|
41
|
+
<%= f.label :password, t('dbdoc.login.password'), class: 'login-label' %>
|
|
42
|
+
<%= f.password_field :password, class: 'login-input',
|
|
43
|
+
data: { login_target: "password" },
|
|
44
|
+
autocomplete: 'current-password' %>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div class='login-btn-row'>
|
|
48
|
+
<%= f.submit t('dbdoc.login.login_button'), class: 'login-btn' %>
|
|
49
|
+
</div>
|
|
50
|
+
<% end %>
|
|
51
|
+
|
|
52
|
+
<!-- Hidden translations div -->
|
|
53
|
+
<div id="translations" style="display: none;"
|
|
54
|
+
data-username-required="<%= t('dbdoc.login.errors.username_required') %>"
|
|
55
|
+
data-password-required="<%= t('dbdoc.login.errors.password_required') %>">
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<%# Changelog Details Page
|
|
2
|
+
Shows detailed information about a specific change record %>
|
|
3
|
+
<div class='changelog-2-down py-4 pe-4'>
|
|
4
|
+
<!-- Back Button -->
|
|
5
|
+
<div class='mb-3'>
|
|
6
|
+
<%# Back to Change History link %>
|
|
7
|
+
<%= link_to dbdoc_engine.changelogs_path, class: 'btn back-history d-flex align-items-center' do %>
|
|
8
|
+
<i class='bi bi-arrow-left me-2'></i><%= t('dbdoc.back_to_change_history') %>
|
|
9
|
+
<% end %>
|
|
10
|
+
</div>
|
|
11
|
+
<!-- Change Details Card -->
|
|
12
|
+
<div class='card shadow-sm'>
|
|
13
|
+
<div class='card-header top'>
|
|
14
|
+
<h5 class='mb-0'><%= t('dbdoc.change_details') %></h5>
|
|
15
|
+
</div>
|
|
16
|
+
<div class='card-body'>
|
|
17
|
+
<%# Change metadata section %>
|
|
18
|
+
<div class='row mb-4'>
|
|
19
|
+
<%# Date and time information %>
|
|
20
|
+
<div class='col-md-6'>
|
|
21
|
+
<p class='changelog-2-content mb-1'><%= t('dbdoc.date_and_time') %></p>
|
|
22
|
+
<p class='changelog-2'><%= @changelog.change_timestamp.strftime('%Y-%m-%d %H:%M:%S') %></p>
|
|
23
|
+
</div>
|
|
24
|
+
<%# Changed by information %>
|
|
25
|
+
<div class='col-md-6'>
|
|
26
|
+
<p class='changelog-2-content mb-1'><%= t('dbdoc.changed_by') %></p>
|
|
27
|
+
<p class='changelog-2'><%= @changelog.changed_by %></p>
|
|
28
|
+
</div>
|
|
29
|
+
<%# Action type information %>
|
|
30
|
+
<div class='col-md-6'>
|
|
31
|
+
<p class='changelog-2-content mb-1'><%= t('dbdoc.action') %></p>
|
|
32
|
+
<p class='changelog-2'><%= format_action_badge(@changelog.action_type) %></p>
|
|
33
|
+
</div>
|
|
34
|
+
<%# Entity type information %>
|
|
35
|
+
<div class='col-md-6'>
|
|
36
|
+
<p class='changelog-2-content mb-1'><%= t('dbdoc.entity_type') %></p>
|
|
37
|
+
<p class='changelog-2'><%= format_entity_type(@changelog.entity_type) %></p>
|
|
38
|
+
</div>
|
|
39
|
+
<%# Entity name information %>
|
|
40
|
+
<div class='col-12'>
|
|
41
|
+
<p class='changelog-2-content mb-1'><%= t('dbdoc.entity_name') %></p>
|
|
42
|
+
<p class='changelog-2'><%= @changelog.entity_name %></p>
|
|
43
|
+
</div>
|
|
44
|
+
<%# Change description %>
|
|
45
|
+
<div class='col-12'>
|
|
46
|
+
<p class='changelog-2-content mb-1'><%= t('dbdoc.description') %></p>
|
|
47
|
+
<div class='description_notes border rounded p-3 bg-light'>
|
|
48
|
+
<%= @changelog.description %>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
<%# Value comparison section - only shows when values are available %>
|
|
53
|
+
<% if @changelog.previous_values.present? || @changelog.new_values.present? %>
|
|
54
|
+
<div class='pt-4'>
|
|
55
|
+
<h5 class='change-details mb-3'><%= t('dbdoc.change_details') %></h5>
|
|
56
|
+
<div class='row'>
|
|
57
|
+
<%# Previous values section %>
|
|
58
|
+
<% if @changelog.previous_values.present? %>
|
|
59
|
+
<div class='col-md-6'>
|
|
60
|
+
<h6 class='text-danger'><%= t('dbdoc.previous_values') %></h6>
|
|
61
|
+
<div class='border border-danger rounded p-3 bg-light'>
|
|
62
|
+
<pre class='text-muted mb-0'><%= JSON.pretty_generate(@changelog.previous_values) %></pre>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
<% end %>
|
|
66
|
+
<%# New values section %>
|
|
67
|
+
<% if @changelog.new_values.present? %>
|
|
68
|
+
<div class='col-md-6'>
|
|
69
|
+
<h6 class='text-success'><%= t('dbdoc.new_values') %></h6>
|
|
70
|
+
<div class='border border-success rounded p-3 bg-light'>
|
|
71
|
+
<pre class='text-muted mb-0'><%= JSON.pretty_generate(@changelog.new_values) %></pre>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
<% end %>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
<% end %>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<div class="changelog-contents py-4 pe-4">
|
|
2
|
+
<h1 class="changelogs h2 mb-4"><%= t('dbdoc.changelogs') %></h1>
|
|
3
|
+
<!-- Filter Form -->
|
|
4
|
+
<%= render 'dbdoc_engine/home/partials/filter_form', entity_type_options: entity_type_options, action_type_options: action_type_options %>
|
|
5
|
+
<!-- Changelog Table -->
|
|
6
|
+
<div class="card changelog-below">
|
|
7
|
+
<div class="table-responsive">
|
|
8
|
+
<table class="table">
|
|
9
|
+
<thead>
|
|
10
|
+
<%= render 'dbdoc_engine/home/partials/changelog_table_headers' %>
|
|
11
|
+
</thead>
|
|
12
|
+
<tbody>
|
|
13
|
+
<%= render 'dbdoc_engine/home/partials/changelog_rows', changelogs: @changelogs %>
|
|
14
|
+
</tbody>
|
|
15
|
+
</table>
|
|
16
|
+
</div>
|
|
17
|
+
<!-- Pagination Controls -->
|
|
18
|
+
<%= render 'dbdoc_engine/home/partials/pagination', collection: @changelogs %>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<%# Group details page showing tables within a specific table group %>
|
|
2
|
+
<div class='group-details' data-controller='group-details'>
|
|
3
|
+
<div class='groupdetailsinner py-4 pe-4'>
|
|
4
|
+
<div class='shadow rounded-3 main-content-body'>
|
|
5
|
+
<%# Breadcrumb navigation %>
|
|
6
|
+
<div class='d-flex align-items-center mb-2'>
|
|
7
|
+
<nav aria-label="breadcrumb">
|
|
8
|
+
<ol class="breadcrumb mb-2 align-items-center" style="background: none; padding: 0; margin: 0;">
|
|
9
|
+
<!-- Tablegroups button -->
|
|
10
|
+
<li class="breadcrumb-item p-0 m-0">
|
|
11
|
+
<button
|
|
12
|
+
class="dbdocs-breadcrumb"
|
|
13
|
+
data-action="click->group-details#navigateToEcommerce"
|
|
14
|
+
type="button">
|
|
15
|
+
<%= t('dbdoc.tablegroups') %>
|
|
16
|
+
</button>
|
|
17
|
+
</li>
|
|
18
|
+
<!-- Group name as active breadcrumb -->
|
|
19
|
+
<li class="breadcrumb-item active dbdoc-breadcrumb p-0 m-0" aria-current="page">
|
|
20
|
+
<%= @group.group_name %>
|
|
21
|
+
</li>
|
|
22
|
+
</ol>
|
|
23
|
+
</nav>
|
|
24
|
+
</div>
|
|
25
|
+
<%# Group section with colored left border %>
|
|
26
|
+
<div class='bg-white rounded-1 shadow-sm mb-4 group-section' style='border-left: 4px solid <%= @group.group_color %>;'>
|
|
27
|
+
<div class='d-flex align-items-center justify-content-between py-2 px-2 shadow-sm group-header' data-action='click->group-details#toggleGroupContentHeader'>
|
|
28
|
+
<div class='main-left'>
|
|
29
|
+
<div class='d-flex align-items-center me-3 group-header-left'>
|
|
30
|
+
<%# Table count badge with semi-transparent background of group color %>
|
|
31
|
+
<div class='badge d-inline-flex align-items-center justify-content-center rounded-circle ms-2 fw-bold group-count-badge'
|
|
32
|
+
style='background-color: <%= hex_to_rgba(@group.group_color) %>; color: <%= @group.group_color %>;'>
|
|
33
|
+
<%= @tables_count %>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<span class='group-name'><%= @group.group_name %></span>
|
|
37
|
+
</div>
|
|
38
|
+
<%# Toggle button for group content visibility %>
|
|
39
|
+
<button class='border-0 rounded-pill fw-medium fs-7 py-1 px-4 view-button active'
|
|
40
|
+
data-group-details-target='viewButton'
|
|
41
|
+
data-action='click->group-details#toggleGroupContent'>
|
|
42
|
+
<%= t('dbdoc.view') %>
|
|
43
|
+
</button>
|
|
44
|
+
</div>
|
|
45
|
+
<%# Group content section initially active/visible %>
|
|
46
|
+
<div class='group-content active' data-group-details-target='groupContent'>
|
|
47
|
+
<div class='second-page-inner table-responsive'>
|
|
48
|
+
<table class='secondpagtable'>
|
|
49
|
+
<thead>
|
|
50
|
+
<tr class='second-page-header'>
|
|
51
|
+
<th class='fw-bold group-content-names3 name-second'><%= t('dbdoc.name') %></th>
|
|
52
|
+
<th class='fw-bold group-content-names3 physical-second'><%= t('dbdoc.physicalname') %></th>
|
|
53
|
+
<th class='fw-bold group-content-names3 column-second'><%= t('dbdoc.columncount') %></th>
|
|
54
|
+
<th class='group-content-notes fw-bold remarks-second'><%= t('dbdoc.remarks') %></th>
|
|
55
|
+
</tr>
|
|
56
|
+
</thead>
|
|
57
|
+
<tbody>
|
|
58
|
+
<% if @tables_count == 0 %>
|
|
59
|
+
<tr>
|
|
60
|
+
<td colspan='4' class='no-tables-message'>
|
|
61
|
+
<%= t('dbdoc.no_tables_created_in_this_group_yet') %>
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
<% else %>
|
|
65
|
+
<% @group.db_design_dynamic_tables.each do |table| %>
|
|
66
|
+
<tr class='group-table-row2'>
|
|
67
|
+
<td class='group-table-names2'>
|
|
68
|
+
<svg width='11' height='11' viewBox='0 0 11 11' xmlns='http://www.w3.org/2000/svg'>
|
|
69
|
+
<rect width='11' height='11' fill='<%= @group.group_color %>'/>
|
|
70
|
+
</svg>
|
|
71
|
+
<a href='<%= dbdoc_engine.table_details_path(table.id) %>' class='table-link'>
|
|
72
|
+
<%= table.table_name %>
|
|
73
|
+
</a>
|
|
74
|
+
</td>
|
|
75
|
+
<td class='group-table-names2'>
|
|
76
|
+
<%= table.physical_table_name || 'N/A' %>
|
|
77
|
+
</td>
|
|
78
|
+
<td class='group-table-names2'>
|
|
79
|
+
<%= column_count(table) %>
|
|
80
|
+
</td>
|
|
81
|
+
<td class='group-table-notes2'>
|
|
82
|
+
<%= table.description || 'No description available' %>
|
|
83
|
+
</td>
|
|
84
|
+
</tr>
|
|
85
|
+
<% end %>
|
|
86
|
+
<% end %>
|
|
87
|
+
</tbody>
|
|
88
|
+
</table>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<div class='ecommerce-content' data-controller='ecommerce'>
|
|
2
|
+
<div class='ecommercewidth py-4 pe-4'>
|
|
3
|
+
<!-- Render Stats Container -->
|
|
4
|
+
<%= render 'dbdoc_engine/home/partials/stats_container' %>
|
|
5
|
+
<div class='shadow rounded-3 main-content-body'>
|
|
6
|
+
<h5 class='mb-4 fw-bold dbdocs'><%= t('dbdoc.tablegroups') %></h5>
|
|
7
|
+
<!-- Render Table Groups -->
|
|
8
|
+
<%= render 'dbdoc_engine/home/partials/table_groups' %>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<% case action_type %>
|
|
2
|
+
<% when 'create' %>
|
|
3
|
+
<!-- Display a green badge when the action type is 'create' -->
|
|
4
|
+
<span class='badge bg-success'><%= t('dbdoc.create') %></span>
|
|
5
|
+
<% when 'update' %>
|
|
6
|
+
<!-- Display a yellow badge when the action type is 'update' -->
|
|
7
|
+
<span class='badge bg-warning text-dark'><%= t('dbdoc.update') %></span>
|
|
8
|
+
<% when 'delete' %>
|
|
9
|
+
<!-- Display a red badge when the action type is 'delete' -->
|
|
10
|
+
<span class='badge bg-danger'><%= t('dbdoc.delete') %></span>
|
|
11
|
+
<% end %>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<div class='d-flex align-items-center mb-2'>
|
|
2
|
+
<nav aria-label="breadcrumb">
|
|
3
|
+
<ol class="breadcrumb mb-2 align-items-center" style="background: none; padding: 0; margin: 0;">
|
|
4
|
+
<li class="breadcrumb-item p-0 m-0">
|
|
5
|
+
<button
|
|
6
|
+
class="dbdocs-breadcrumb"
|
|
7
|
+
data-action="click->table-details#navigateToEcommerce"
|
|
8
|
+
type="button">
|
|
9
|
+
<%= t('dbdoc.tablegroups') %>
|
|
10
|
+
</button>
|
|
11
|
+
</li>
|
|
12
|
+
<% if local_assigns.key?(:group) && group %>
|
|
13
|
+
<li class="breadcrumb-item p-0 m-0 fw-bold">
|
|
14
|
+
<button
|
|
15
|
+
class="dbdocs-breadcrumb"
|
|
16
|
+
data-action="click->table-details#navigateToGroup"
|
|
17
|
+
data-group-id="<%= group.id %>"
|
|
18
|
+
type="button">
|
|
19
|
+
<%= group.group_name %>
|
|
20
|
+
</button>
|
|
21
|
+
</li>
|
|
22
|
+
<% end %>
|
|
23
|
+
<% if local_assigns.key?(:table) && table %>
|
|
24
|
+
<li class="breadcrumb-item active dbdoc-breadcrumb p-0 m-0" aria-current="page">
|
|
25
|
+
<%= table.table_name %>
|
|
26
|
+
</li>
|
|
27
|
+
<% end %>
|
|
28
|
+
</ol>
|
|
29
|
+
</nav>
|
|
30
|
+
</div>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<% if changelogs.any? %>
|
|
2
|
+
<!-- Check if there are any changelog records -->
|
|
3
|
+
<% changelogs.each do |log| %>
|
|
4
|
+
<!-- Iterate over each changelog entry -->
|
|
5
|
+
<tr>
|
|
6
|
+
<!-- Display the timestamp of the change, formatted as 'YYYY-MM-DD HH:MM:SS' -->
|
|
7
|
+
<td class='contents-changelog'><%= log.change_timestamp.strftime('%Y-%m-%d %H:%M:%S') %></td>
|
|
8
|
+
|
|
9
|
+
<td>
|
|
10
|
+
<!-- Render a partial to display an action badge based on the action type -->
|
|
11
|
+
<%= render 'dbdoc_engine/home/partials/action_badge', action_type: log.action_type %>
|
|
12
|
+
</td>
|
|
13
|
+
|
|
14
|
+
<!-- Display the entity type after formatting it using a helper method -->
|
|
15
|
+
<td class='contents-changelog'><%= format_entity_type(log.entity_type) %></td>
|
|
16
|
+
|
|
17
|
+
<!-- Display the name of the changed entity -->
|
|
18
|
+
<td class='contents-changelog'><%= log.entity_name %></td>
|
|
19
|
+
|
|
20
|
+
<!-- Display the change description with a max width of 250px and text truncation -->
|
|
21
|
+
<td class='contents-changelog text-truncate'><%= log.description %></td>
|
|
22
|
+
|
|
23
|
+
<!-- Display the name of the user who made the change -->
|
|
24
|
+
<td class='contents-changelog'><%= log.changed_by %></td>
|
|
25
|
+
|
|
26
|
+
<!-- Link to view more details about the specific changelog entry -->
|
|
27
|
+
<td><%= link_to t('dbdoc.view'), dbdoc_engine.changelog_details_path(log), class: 'view-changelog' %></td>
|
|
28
|
+
</tr>
|
|
29
|
+
<% end %>
|
|
30
|
+
<% else %>
|
|
31
|
+
<!-- If no changelogs exist, display a message -->
|
|
32
|
+
<tr>
|
|
33
|
+
<td colspan='7' class='text-center text-muted'>No changes found matching your criteria.</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<% end %>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<tr>
|
|
2
|
+
<!-- Table header for the date and time of the change -->
|
|
3
|
+
<th class= 'text-secondary'><%= t('dbdoc.date_and_time') %></th>
|
|
4
|
+
<!-- Table header for the type of action performed (e.g., create, update, delete) -->
|
|
5
|
+
<th class= 'text-secondary'><%= t('dbdoc.action') %></th>
|
|
6
|
+
<!-- Table header for the entity type that was modified (e.g., table, column, user) -->
|
|
7
|
+
<th class= 'text-secondary'><%= t('dbdoc.entity_type') %></th>
|
|
8
|
+
<!-- Table header for the name of the specific entity that was changed -->
|
|
9
|
+
<th class= 'text-secondary'><%= t('dbdoc.entity_name') %></th>
|
|
10
|
+
<!-- Table header for a brief description of the change made -->
|
|
11
|
+
<th class= 'text-secondary'><%= t('dbdoc.description') %></th>
|
|
12
|
+
<!-- Table header for displaying the user who made the change -->
|
|
13
|
+
<th class= 'text-secondary'><%= t('dbdoc.changed_by') %></th>
|
|
14
|
+
<!-- Table header for a link to view detailed information about the change -->
|
|
15
|
+
<th class= 'text-secondary'><%= t('dbdoc.details') %></th>
|
|
16
|
+
</tr>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- Table header row for group content/column details -->
|
|
2
|
+
<tr class='group-content-header'>
|
|
3
|
+
<!-- Logical name of the column/group -->
|
|
4
|
+
<th class='text-secondary third-header third-header-1' width= "13%"><%= t('dbdoc.name') %></th>
|
|
5
|
+
<!-- Physical name in the database -->
|
|
6
|
+
<th class='text-secondary third-header' width= "11%"><%= t('dbdoc.physicalname') %></th>
|
|
7
|
+
<!-- Data type (e.g., integer, varchar) -->
|
|
8
|
+
<th class='text-secondary third-header' width= "7%"><%= t('dbdoc.type') %></th>
|
|
9
|
+
<!-- Length/size of the field -->
|
|
10
|
+
<th class='text-secondary third-header' width="5%"><%= t('dbdoc.length') %></th>
|
|
11
|
+
<!-- Additional settings (e.g., NOT NULL, AUTO_INCREMENT) -->
|
|
12
|
+
<th class='text-secondary third-header' width="12%"><%= t('dbdoc.constraints') %></th>
|
|
13
|
+
<!-- Foreign key or reference information -->
|
|
14
|
+
<th class='text-secondary third-header' width="3%"><%= t('dbdoc.references') %></th>
|
|
15
|
+
<!-- Default value for the column -->
|
|
16
|
+
<th class='text-secondary third-header' width="8%"><%= t('dbdoc.defaultvalue') %></th>
|
|
17
|
+
<!-- Sample value for the column -->
|
|
18
|
+
<th class='text-secondary third-header' width="9%"><%= t('dbdoc.samplevalue') %></th>
|
|
19
|
+
<!-- Decimal Precision for the column -->
|
|
20
|
+
<th class='text-secondary third-header' width="9.5%"><%= t('dbdoc.decimalprecision') %></th>
|
|
21
|
+
<!-- Remarks or comments about the column -->
|
|
22
|
+
<th class='text-secondary third-header' width="30%"><%= t('dbdoc.remarks') %></th>
|
|
23
|
+
</tr>
|