diff --git a/logging_services.csv b/logging_services.csv index 1483366..68cbbe0 100644 --- a/logging_services.csv +++ b/logging_services.csv @@ -1,5 +1,5 @@ -Service_Name;Service_Description;Сommand_Start;Сommand_Stop;Сommand_Enable;Сommand_Disable;Сommand_Status -journald;System event log;systemctl start systemd-journald.service;systemctl stop systemd-journald.service;ubconfig --default set [system] SERVICES_DISABLE--=systemd-journald.service SERVICES_ENABLE++=systemd-journald.service;ubconfig --default set [system] SERVICES_ENABLE--=systemd-journald.service SERVICES_DISABLE++=systemd-journald.service;systemctl status systemd-journald.service -logrotate;System event log rotation service;systemctl start logrotate.timer;systemctl stop logrotate.timer logrotate.service;ubconfig --default set [system] SERVICES_DISABLE--=logrotate.timer SERVICES_ENABLE++=logrotate.timer;ubconfig --default set [system] SERVICES_ENABLE--=logrotate.timer SERVICES_DISABLE++=logrotate.timer;systemctl status logrotate.service -#metalog;System event log;systemctl start metalog.service;systemctl stop metalog.service;ubconfig --default set [system] SERVICES_DISABLE--=metalog.service SERVICES_ENABLE++=metalog.service;ubconfig --default set [system] SERVICES_ENABLE--=metalog.service SERVICES_DISABLE++=metalog.service;systemctl status metalog.service -#syslog-ng;Service for collecting messages from system events of active network devices;systemctl start syslog-ng.service;systemctl stop syslog-ng.service;ubconfig --default set [system] SERVICES_DISABLE--=syslog-ng.service SERVICES_ENABLE++=syslog-ng.service;ubconfig --default set [system] SERVICES_ENABLE--=syslog-ng.service SERVICES_DISABLE++=syslog-ng.service;systemctl status syslog-ng.service \ No newline at end of file +Service_Name;Service_Description;Сommand_Start;Сommand_Stop;Сommand_Enable;Сommand_Disable;Сommand_Status;Сommand_Status_Active;Сommand_Status_Enabled +journald;System event log;systemctl start systemd-journald.service;systemctl stop systemd-journald.service;ubconfig --default set [system] SERVICES_DISABLE--=systemd-journald.service SERVICES_ENABLE++=systemd-journald.service;ubconfig --default set [system] SERVICES_ENABLE--=systemd-journald.service SERVICES_DISABLE++=systemd-journald.service;systemctl status systemd-journald.service --no-pager;systemctl --quiet is-active systemd-journald.service;systemctl --quiet is-enabled systemd-journald.service +logrotate;System event log rotation service;systemctl start logrotate.timer logrotate.service;systemctl stop logrotate.timer logrotate.service;ubconfig --default set [system] SERVICES_DISABLE--=logrotate.timer SERVICES_ENABLE++=logrotate.timer;ubconfig --default set [system] SERVICES_ENABLE--=logrotate.timer SERVICES_DISABLE++=logrotate.timer;systemctl status logrotate.timer logrotate.service --no-pager;systemctl --quiet is-active logrotate.timer;systemctl --quiet is-enabled logrotate.timer +#metalog;System event log;systemctl start metalog.service;systemctl stop metalog.service;ubconfig --default set [system] SERVICES_DISABLE--=metalog.service SERVICES_ENABLE++=metalog.service;ubconfig --default set [system] SERVICES_ENABLE--=metalog.service SERVICES_DISABLE++=metalog.service;systemctl status metalog.service --no-pager;systemctl --quiet is-active metalog.service;systemctl --quiet is-enabled metalog.service +#syslog-ng;Service for collecting messages from system events of active network devices;systemctl start syslog-ng.service;systemctl stop syslog-ng.service;ubconfig --default set [system] SERVICES_DISABLE--=syslog-ng.service SERVICES_ENABLE++=syslog-ng.service;ubconfig --default set [system] SERVICES_ENABLE--=syslog-ng.service SERVICES_DISABLE++=syslog-ng.service;systemctl status syslog-ng.service --no-pager;systemctl --quiet is-active syslog-ng.service;systemctl --quiet is-enabled syslog-ng.service \ No newline at end of file diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index 57cd416..baf29b5 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -94,6 +94,16 @@ void update_loaded_logrotate(){ } } +void yon_journald_size_update(journald_window *window){ + int sz; + config_str logsize = yon_config_load(journald_size_command,&sz); + if (logsize){ + if (logsize[0][strlen(logsize[0])-1]=='\n') + logsize[0][strlen(logsize[0])-1]='\0'; + } + gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),logsize[0]); +} + int yon_load_proceed(YON_CONFIG_TYPE type){ if (type!=YON_CONFIG_CUSTOM){ yon_config_clean(); @@ -440,6 +450,7 @@ void on_inspector_open(GtkWidget *, main_window *widgets){ inspector_window *window = malloc(sizeof(inspector_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_inspector_path); window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); + window->TitleLabel=yon_gtk_builder_get_widget(builder,"headerTopic"); window->ShowSinceBootButton=yon_gtk_builder_get_widget(builder,"ShowSinceBootButton"); window->NewMessagesButton=yon_gtk_builder_get_widget(builder,"NewMessagesButton"); window->ShowKernelButton=yon_gtk_builder_get_widget(builder,"ShowKernelButton"); @@ -453,7 +464,6 @@ void on_inspector_open(GtkWidget *, main_window *widgets){ window->JournaldTree=yon_gtk_builder_get_widget(builder,"JournaldTree"); window->list=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"InspectorWindow"); - gtk_window_set_title(GTK_WINDOW(window->MainWindow),INSPECTOR_TITLE_LABEL); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window)); GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(window->JournaldTree)); @@ -481,6 +491,8 @@ void on_inspector_open(GtkWidget *, main_window *widgets){ gtk_tree_model_get(model,&iter,0,&name,1,&paths,-1); window->journal_name=name; window->journal_paths=yon_char_parse(paths,&window->journal_size,"\n"); + yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),NULL,INSPECTOR_TITLE_LABEL(name),icon_path,"inspector_window"); + gtk_label_set_text(GTK_LABEL(window->TitleLabel),INSPECTOR_TITLE_LABEL(name)); config_str final=NULL; int final_size=0; for (int i=0;ijournal_size;i++){ @@ -506,6 +518,7 @@ void on_inspector_open(GtkWidget *, main_window *widgets){ window->journal_size=final_size; window->terminals = NULL; if (strcmp(name,"journald")){ + gtk_widget_set_margin_top(gtk_widget_get_parent(window->UpdateButton),25); window->last_mode=-1; if (window->journal_size==0){ GtkWidget *terminal = yon_inspector_add_terminal(window,window->journal_name,0); @@ -2114,10 +2127,47 @@ void on_journald_save(GtkWidget *, journald_window *window){ on_subwindow_close(window->MainWindow); } +void on_journald_size_lower_size(GtkWidget *, journald_window *window){ + long time_long = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->LowerSizeEntry)); + if (time_long){ + char *time = yon_char_from_long(time_long); + char *time_mod = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->LowerSizeCombo)); + char *time_full = yon_char_append(time,time_mod); + if (!system(journald_lower_size_command(time_full))){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(SUCCESS_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + } else { + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + } + } else { + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_SUCCESS_TYPE); + yon_ubl_status_highlight_incorrect(window->LowerSizeEntry); + } + yon_journald_size_update(window); +} + +void on_journald_size_lower_time(GtkWidget *, journald_window *window){ + long time_long = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->LowerTimeEntry)); + if (time_long){ + char *time = yon_char_from_long(time_long); + char *time_mod = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->LowerTimeCombo)); + char *time_full = yon_char_append(time,time_mod); + if (!system(journald_lower_time_command(time_full))){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(SUCCESS_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + } else { + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_SUCCESS_TYPE); + } + } else { + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_SUCCESS_TYPE); + yon_ubl_status_highlight_incorrect(window->LowerTimeEntry); + } + yon_journald_size_update(window); +} + journald_window *yon_journald_open(GtkWidget *, main_window *widgets){ journald_window *window = malloc(sizeof(journald_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_journald_path); window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); + window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton"); window->ResetButton=yon_gtk_builder_get_widget(builder,"ResetButton"); @@ -2156,17 +2206,14 @@ journald_window *yon_journald_open(GtkWidget *, main_window *widgets){ yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"JournaldWindow"); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window)); - { - int sz; - config_str logsize = yon_config_load(journald_size_command,&sz); - if (logsize){ - if (logsize[0][strlen(logsize[0])-1]=='\n') - logsize[0][strlen(logsize[0])-1]='\0'; - } - gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),logsize[0]); - } + + yon_journald_size_update(window); + gtk_window_set_title(GTK_WINDOW(window->MainWindow),JOURNALD_TITLE_LABEL); + g_signal_connect(G_OBJECT(window->LowerSizeButton),"clicked",G_CALLBACK(on_journald_size_lower_size),window); + g_signal_connect(G_OBJECT(window->LowerTimeButton),"clicked",G_CALLBACK(on_journald_size_lower_time),window); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_journald_save),window); g_signal_connect(G_OBJECT(window->ResetButton),"clicked",G_CALLBACK(on_journald_reset),window); @@ -2378,6 +2425,7 @@ add_log_window *on_add_open(main_window *widgets){ window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); gtk_window_set_title(GTK_WINDOW(window->MainWindow),MONITOR_TITLE_LABEL); gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window)); + window->log_name=NULL; dictionary *dict = NULL; yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); @@ -2761,6 +2809,7 @@ void on_main_window_services_tree_selection_changed(GtkWidget *,main_window *wid GtkTreeIter iter; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->ServicesControlButton,1); gboolean is_active; gboolean is_enabled; char *name; @@ -2768,67 +2817,53 @@ void on_main_window_services_tree_selection_changed(GtkWidget *,main_window *wid gtk_tree_model_get(model,&iter,0,&is_active,1,&is_enabled,2,&name,-1); if (is_active){ gtk_widget_set_sensitive(widgets->ServicesEditButton,1); - gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,1); - gtk_widget_set_sensitive(widgets->ServicesStartStopButton,1); - gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1); + // gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1); gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),1); - gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_OFF_LABEL); - gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,STOP_SERVICE_LABEL); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON); + gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON); GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0))); GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0))); gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),stop_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),STOP_SERVICE_LABEL); g_list_free(item); g_list_free(items); } else { gtk_widget_set_sensitive(widgets->ServicesEditButton,0); - gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,1); - gtk_widget_set_sensitive(widgets->ServicesStartStopButton,1); - gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1); - gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),1); - gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_ON_LABEL); - gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,START_SERVICE_LABEL); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),start_icon_name,GTK_ICON_SIZE_BUTTON); + // gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1); + gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0); + gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),start_icon_name,GTK_ICON_SIZE_BUTTON); GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0))); GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0))); gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),start_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),START_SERVICE_LABEL); - g_list_free(item); - g_list_free(items); - } - if (is_enabled){ - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON); - GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1))); - GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0))); - gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_OFF_LABEL); - g_list_free(item); - g_list_free(items); - } else { - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON); - GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1))); - GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0))); - gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_ON_LABEL); g_list_free(item); g_list_free(items); } + // if (is_enabled){ + // gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON); + // GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1))); + // GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0))); + // gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON); + // gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_OFF_LABEL); + // g_list_free(item); + // g_list_free(items); + // } else { + // gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON); + // GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1))); + // GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0))); + // gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON); + // gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_ON_LABEL); + // g_list_free(item); + // g_list_free(items); + // } if (!strcmp(name,"journald")){ - gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),0); - gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0); - gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,0); - gtk_widget_set_sensitive(widgets->ServicesStartStopButton,0); - gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_OFF_LABEL); - gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,STOP_SERVICE_LABEL); + // gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),0); + // gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0); + // gtk_widget_set_sensitive(widgets->ServicesControlButton,0); + // gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_OFF_LABEL); } g_list_free(list); } else { gtk_widget_set_sensitive(widgets->ServicesEditButton,0); - gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,0); - gtk_widget_set_sensitive(widgets->ServicesStartStopButton,0); - gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_ON_LABEL); - gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,START_SERVICE_LABEL); + gtk_widget_set_sensitive(widgets->ServicesControlButton,0); + // gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_ON_LABEL); } } @@ -2845,15 +2880,11 @@ void on_start_stop_clicked(GtkButton *, main_window *widgets){ if (is_started){ g_spawn_command_line_sync(yon_debug_output("%s\n",stop_command),NULL,NULL,NULL,NULL); gtk_list_store_set(widgets->ServicesList,&iter,0,0,-1); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),start_icon_name,GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),start_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,START_SERVICE_LABEL); } else { g_spawn_command_line_sync(yon_debug_output("%s\n",start_command),NULL,NULL,NULL,NULL); gtk_list_store_set(widgets->ServicesList,&iter,0,1,-1); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),stop_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_widget_set_tooltip_text(widgets->ServicesStartStopButton,STOP_SERVICE_LABEL); } } } @@ -2879,9 +2910,9 @@ void on_enable_disable_clicked(GtkButton *, main_window *widgets){ if (is_started){ yon_launch(stop_command); gtk_list_store_set(widgets->ServicesList,&iter,1,0,-1); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_ON_LABEL); + gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),start_icon_name,GTK_ICON_SIZE_BUTTON); + gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),start_icon_name,GTK_ICON_SIZE_BUTTON); + // gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_ON_LABEL); } else { /* g_mutex_lock(&main_config.authorized_mutex); @@ -2891,9 +2922,9 @@ void on_enable_disable_clicked(GtkButton *, main_window *widgets){ g_mutex_unlock(&main_config.authorized_mutex);*/ yon_launch(start_command); gtk_list_store_set(widgets->ServicesList,&iter,1,1,-1); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON); - gtk_widget_set_tooltip_text(widgets->ServicesEnableDisableButton,AUTOSTART_OFF_LABEL); + gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON); + gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(box,0)),stop_icon_name,GTK_ICON_SIZE_BUTTON); + // gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_OFF_LABEL); } } } @@ -2991,6 +3022,27 @@ void config_init(){ } } +void on_service_manage(GtkWidget *,main_window *widgets){ + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->ServicesList); + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){ + char *name,*start_command,*stop_command,*enable_command,*disable_command,*status_command,*check_active_command,*check_enable_command; + gtk_tree_model_get(model,&iter, + 2,&name,5,&start_command, + 6,&stop_command,7,&enable_command, + 8,&disable_command,9,&status_command, + 10,&check_active_command,11,&check_enable_command, + -1); + service_window *window = yon_service_window_new(name,start_command,stop_command, + enable_command,disable_command, + status_command,check_active_command, + check_enable_command); + gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window)); + yon_service_window_run(window); + + } +} + void yon_main_window_complete(template_main_window **window){ /* Widgets getting | Получение виджетов */ main_window *widgets = realloc(*window,sizeof(main_window)); @@ -3005,8 +3057,7 @@ void yon_main_window_complete(template_main_window **window){ widgets->RemoveButton = yon_gtk_builder_get_widget(builder,"MainRemoveButton"); widgets->Notebook = yon_gtk_builder_get_widget(builder,"MainNotebook"); widgets->ServicesEditButton = yon_gtk_builder_get_widget(builder,"ServicesEditButton"); - widgets->ServicesStartStopButton = yon_gtk_builder_get_widget(builder,"ServicesStartStopButton"); - widgets->ServicesEnableDisableButton = yon_gtk_builder_get_widget(builder,"ServicesEnableDisableButton"); + widgets->ServicesControlButton = yon_gtk_builder_get_widget(builder,"ServicesControlButton"); widgets->ServicesTree = yon_gtk_builder_get_widget(builder,"ServicesTree"); widgets->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); widgets->ServicesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"ServicesList")); @@ -3056,8 +3107,11 @@ void yon_main_window_complete(template_main_window **window){ int log_size; services[i]=yon_char_divide_search(services[i],"\n",-1); config_str log = yon_char_parse(services[i],&log_size,";"); + int is_active, is_enabled; + is_active = !system(log[7]); + is_enabled = !system(log[8]); gtk_list_store_append(widgets->ServicesList,&iter); - gtk_list_store_set(widgets->ServicesList,&iter,0,1,1,1,2,log[0],3,_(log[1]),4,log[2],5,log[3],6,log[4],7,log[5],8,log[6],-1); + gtk_list_store_set(widgets->ServicesList,&iter,0,is_active,1,is_enabled,2,log[0],3,_(log[1]),4,log[2],5,log[2],6,log[3],7,log[4],8,log[5],9,log[6],10,log[7],11,log[8],-1); } } config_str dirs = yon_config_load(logrotate_config_command,&dirs_size); @@ -3173,17 +3227,16 @@ void yon_main_window_complete(template_main_window **window){ g_signal_connect(G_OBJECT(widgets->MainTree),"cursor-changed",G_CALLBACK(on_main_window_tree_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->ServicesTree),"cursor-changed",G_CALLBACK(on_main_window_services_tree_selection_changed),widgets); - g_signal_connect(G_OBJECT(widgets->ServicesStartStopButton),"clicked",G_CALLBACK(on_start_stop_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->ServicesEnableDisableButton),"clicked",G_CALLBACK(on_enable_disable_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->ServicesControlButton),"clicked",G_CALLBACK(on_service_manage),widgets); widgets->LogsRMBMenu = yon_rmb_menu_setup(widgets->MainTree,(RmbCheck)gtk_widget_get_sensitive,widgets->MainTree, CONFIGURE_LOG_LABEL,settings_icon_name,G_CALLBACK(on_log_edit),widgets, + CONFIGURE_LOG_LABEL,settings_icon_name,G_CALLBACK(on_log_edit),widgets, ADD_LOG_LABEL,add_icon_name,G_CALLBACK(on_log_add),widgets, REMOVE_LOG_LABEL,remove_icon_name,G_CALLBACK(on_log_remove),widgets, NULL); widgets->ServicesRMBMenu = yon_rmb_menu_setup(widgets->ServicesTree,(RmbCheck)gtk_widget_get_sensitive,widgets->ServicesTree, - START_SERVICE_LABEL,start_icon_name,G_CALLBACK(on_start_stop_clicked),widgets, - AUTOSTART_ON_LABEL,enable_icon_name,G_CALLBACK(on_enable_disable_clicked),widgets, + SERVICE_MANAGEMENT_TOOLTIP,start_icon_name,G_CALLBACK(on_service_manage),widgets, CONFIGURE_SERVICE_LABEL,settings_icon_name,G_CALLBACK(on_service_edit),widgets, NULL); // yon_rmb_menu_setup(widgets->ServicesTree,(RmbCheck)gtk_widget_get_sensitive,widgets->MainTree,CONFIGURE_LOG_LABEL,edit_icon_name,G_CALLBACK(on_log_edit),widgets,ADD_LOG_LABEL,add_icon_name,G_CALLBACK(on_log_add),widgets,REMOVE_LOG_LABEL,remove_icon_name,G_CALLBACK(on_log_remove),widgets,NULL); diff --git a/source/ubl-settings-logging.h b/source/ubl-settings-logging.h index d9fc736..cce5896 100644 --- a/source/ubl-settings-logging.h +++ b/source/ubl-settings-logging.h @@ -74,6 +74,9 @@ #define get_file_folder_size(path) yon_char_append("du -hsc ",path) #define get_all_files_in_path(path) yon_char_append("find ",path) +#define journald_lower_size_command(new_size) yon_char_append("journalctl --rotate; journalctl --vacuum-size=",new_size) +#define journald_lower_time_command(new_time) yon_char_append("journalctl --rotate; journalctl --vacuum-time=",new_time) + #define group_list_path "/etc/group" #define edit_icon_name "document-edit-symbolic" @@ -144,8 +147,7 @@ typedef struct { GtkWidget *Notebook; GtkWidget *ServicesTree; GtkWidget *ServicesEditButton; - GtkWidget *ServicesStartStopButton; - GtkWidget *ServicesEnableDisableButton; + GtkWidget *ServicesControlButton; GtkListStore *list; GtkListStore *ServicesList; GtkWidget *UpgradePermissionsMenuItem; @@ -194,6 +196,7 @@ typedef struct { typedef struct { GtkWidget *MainWindow; + GtkWidget *TitleLabel; GtkWidget *plugBox; GtkWidget *ShowSinceBootButton; GtkWidget *NewMessagesButton; @@ -257,6 +260,7 @@ typedef struct { typedef struct { GtkWidget *MainWindow; + GtkWidget *StatusBox; GtkWidget *CancelButton; GtkWidget *SaveButton; GtkWidget *ResetButton; @@ -291,6 +295,8 @@ typedef struct { GtkWidget *LowerTimeCombo; GtkWidget *LowerTimeButton; GtkWidget *headerTopic; + + char *paths; } journald_window; typedef struct { @@ -433,6 +439,8 @@ void on_logrotate_tab_open(GtkWidget *self, main_window *widgets); void yon_combo_compress_check(GtkComboBox *self, journald_window *window); void on_journald_reset(GtkWidget *self, journald_window *window); void on_journald_save(GtkWidget *self, journald_window *window); +void on_journald_size_lower_size(GtkWidget *, journald_window *window); +void on_journald_size_lower_time(GtkWidget *, journald_window *window); journald_window *yon_journald_open(GtkWidget *self, main_window *widgets); void on_journald_open(GtkWidget *self, main_window *widgets); void on_log_save(GtkWidget *self, dictionary *dict); @@ -459,4 +467,6 @@ void on_logrotate_apps_configure_activate(GtkWidget *, GtkTreePath*, GtkTreeView void on_logrotate_edit_activate(GtkWidget*,GtkTreePath*,GtkTreeViewColumn*, logrotate_window *window); void on_logrotate_closed(GtkWidget *,logrotate_window *window); void on_rules_changed(GtkEditable *editable, const gchar *text, gint length, gint *position); +void on_service_manage(GtkWidget *,main_window *widgets); +void yon_journald_size_update(journald_window *window); int main(int argc, char *argv[]); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index e7687a4..e2217b2 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -44,9 +44,10 @@ #define XORG_DESCRIPTION_LABEL _("X.org display server log") #define XSESSION_DESCRIPTION_LABEL _("Graphics X session log") #define SAVE_LABEL _("Save") +#define SERVICE_MANAGEMENT_TOOLTIP _("Manage service") //ubl-settings-logging-inspector.glade -#define INSPECTOR_TITLE_LABEL _("Logs and events - log inspector") +#define INSPECTOR_TITLE_LABEL(target) yon_char_unite(_("Inspect")," \"",target,"\"",NULL) #define TOOLTIP_BOOT_LABEL _("Show messages since the current system boot") #define TOOLTIP_FOLLOW_LABEL _("Follow for new messages") #define TOOLTIP_KERNEL_LABEL _("Show kernel ring buffer") @@ -61,7 +62,7 @@ #define LOG_LABEL _("Log") //ubl-settings-logging-journald.glade -#define JOURNALD_TITLE_LABEL _("Logs and events - journald configuration") +#define JOURNALD_TITLE_LABEL _("Journald configuration") #define JOURNAL_DESCRIPTION_LABEL _("Description:") #define JOURNAL_STORAGE_LABEL _("Journal storage place:") #define COMPRESSION_LABEL _("Use compression:") @@ -99,7 +100,7 @@ #define RESET_LABEL _("Reset") //ubl-settings-logging-logrotate.glade -#define LOGROTATE_TITLE_LABEL _("Logs and events - logrotate configuration") +#define LOGROTATE_TITLE_LABEL _("Logrotate configuration") #define LOGROTATE_LOG_JOURNAL_TAB_LABEL _("Log/Journal:") #define PATHS_LABEL _("Paths to log and journals files") #define ON_LABEL _("On") @@ -178,7 +179,7 @@ #define COMMAND_INVALID_LABEL _("Command is invalid") //ubl-settings-logging-logrotate-table.glade -#define TABLE_TITLE_LABEL _("Logs and events - logrotate table") +#define TABLE_TITLE_LABEL _("Logrotate table") #define SYSTEM_CONFIGURATION_LABEL _("System configuration") #define APPLITATIONS_CONFIGURATION_LABEL _("Applications configuration") #define IMPORT_CONFIGURATION_LABEL _("Import log configuration") @@ -187,7 +188,7 @@ #define CONFIGURE_CONFIGURATION_LABEL _("Configure log") //ubl-settings-logging-add.glade -#define MONITOR_TITLE_LABEL _("Logs and events - journal configuration") +#define MONITOR_TITLE_LABEL _("Journal configuration") #define ADD_PATHS_LABEL _("Path (-s):") #define CONTROL_LABEL _("Control:") #define LOG_FILE_LABEL _("Log file") @@ -196,7 +197,7 @@ #define NO_FILES_FOUND_LABEL _("Journal/log files were not found") //ubl-settings-logging-rules.glade -#define RULES_TITLE_LABEL _("Logs and events - rules") +#define RULES_TITLE_LABEL _("Rules") #define OWNER_LABEL _("Owner rules") #define GROUP_LABEL _("Group rules") #define PUBLIC_LABEL _("Public rules") @@ -211,8 +212,8 @@ #define OLD_VALUE_LABEL _("Old value") #define NEW_VALUE_LABEL _("New value") -#define FILECHOOSER_TITLE_LABEL _("Logs and events - choose a path") -#define SAVE_TITLE_LABEL _("Logs and events - saving") +#define FILECHOOSER_TITLE_LABEL _("Choose a path") +#define SAVE_TITLE_LABEL _("Saving") #define AUTHTORIZED_LABEL _("Authorization has been elevated") #define UNAUTHTORIZED_LABEL _("Authorization has been unelevated") \ No newline at end of file diff --git a/ubl-settings-logging-add.glade b/ubl-settings-logging-add.glade index a87b313..d6c5e32 100644 --- a/ubl-settings-logging-add.glade +++ b/ubl-settings-logging-add.glade @@ -456,7 +456,7 @@ 5 5 2 - Logs and events - journal configuration + Journal configuration diff --git a/ubl-settings-logging-inspector.glade b/ubl-settings-logging-inspector.glade index 037b2d4..9232a8b 100644 --- a/ubl-settings-logging-inspector.glade +++ b/ubl-settings-logging-inspector.glade @@ -373,7 +373,7 @@ 5 5 2 - Logs and events - log inspector + Log inspector diff --git a/ubl-settings-logging-journald.glade b/ubl-settings-logging-journald.glade index af38e32..b126026 100644 --- a/ubl-settings-logging-journald.glade +++ b/ubl-settings-logging-journald.glade @@ -97,10 +97,24 @@ False 5 5 - 5 5 vertical 5 + + + True + False + vertical + + + + + + False + True + 0 + + True @@ -666,7 +680,7 @@ True False True - 0 + /dev/console False @@ -837,9 +851,9 @@ False 0 - Kb - Mb - Gb + Kb + Mb + Gb @@ -905,11 +919,11 @@ False 0 - Minutes - Hours - Days - Weeks - Years + Minutes + Hours + Days + Weeks + Years @@ -961,7 +975,7 @@ False True - 0 + 1 @@ -970,7 +984,6 @@ True False - True True @@ -980,7 +993,7 @@ 5 5 2 - Logs and events - journald configuration + Journald configuration diff --git a/ubl-settings-logging-logrotate.glade b/ubl-settings-logging-logrotate.glade index 0400aa9..01f3093 100644 --- a/ubl-settings-logging-logrotate.glade +++ b/ubl-settings-logging-logrotate.glade @@ -1,5 +1,5 @@ - + @@ -2108,7 +2108,7 @@ 5 5 2 - Logs and events - logrotate configuration + Logrotate configuration diff --git a/ubl-settings-logging-rules.glade b/ubl-settings-logging-rules.glade index 620b09a..6bc1560 100644 --- a/ubl-settings-logging-rules.glade +++ b/ubl-settings-logging-rules.glade @@ -1,5 +1,5 @@ - + @@ -367,7 +367,7 @@ 5 5 2 - Logs and events - rules + Rules diff --git a/ubl-settings-logging.glade b/ubl-settings-logging.glade index 4a6353a..b719f30 100644 --- a/ubl-settings-logging.glade +++ b/ubl-settings-logging.glade @@ -47,9 +47,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + - + + + + + + + @@ -77,15 +83,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False com.ublinux.ubl-settings-logging.trash-symbolic - - True - False - com.ublinux.ubl-settings-logging.play-symbolic - True False - com.ublinux.ubl-settings-logging.check-symbolic + com.ublinux.libublsettingsui-gtk3.play-symbolic True @@ -229,6 +230,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True liststore1 2 + + + True @@ -320,30 +324,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. vertical 5 - + True False True True - Start service - image5 - - - - False - True - 0 - - - - - True - False - True - True - Switch autostart on + Manage service image6