diff --git a/gresource.xml b/gresource.xml
index 835a942..b6f2a4b 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -3,6 +3,7 @@
ubl-settings-services.glade
ubl-settings-services-terminal.glade
+ ubl-settings-services-log.glade
ubl-settings-services.css
diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c
index 935b734..c7a4bdb 100644
--- a/source/ubl-settings-services.c
+++ b/source/ubl-settings-services.c
@@ -39,7 +39,7 @@ void on_config_global_local_save(){
}
void on_config_local_save(){
- yon_save_proceed("local",YON_CONFIG_LOCAL,"system","SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK",NULL);
+ yon_save_proceed("system",YON_CONFIG_LOCAL,"system","SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK",NULL);
}
@@ -422,8 +422,40 @@ void on_info_clicked(GtkWidget *self, main_window *widgets){
}
}
-void on_log_show(){
+log_window *yon_log_window_new(){
+ log_window *window = malloc(sizeof(log_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_log);
+ window->Window = yon_gtk_builder_get_widget(builder,"MonitorWindow");
+ window->SystemTerminal = yon_gtk_builder_get_widget(builder,"SystemTerminal");
+ window->webHeaderNameLabel = yon_gtk_builder_get_widget(builder,"webHeaderNameLabel");
+ window->target=NULL;
+ yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"terminal_window");
+ return window;
+}
+void on_log_show(GtkWidget *self, main_window *widgets){
+ if (self){};
+ GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2);
+ GtkTreeIter iter;
+ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
+ log_window *window = yon_log_window_new();
+ char *name;
+ gtk_tree_model_get(model,&iter,5,&name,-1);
+ yon_terminal_integrated_start(window->SystemTerminal,start_log_command(name),NULL,NULL);
+ GdkRGBA rgba;
+ rgba.alpha=1;
+ rgba.red=0.95;
+ rgba.green=0.95;
+ rgba.blue=0.95;
+ vte_terminal_set_color_cursor(VTE_TERMINAL(window->SystemTerminal),&rgba);
+ vte_terminal_set_color_background(VTE_TERMINAL(window->SystemTerminal),&rgba);
+ rgba.red=0;
+ rgba.green=0;
+ rgba.blue=0;
+ vte_terminal_set_color_foreground(VTE_TERMINAL(window->SystemTerminal),&rgba);
+ gtk_widget_show(window->Window);
+ }
+
}
void *yon_unthreaded_config_load(void *widgets){
@@ -515,38 +547,49 @@ gboolean yon_interface_update(main_window *widgets){
for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->liststore2),&iter)){
char *name;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->liststore2),&iter,5,&name,-1);
- char *name_parsed = yon_char_divide(name,yon_char_find_last(name,'.'));
- free(name);
+ char *name_copy = yon_char_new(name);
+ char *name_parsed = yon_char_divide(name_copy,yon_char_find_last(name_copy,'.'));
if (!yon_char_is_empty(start)){
- if (strstr(start,name_parsed))
+ if (!strcmp(start,name))
+ gtk_list_store_set(widgets->liststore2,&iter,0,1,-1);
+ else if (strstr(start,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,0,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,0,0,-1);
}
if (!yon_char_is_empty(stop)){
- if (strstr(stop,name_parsed))
+ if (strstr(stop,name))
+ gtk_list_store_set(widgets->liststore2,&iter,1,1,-1);
+ else if (strstr(stop,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,1,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,1,0,-1);
}
if (!yon_char_is_empty(block)){
- if (strstr(block,name_parsed))
+ if (strstr(block,name))
+ gtk_list_store_set(widgets->liststore2,&iter,2,1,-1);
+ else if (strstr(block,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,2,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,2,0,-1);
}
if (!yon_char_is_empty(launched)){
- if (strstr(launched,name_parsed))
+ if (strstr(launched,name))
+ gtk_list_store_set(widgets->liststore2,&iter,4,1,-1);
+ else if (strstr(launched,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,4,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,4,0,-1);
}
if (!yon_char_is_empty(enabled)){
- if (strstr(enabled,name_parsed))
+ if (strstr(enabled,name))
+ gtk_list_store_set(widgets->liststore2,&iter,3,1,-1);
+ else if (strstr(enabled,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,3,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,3,0,-1);
}
+ free(name);
free(name_parsed);
while(gtk_events_pending()) gtk_main_iteration();
}
diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h
index 21ea7a8..a98cd69 100644
--- a/source/ubl-settings-services.h
+++ b/source/ubl-settings-services.h
@@ -24,6 +24,7 @@
#define glade_path "/com/ublinux/ui/ubl-settings-services.glade"
#define glade_path_terminal "/com/ublinux/ui/ubl-settings-services-terminal.glade"
+#define glade_path_log "/com/ublinux/ui/ubl-settings-services-log.glade"
#define banner_path "/com/ublinux/images/ubl-settings-services-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-services.css"
@@ -45,6 +46,8 @@
#define service_kill_command(target) yon_char_append("systemctl kill ",target)
#define service_check_active_command(target) yon_char_append("systemctl is-active ",target)
+#define start_log_command(target) yon_char_append("journalctl --all --no-pager --unit ",target)
+
typedef char* string;
string version_application;
@@ -180,6 +183,13 @@ typedef struct {
char *target;
} terminal_window;
+typedef struct {
+ GtkWidget *Window;
+ GtkWidget *SystemTerminal;
+ GtkWidget *webHeaderNameLabel;
+ char *target;
+} log_window;
+
void on_config_local_load(GtkWidget *self,main_window *widgets);
void on_config_global_load(GtkWidget *self,main_window *widgets);
@@ -190,6 +200,8 @@ void on_config_local_save();
void on_config_global_save();
+log_window *yon_log_window_new();
+
gboolean yon_interface_update(main_window *widgets);
GtkWidget *yon_menu_button_create(char *icon_name, char *text);
diff --git a/ubl-settings-services-log.glade b/ubl-settings-services-log.glade
new file mode 100644
index 0000000..9b05667
--- /dev/null
+++ b/ubl-settings-services-log.glade
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade
index 55fd278..899ea95 100644
--- a/ubl-settings-services.glade
+++ b/ubl-settings-services.glade
@@ -389,7 +389,7 @@
True
True
liststore2
- 6
+ 3
horizontal