solid_log-ui 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/MIT-LICENSE +20 -0
- data/README.md +295 -0
- data/Rakefile +12 -0
- data/app/assets/javascripts/application.js +6 -0
- data/app/assets/javascripts/solid_log/checkbox_dropdown.js +171 -0
- data/app/assets/javascripts/solid_log/filter_state.js +138 -0
- data/app/assets/javascripts/solid_log/jump_to_live.js +119 -0
- data/app/assets/javascripts/solid_log/live_tail.js +476 -0
- data/app/assets/javascripts/solid_log/live_tail.js.bak +270 -0
- data/app/assets/javascripts/solid_log/log_filters.js +37 -0
- data/app/assets/javascripts/solid_log/stream_scroll.js +195 -0
- data/app/assets/javascripts/solid_log/timeline_histogram.js +162 -0
- data/app/assets/javascripts/solid_log/toast.js +50 -0
- data/app/assets/stylesheets/solid_log/application.css +1329 -0
- data/app/assets/stylesheets/solid_log/components.css +1506 -0
- data/app/assets/stylesheets/solid_log/mission_control.css +398 -0
- data/app/channels/solid_log/ui/application_cable/channel.rb +8 -0
- data/app/channels/solid_log/ui/application_cable/connection.rb +10 -0
- data/app/channels/solid_log/ui/log_stream_channel.rb +132 -0
- data/app/controllers/solid_log/ui/base_controller.rb +122 -0
- data/app/controllers/solid_log/ui/dashboard_controller.rb +32 -0
- data/app/controllers/solid_log/ui/entries_controller.rb +34 -0
- data/app/controllers/solid_log/ui/fields_controller.rb +57 -0
- data/app/controllers/solid_log/ui/streams_controller.rb +204 -0
- data/app/controllers/solid_log/ui/timelines_controller.rb +29 -0
- data/app/controllers/solid_log/ui/tokens_controller.rb +46 -0
- data/app/helpers/solid_log/ui/application_helper.rb +99 -0
- data/app/helpers/solid_log/ui/dashboard_helper.rb +46 -0
- data/app/helpers/solid_log/ui/entries_helper.rb +16 -0
- data/app/helpers/solid_log/ui/timeline_helper.rb +39 -0
- data/app/services/solid_log/ui/live_tail_broadcaster.rb +81 -0
- data/app/views/layouts/solid_log/ui/application.html.erb +53 -0
- data/app/views/solid_log/ui/dashboard/index.html.erb +178 -0
- data/app/views/solid_log/ui/entries/show.html.erb +132 -0
- data/app/views/solid_log/ui/fields/index.html.erb +133 -0
- data/app/views/solid_log/ui/shared/_checkbox_dropdown.html.erb +64 -0
- data/app/views/solid_log/ui/shared/_multiselect_filter.html.erb +37 -0
- data/app/views/solid_log/ui/shared/_toast.html.erb +7 -0
- data/app/views/solid_log/ui/shared/_toast_message.html.erb +30 -0
- data/app/views/solid_log/ui/streams/_filter_form.html.erb +207 -0
- data/app/views/solid_log/ui/streams/_footer.html.erb +37 -0
- data/app/views/solid_log/ui/streams/_log_entries.html.erb +5 -0
- data/app/views/solid_log/ui/streams/_log_row.html.erb +5 -0
- data/app/views/solid_log/ui/streams/_log_row_compact.html.erb +37 -0
- data/app/views/solid_log/ui/streams/_log_row_expanded.html.erb +67 -0
- data/app/views/solid_log/ui/streams/_log_stream_content.html.erb +8 -0
- data/app/views/solid_log/ui/streams/_timeline.html.erb +68 -0
- data/app/views/solid_log/ui/streams/index.html.erb +22 -0
- data/app/views/solid_log/ui/timelines/show_job.html.erb +78 -0
- data/app/views/solid_log/ui/timelines/show_request.html.erb +88 -0
- data/app/views/solid_log/ui/tokens/index.html.erb +95 -0
- data/app/views/solid_log/ui/tokens/new.html.erb +47 -0
- data/config/importmap.rb +15 -0
- data/config/routes.rb +27 -0
- data/lib/solid_log/ui/api_client.rb +117 -0
- data/lib/solid_log/ui/configuration.rb +99 -0
- data/lib/solid_log/ui/data_source.rb +146 -0
- data/lib/solid_log/ui/engine.rb +76 -0
- data/lib/solid_log/ui/version.rb +5 -0
- data/lib/solid_log/ui.rb +27 -0
- data/lib/solid_log-ui.rb +2 -0
- metadata +290 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Toast Notification System
|
|
2
|
+
(function() {
|
|
3
|
+
window.SolidLogToast = {
|
|
4
|
+
show: function(message, type = 'info', duration = 3000) {
|
|
5
|
+
const container = document.getElementById('toast-container');
|
|
6
|
+
if (!container) {
|
|
7
|
+
console.warn('Toast container not found');
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const toast = document.createElement('div');
|
|
12
|
+
toast.className = `toast toast-${type}`;
|
|
13
|
+
|
|
14
|
+
const icons = {
|
|
15
|
+
success: '✓',
|
|
16
|
+
info: 'ℹ',
|
|
17
|
+
warning: '⚠',
|
|
18
|
+
error: '✕'
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
toast.innerHTML = `
|
|
22
|
+
<span class="toast-icon">${icons[type] || icons.info}</span>
|
|
23
|
+
<span class="toast-message">${message}</span>
|
|
24
|
+
<button type="button" class="toast-close" aria-label="Close">×</button>
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
const closeBtn = toast.querySelector('.toast-close');
|
|
28
|
+
closeBtn.addEventListener('click', () => {
|
|
29
|
+
this.dismiss(toast);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
container.appendChild(toast);
|
|
33
|
+
|
|
34
|
+
if (duration > 0) {
|
|
35
|
+
setTimeout(() => {
|
|
36
|
+
this.dismiss(toast);
|
|
37
|
+
}, duration);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return toast;
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
dismiss: function(toast) {
|
|
44
|
+
toast.classList.add('toast-dismissing');
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
toast.remove();
|
|
47
|
+
}, 200);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
})();
|