Fixes and improvements

pull/2/head
Ivan Yartsev 2 years ago
parent 2b97316728
commit 2f5850a828

@ -7,6 +7,7 @@
<file>ubl-settings-logging-inspector.glade</file> <file>ubl-settings-logging-inspector.glade</file>
<file>ubl-settings-logging-logrotate.glade</file> <file>ubl-settings-logging-logrotate.glade</file>
<file>ubl-settings-logging-journald.glade</file> <file>ubl-settings-logging-journald.glade</file>
<file>ubl-settings-logging-rules.glade</file>
<file>ubl-settings-logging-logrotate-table.glade</file> <file>ubl-settings-logging-logrotate-table.glade</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/css"> <gresource prefix="/com/ublinux/css">

@ -38,6 +38,7 @@ set(DEPENDFILES
../ubl-settings-logging.glade ../ubl-settings-logging.glade
../ubl-settings-logging-add.glade ../ubl-settings-logging-add.glade
../ubl-settings-logging-add-path.glade ../ubl-settings-logging-add-path.glade
../ubl-settings-logging-rules.glade
../ubl-settings-logging-inspector.glade ../ubl-settings-logging-inspector.glade
../ubl-settings-logging-journald.glade ../ubl-settings-logging-journald.glade
../ubl-settings-logging-logrotate.glade ../ubl-settings-logging-logrotate.glade

@ -135,7 +135,7 @@ void update_loaded_logrotate(){
char *paths = yon_char_divide_search(loaded[i],"=",-1); char *paths = yon_char_divide_search(loaded[i],"=",-1);
yon_char_divide(paths,strlen("LOGROTATE")); yon_char_divide(paths,strlen("LOGROTATE"));
yon_char_divide_search_self(paths,"]",-1); yon_char_divide_search_self(paths,"]",-1);
yon_char_replace(loaded[i],",","\n"); loaded[i] = yon_char_replace(loaded[i],",","\n");
gtk_list_store_append(main_config.logrotate_list,&iter); gtk_list_store_append(main_config.logrotate_list,&iter);
gtk_list_store_set(main_config.logrotate_list,&iter,1,paths,-1); gtk_list_store_set(main_config.logrotate_list,&iter,1,paths,-1);
} }
@ -153,12 +153,14 @@ void on_load_global(){
yon_load_proceed(YON_CONFIG_GLOBAL); yon_load_proceed(YON_CONFIG_GLOBAL);
main_config.load_mode=0; main_config.load_mode=0;
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
update_loaded_logrotate();
} }
void on_load_local(){ void on_load_local(){
yon_load_proceed(YON_CONFIG_LOCAL); yon_load_proceed(YON_CONFIG_LOCAL);
main_config.load_mode=1; main_config.load_mode=1;
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
update_loaded_logrotate();
} }
@ -184,13 +186,13 @@ void on_save_global_local(){
} }
void on_save_global(){ void on_save_global(){
yon_save_proceed("system",YON_CONFIG_LOCAL); yon_save_proceed("global",YON_CONFIG_LOCAL);
yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
void on_save_local(){ void on_save_local(){
yon_save_proceed("global",YON_CONFIG_GLOBAL); yon_save_proceed("system",YON_CONFIG_GLOBAL);
yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
@ -697,8 +699,6 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
yon_char_parsed_free(parsed,size); yon_char_parsed_free(parsed,size);
char *parameters = yon_config_get_by_key(LOGROTATE(paths)); char *parameters = yon_config_get_by_key(LOGROTATE(paths));
if (parameters){ if (parameters){
parameters = yon_char_replace(parameters,",\t",",");
if (parameters[0]==',') yon_char_divide_search(parameters,",",-1);
parsed = yon_char_parse(parameters,&size,","); parsed = yon_char_parse(parameters,&size,",");
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
if (!strcmp(parsed[i],"hourly")){ if (!strcmp(parsed[i],"hourly")){
@ -821,9 +821,6 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
// gtk_entry_set_text(GTK_ENTRY(window->CommandBeforeOnceEntry),value); // gtk_entry_set_text(GTK_ENTRY(window->CommandBeforeOnceEntry),value);
// i++; // i++;
}else if (!strcmp(parsed[i],"endscript")){ }else if (!strcmp(parsed[i],"endscript")){
char *value = parsed[i+1];
gtk_entry_set_text(GTK_ENTRY(window->EndworkCommandEntry),value);
i++;
} }
} }
} }
@ -878,7 +875,7 @@ void on_logrotate_remove(GtkWidget *self, logrotate_window *window){
gtk_tree_model_get(model,&iter,1,&paths,-1); gtk_tree_model_get(model,&iter,1,&paths,-1);
gtk_list_store_remove(main_config.logrotate_list,&iter); gtk_list_store_remove(main_config.logrotate_list,&iter);
yon_char_replace(paths,"\n",","); yon_char_replace(paths,"\n",",");
yon_config_remove_by_key(paths); yon_config_remove_by_key(LOGROTATE(paths));
} }
} }
@ -891,6 +888,8 @@ void on_logrotate_apps_configure(GtkWidget *self, logrotate_window *window){
char *settings; char *settings;
gtk_list_store_append(main_config.logrotate_list,&itar); gtk_list_store_append(main_config.logrotate_list,&itar);
gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&settings,-1); gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&settings,-1);
settings = yon_char_replace(settings,",\t",",");
if (settings[0]==',') yon_char_divide_search(settings,",",-1);
yon_config_register(LOGROTATE(yon_char_replace(paths,"\n",",")),"logging",settings); yon_config_register(LOGROTATE(yon_char_replace(paths,"\n",",")),"logging",settings);
gtk_list_store_set(main_config.logrotate_list,&itar,0,name,1,paths,-1); gtk_list_store_set(main_config.logrotate_list,&itar,0,name,1,paths,-1);
} }
@ -1505,7 +1504,7 @@ main_window *setup_window(){
services[i]=yon_char_divide_search(services[i],"\n",-1); services[i]=yon_char_divide_search(services[i],"\n",-1);
config_str log = yon_char_parse(services[i],&log_size,";"); config_str log = yon_char_parse(services[i],&log_size,";");
gtk_list_store_append(widgets->ServicesList,&iter); gtk_list_store_append(widgets->ServicesList,&iter);
gtk_list_store_set(widgets->ServicesList,&iter,0,0,1,0,2,log[0],3,log[1],-1); gtk_list_store_set(widgets->ServicesList,&iter,0,1,1,1,2,log[0],3,log[1],-1);
} }
} }
config_str dirs = yon_config_load(logrotate_config_command,&dirs_size); config_str dirs = yon_config_load(logrotate_config_command,&dirs_size);
@ -1555,6 +1554,13 @@ main_window *setup_window(){
g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_log_remove),widgets); g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_log_remove),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesEditButton),"clicked",G_CALLBACK(on_service_edit),widgets); g_signal_connect(G_OBJECT(widgets->ServicesEditButton),"clicked",G_CALLBACK(on_service_edit),widgets);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_save_global_local),NULL);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_save_global),NULL);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_save_local),NULL);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_load_global),NULL);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_load_local),NULL);
gtk_widget_show(widgets->Window); gtk_widget_show(widgets->Window);
return widgets; return widgets;
@ -1651,6 +1657,7 @@ int main(int argc, char *argv[]){
yon_window_config_setup(GTK_WINDOW(widgets->Window)); yon_window_config_setup(GTK_WINDOW(widgets->Window));
yon_load_proceed(YON_CONFIG_LOCAL); yon_load_proceed(YON_CONFIG_LOCAL);
yon_window_config_load(config_path); yon_window_config_load(config_path);
yon_load_proceed(YON_CONFIG_LOCAL);
update_loaded_logrotate(); update_loaded_logrotate();
GtkCssProvider *css=gtk_css_provider_new(); GtkCssProvider *css=gtk_css_provider_new();
gtk_css_provider_load_from_resource(css,CssPath); gtk_css_provider_load_from_resource(css,CssPath);

@ -1314,7 +1314,7 @@ int yon_config_save_registered(char *path){
if (((yon_config_parameter*)dct)->flag1==1){ if (((yon_config_parameter*)dct)->flag1==1){
((yon_config_parameter*)dct)->flag1=0; ((yon_config_parameter*)dct)->flag1=0;
if (sections_add&&yon_dictionary_get(&sections_add,((yon_config_parameter*)dct)->section)) sections_add->data=(void*)yon_char_unite(yon_dictionary_get_data(sections_add,char*)," ",dct->key,"=",yon_dictionary_get_data(dct,char*),NULL); if (sections_add&&yon_dictionary_get(&sections_add,((yon_config_parameter*)dct)->section)) sections_add->data=(void*)yon_char_unite(yon_dictionary_get_data(sections_add,char*)," ",dct->key,"=",yon_dictionary_get_data(dct,char*),NULL);
else yon_dictionary_add_or_create_if_exists_with_data(sections_add,((yon_config_parameter*)dct)->section,yon_char_unite (ubconfig_save_command,path ? yon_char_append(" --target ",path):"", " set ", ((yon_config_parameter*)dct)->section, " ",dct->key,"=",yon_dictionary_get_data(dct,char*),NULL)); else yon_dictionary_add_or_create_if_exists_with_data(sections_add,((yon_config_parameter*)dct)->section,yon_char_unite (ubconfig_save_command,path ? yon_char_append(" --target ",path):"", " set ", ((yon_config_parameter*)dct)->section, " ",dct->key,"=\"",yon_dictionary_get_data(dct,char*),"\"",NULL));
} else if (((yon_config_parameter*)dct)->flag1==-1){ } else if (((yon_config_parameter*)dct)->flag1==-1){
((yon_config_parameter*)dct)->flag1=0; ((yon_config_parameter*)dct)->flag1=0;
if (sections_remove&&yon_dictionary_get(&sections_remove,((yon_config_parameter*)dct)->section)) sections_remove->data=(void*)yon_char_unite(yon_dictionary_get_data(sections_remove,char*)," ",dct->key,NULL); if (sections_remove&&yon_dictionary_get(&sections_remove,((yon_config_parameter*)dct)->section)) sections_remove->data=(void*)yon_char_unite(yon_dictionary_get_data(sections_remove,char*)," ",dct->key,NULL);

File diff suppressed because it is too large Load Diff

@ -0,0 +1,383 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkWindow" id="MainWindow">
<property name="can-focus">False</property>
<property name="default-width">550</property>
<property name="default-height">450</property>
<property name="icon-name">com.ublinux.ubl-settings-logging</property>
<child>
<object class="GtkBox" id="plugBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="UserReadCheck">
<property name="label" translatable="yes">Read</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="UserWriteCheck">
<property name="label" translatable="yes">Write</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="UserExecuteCheck">
<property name="label" translatable="yes">Execute</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Owner rules</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="GroupReadCheck">
<property name="label" translatable="yes">Read</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="GroupWriteCheck">
<property name="label" translatable="yes">Write</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="GroupExecuteCheck">
<property name="label" translatable="yes">Execute</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Group rules</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="PublicReadCheck">
<property name="label" translatable="yes">Read</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="PublicWriteCheck">
<property name="label" translatable="yes">Write</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="PublicExecuteCheck">
<property name="label" translatable="yes">Execute</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Public rules</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Value:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="FinalEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SaveButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">4</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="headerTopic">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-logging</property>
</object>
</child>
<style>
<class name="toolbar"/>
</style>
</object>
</child>
</object>
</interface>

@ -624,7 +624,7 @@ msgstr "Последняя ротированная копия"
#: source/ubl-strings.h:160 #: source/ubl-strings.h:160
msgid "Endwork command:" msgid "Endwork command:"
msgstr "Команда конца работы:" msgstr "Команда перед удалением файла журнала:"
#: source/ubl-strings.h:163 #: source/ubl-strings.h:163
#, fuzzy #, fuzzy

Loading…
Cancel
Save