diff --git a/source/view_temp_u_g_p.c b/source/view_temp_u_g_p.c index 3637c0c..42d88e9 100644 --- a/source/view_temp_u_g_p.c +++ b/source/view_temp_u_g_p.c @@ -27,7 +27,6 @@ void destroy_show_warning(GtkWidget *self) { temp_widgets->WarrningWindow = NULL; temp_widgets->CancelWarrningButton = NULL; temp_widgets->lblWarningText = NULL; - block_btn_save(); } void show_warning() { GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path); @@ -49,6 +48,17 @@ void show_warning() { g_signal_connect(G_OBJECT(temp_widgets->CancelWarrningButton),"clicked",G_CALLBACK(destroy_show_warning),temp_widgets->WarrningWindow); } +void show_warning_no_fill(char* text_mess) { + GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path); + temp_widgets->WarrningWindow = yon_gtk_builder_get_widget(builder,"WarrningWindow"); + temp_widgets->lblWarningText = yon_gtk_builder_get_widget(builder,"lblWarningText"); + temp_widgets->CancelWarrningButton = yon_gtk_builder_get_widget(builder,"CancelWarrningButton"); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblWarningText), text_mess); + gtk_widget_show(temp_widgets->WarrningWindow); + g_signal_connect(G_OBJECT(temp_widgets->WarrningWindow), "destroy", G_CALLBACK(destroy_show_warning), temp_widgets->WarrningWindow); + g_signal_connect(G_OBJECT(temp_widgets->CancelWarrningButton),"clicked",G_CALLBACK(destroy_show_warning),temp_widgets->WarrningWindow); +} + void set_disk(char* _disk) { disk = yon_char_new(_disk); } @@ -99,7 +109,6 @@ void temp_check_path() { } } } - block_btn_save(); } temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuilder *builder) { @@ -144,7 +153,6 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil } void temp_select_disk() { - block_btn_save(); char* str_disk = NULL; if (strcmp(set_add_edit, "add")==0) { str_disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(temp_widgets->UserDeviceCombo)); @@ -242,14 +250,12 @@ void temp_show(GtkWidget *self, char* _glade_path) { set_activ_project_id(); temp_init_windows(); event_toggled_all(); - block_btn_save(); } else { temp_setup_window_base(_glade_path); gtk_widget_show(temp_widgets->Window); set_activ_project_id(); event_toggled_all(); - block_btn_save(); } } @@ -272,20 +278,12 @@ void temp_event(temp_set_window* temp_widgets) { g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesSoftLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesHardLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL); - g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeSoftLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL); - g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL); - g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesSoftLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL); - g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesHardLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL); - g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeSoftLimitCombo), "changed", G_CALLBACK(block_btn_save), NULL); - g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitCombo), "changed", G_CALLBACK(block_btn_save), NULL); g_signal_connect(G_OBJECT(temp_widgets->UserDeviceCombo), "changed", G_CALLBACK(temp_select_disk), NULL); if (strstr(flag_temp_u_g_p,"prjquota")) { g_signal_connect(G_OBJECT(temp_widgets->btnReviewProject),"clicked",G_CALLBACK(wrapper_show_file_manager),NULL); g_signal_connect(G_OBJECT(temp_widgets->btnGenerateProject),"clicked",G_CALLBACK(generate_id),NULL); g_signal_connect(G_OBJECT(temp_widgets->chbAuto),"toggled",G_CALLBACK(set_activ_project_id),NULL); g_signal_connect(G_OBJECT(temp_widgets->entryCatalogProject), "changed", G_CALLBACK(temp_check_path), NULL); - g_signal_connect(G_OBJECT(temp_widgets->entryProjectId), "changed", G_CALLBACK(block_btn_save), NULL); - g_signal_connect(G_OBJECT(temp_widgets->entryProjectName), "changed", G_CALLBACK(block_btn_save), NULL); } else { g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(wrapper_table_u_g_show),NULL); @@ -294,14 +292,19 @@ void temp_event(temp_set_window* temp_widgets) { void temp_on_destroy_subwindow(GtkWidget *self) { if (self) { - if (strcmp(set_add_edit, "add")==0) { - get_add_gui_data_base(_all_config_temp); + if (wrapper_check_save()) { + if (strcmp(set_add_edit, "add")==0) { + get_add_gui_data_base(_all_config_temp); + } + else { + get_edit_gui_data_base(_all_config_temp, table_index); + } + gtk_widget_destroy(gtk_widget_get_toplevel(self)); + temp_widgets = NULL; } else { - get_edit_gui_data_base(_all_config_temp, table_index); + } - gtk_widget_destroy(gtk_widget_get_toplevel(self)); - temp_widgets = NULL; } } @@ -320,7 +323,6 @@ void event_toggled_all() { philos_set_active_widgets(temp_widgets->quotegroupFilesHardLimitCheck, temp_widgets->quotegroupFilesHardLimitSpin, NULL); - block_btn_save(); } void block_btn_save() { @@ -375,7 +377,6 @@ void destroy_file_manager(GtkWidget *self) { temp_widgets->wndChooseFileWallpaper = NULL; temp_widgets->btnFilemangerOk = NULL; temp_widgets->btnFilemangerExit = NULL; - block_btn_save(); } void btn_ok_file_manager(GtkWidget *self) { @@ -510,12 +511,9 @@ void save(GtkWidget *self) { temp_vec_actors = get_actors_table(temp_vec_actors); gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryUser), format_actors(temp_vec_actors)); table_u_g_on_hide_subwindow(self); - block_btn_save(); } else { table_u_g_on_hide_subwindow(self); - block_btn_save(); - } } @@ -534,12 +532,14 @@ int check_save() { menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(temp_widgets->UserDeviceCombo)); } if (!active1 && !active2 && !active3 && !active4) { + show_warning_no_fill(_("The volume and files fields must have at least one value")); return 0; } if (menu_id == -1 || ((!strcmp(value1, "0") || !strcmp(value1, "")) && active1) || ((!strcmp(value2, "0") || !strcmp(value2, "")) && active2) || ((!strcmp(value3, "0") || !strcmp(value3, "")) && active3) || ((!strcmp(value4, "0") || !strcmp(value4, "")) && active4)) { + show_warning_no_fill(_("The volume and files fields must have at least one value")); return 0; } return 1; @@ -551,16 +551,23 @@ int check_save_project() { if (strcmp(set_add_edit, "add")==0) { char* file_dir = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryCatalogProject)); char* project_id = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectId)); - if (!strlen(file_dir) && (!strlen(project_id) && !active1) && !strlen(project_name)) { - return 0; - } - else if (!strlen(project_id) && !active1) { + if (!strlen(file_dir) || (!strlen(project_id) && !active1) || !strlen(project_name)) { + if (!strlen(project_id) && !active1) { + show_warning_no_fill(_("Project Id mandatory field")); + } + else if (!strlen(file_dir)) { + show_warning_no_fill(_("The path does not match the specified disk")); + } + else if (!strlen(project_name)) { + show_warning_no_fill(_("Project name mandatory field")); + } return 0; } return 1; } else { if (strlen(project_name)<=1) { + show_warning_no_fill(_("Project name required field")); return 0; } return 1; @@ -589,6 +596,7 @@ int wrapper_check_save() { if (check_save()) { return 1; } + show_warning_no_fill(_("The list of users is empty")); return 0; } } @@ -732,6 +740,5 @@ void set_activ_project_id() { } gtk_widget_set_sensitive(temp_widgets->entryProjectId, !active); gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active); - block_btn_save(); } diff --git a/source/view_temp_u_g_p.h b/source/view_temp_u_g_p.h index 3488a08..a6cbb6e 100644 --- a/source/view_temp_u_g_p.h +++ b/source/view_temp_u_g_p.h @@ -42,4 +42,5 @@ void set_activ_project_id(); int wrapper_check_save(); void block_btn_save(); int table_check_save(); -void temp_settings(); \ No newline at end of file +void temp_settings(); +void show_warning_no_fill(char* text_mess); \ No newline at end of file diff --git a/ubl-settings-diskquota.pot b/ubl-settings-diskquota.pot index 5c906e7..f3d174d 100644 --- a/ubl-settings-diskquota.pot +++ b/ubl-settings-diskquota.pot @@ -416,4 +416,21 @@ msgstr "" msgid "Withdraw all groups" msgstr "" +msgid "The list of users is empty" +msgstr "" + +msgid "Project name required field" +msgstr "" + +msgid "Project Id mandatory field" +msgstr "" + +msgid "The volume and files fields must have at least one value" +msgstr "" + +msgid "The path does not match the specified disk" +msgstr "" + +msgid "Project name mandatory field" +msgstr "" diff --git a/ubl-settings-diskquota_ru.po b/ubl-settings-diskquota_ru.po index 49babd5..5ab22c1 100644 --- a/ubl-settings-diskquota_ru.po +++ b/ubl-settings-diskquota_ru.po @@ -422,4 +422,22 @@ msgid "Settings quotas - Addition" msgstr "Настройка квот - Добавление" msgid "Settings quotas - Editing" -msgstr "Настройка квот - Редактирование" \ No newline at end of file +msgstr "Настройка квот - Редактирование" + +msgid "The list of users is empty" +msgstr "Список пользователей пуст" + +msgid "Project name required field" +msgstr "Имя проекта обязательное поле" + +msgid "Project Id mandatory field" +msgstr "Id проекта обязательное поле" + +msgid "The volume and files fields must have at least one value" +msgstr "Поля объем и файлы должно быть указано хотя бы одно значение" + +msgid "The path does not match the specified disk" +msgstr "Путь не соответствует указанному диску" + +msgid "Project name mandatory field" +msgstr "Имя проекта обязательное поле" \ No newline at end of file