Добавил проверку на файл в проектах при вводе в поле

pull/24/head
Igor Belitskiy 2 years ago
parent 09536d0a32
commit 3dd8c3740e

@ -69,10 +69,33 @@
#define STR_ON _("On")
#define STR_OFF _("Off")
#define STR_NOT_SET _("Not set")
#define STR_TITLE_ADD_QUOTAS _("Settings quotas - Addition")
#define STR_TITLE_EDIT_QUOTAS _("Settings quotas - Editing")
#define SAVE_FAILED_LABEL
#define STR_USER _("User");
#define STR_GROUP _("Group");
#define STR_PROJECT _("Project");
#define STR_TITLE_FILE_MANGER _("Please select folder")
#define STR_USER _("User")
#define STR_GROUP _("Group")
#define STR_PROJECT _("Project")
#define STR_USERS _("Users")
#define STR_GROUPS _("Groups")
#define STR_ERROR_MESS_NOT_DIR _("Is not a directory")
#define STR_CHK_LABEL_WRITE_ALL_USERS _("Withdraw all users")
#define STR_CHK_LABEL_WRITE_ALL_GROUPS _("Withdraw all groups")
#define STR_ERROR_ERROR_PROJECT_ID _("Project ID mandatory field")
#define STR_ERROR_PATH_IS_DISK_FALSE_1 _("The path does not match the specified disk")
#define STR_ERROR_PROJECT_NAME_VALUE_NULL _("Project name mandatory field")
#define STR_ERROR_PROJECT_NAME_ENTER_VALUE _("Project name required field")
#define STR_ERROR_LIST_USER_NULL _("The list of users is empty")
#define STR_ERROR_NO_SELECTED_DISK _("To save, you need to select a disk")
#define STR_ERROR_ENTRY_VALUE_VOLUME_OR_FILES _("The volume and files fields must have at least one value")
#define STR_ERROR_PATH_IS_DISK_FALSE _("The selected directory is not located on the target device")

@ -46,7 +46,7 @@ void show_warning_disk() {
for (int i = 0; i < _all_config_temp->v_disk_status.vectorList.total; i++) {
disk_status* _config = (disk_status*)_all_config_temp->v_disk_status.pfVectorGet(&_all_config_temp->v_disk_status, i);
if (strstr(str_disk, _config->device)) {
text_mess = _("The selected directory is not located on the target device");
text_mess = STR_ERROR_PATH_IS_DISK_FALSE;
text_mess = yon_char_unite(text_mess, " ", _config->device, NULL);
show_warning_no_fill(text_mess);
}
@ -159,13 +159,13 @@ void temp_select_disk() {
disk_status* _config = (disk_status*)_all_config_temp->v_disk_status.pfVectorGet(&_all_config_temp->v_disk_status, i);
if (strstr(str_disk, _config->device)) {
if (_config->status == 2) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("On"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_ON);
}
else if (_config->status == 1){
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Off"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_OFF);
}
else {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Not set"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_NOT_SET);
}
}
@ -193,7 +193,7 @@ void temp_settings() {
gtk_widget_hide(temp_widgets->lblCatalogProjectEdit);
gtk_widget_hide(temp_widgets->lblProjectIdValueEdit);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto),1);
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Addition"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_ADD_QUOTAS);
}
else {
gtk_widget_hide(temp_widgets->btnReviewProject);
@ -202,29 +202,29 @@ void temp_settings() {
gtk_widget_hide(temp_widgets->entryProjectId);
gtk_widget_hide(temp_widgets->btnGenerateProject);
gtk_widget_hide(temp_widgets->UserDeviceCombo);
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Editing"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_EDIT_QUOTAS);
}
}
else {
gtk_widget_hide(temp_widgets->boxProjectAddEditboxProjectId);
if (strcmp(flag_temp_u_g_p, "usrquota")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("User"),":",NULL));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(STR_USER,":",NULL));
}
else if (strcmp(flag_temp_u_g_p, "grpquota")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("Group"),":",NULL));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(STR_GROUP,":",NULL));
}
if (strcmp(set_add_edit, "add")==0) {
gtk_widget_hide(temp_widgets->boxProject);
gtk_widget_hide(temp_widgets->boxProjectAddEdit);
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Addition"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_ADD_QUOTAS);
}
else {
gtk_widget_hide(temp_widgets->boxProject);
gtk_widget_hide(temp_widgets->boxProjectAddEdit);
gtk_widget_hide(temp_widgets->UserDeviceCombo);
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings quotas - Editing"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), STR_TITLE_EDIT_QUOTAS);
}
}
temp_on_set_combo_box_device();
@ -381,7 +381,7 @@ void wrapper_show_file_manager() {
GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path);
show_file_manger(temp_widgets, builder);
gtk_widget_show(temp_widgets->wndChooseFileWallpaper);
gtk_window_set_title(GTK_WINDOW(temp_widgets->wndChooseFileWallpaper), _("Please select folder"));
gtk_window_set_title(GTK_WINDOW(temp_widgets->wndChooseFileWallpaper), STR_TITLE_FILE_MANGER);
char* str_disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(temp_widgets->UserDeviceCombo));
for (int i = 0; i < _all_config_temp->v_disk_status.vectorList.total; i++) {
disk_status* _config = (disk_status*)_all_config_temp->v_disk_status.pfVectorGet(&_all_config_temp->v_disk_status, i);
@ -463,20 +463,20 @@ void set_edit_gui_data_base(config_all* all_config, int index) {
if (strstr(_config->type_arr, "prjquota")) {
if (strstr(_config_disk->device, model_find_path_to_disk(&all_config->v_disk_status, _config->UNIX_file))) {
if (_config_disk->status == 1) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Off"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_OFF);
}
else if (_config_disk->status == 2) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("On"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_ON);
}
}
}
else {
if (strstr(_config_disk->device, _config->UNIX_file)) {
if (_config_disk->status == 1) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("Off"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_OFF);
}
else if (_config_disk->status == 2) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), _("On"));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetQuotasStatus), STR_ON);
}
}
}
@ -600,18 +600,18 @@ int check_save() {
if (strcmp(set_add_edit, "add")==0) {
menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(temp_widgets->UserDeviceCombo));
if (menu_id == -1) {
show_warning_no_fill(_("To save, you need to select a disk"));
show_warning_no_fill(STR_ERROR_NO_SELECTED_DISK);
}
}
if (!active1 && !active2 && !active3 && !active4) {
show_warning_no_fill(_("The volume and files fields must have at least one value"));
show_warning_no_fill(STR_ERROR_ENTRY_VALUE_VOLUME_OR_FILES);
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"));
show_warning_no_fill(STR_ERROR_ENTRY_VALUE_VOLUME_OR_FILES);
return 0;
}
return 1;
@ -623,15 +623,26 @@ 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)) {
struct stat buf;
int error_file = stat(file_dir, &buf);
if (error_file < 0 || !S_ISDIR(buf.st_mode) || !strlen(file_dir) || (!strlen(project_id) && !active1) || !strlen(project_name)) {
if (!strlen(project_id) && !active1) {
show_warning_no_fill(_("Project ID mandatory field"));
show_warning_no_fill(STR_ERROR_ERROR_PROJECT_ID);
}
else if (!strlen(file_dir)) {
show_warning_no_fill(_("The path does not match the specified disk"));
show_warning_no_fill(STR_ERROR_PATH_IS_DISK_FALSE);
}
else if (!strlen(project_name)) {
show_warning_no_fill(_("Project name mandatory field"));
show_warning_no_fill(STR_ERROR_PROJECT_NAME_VALUE_NULL);
}
else if(stat(file_dir, &buf) < 0) {
show_warning_no_fill(STR_ERROR_MESS_NOT_DIR);
}
else if (error_file < 0) {
show_warning_no_fill(STR_ERROR_MESS_NOT_DIR);
}
else if (!S_ISDIR(buf.st_mode)) {
show_warning_no_fill(STR_ERROR_MESS_NOT_DIR);
}
return 0;
}
@ -639,7 +650,7 @@ int check_save_project() {
}
else {
if (strlen(project_name)<=1) {
show_warning_no_fill(_("Project name required field"));
show_warning_no_fill(STR_ERROR_PROJECT_NAME_ENTER_VALUE);
return 0;
}
return 1;
@ -668,7 +679,7 @@ int wrapper_check_save() {
if (check_save()) {
return 1;
}
show_warning_no_fill(_("The list of users is empty"));
show_warning_no_fill(STR_ERROR_LIST_USER_NULL);
return 0;
}
}

@ -436,3 +436,6 @@ msgstr ""
msgid "Project"
msgstr ""
msgid "Is not a directory"
msgstr ""

@ -446,4 +446,7 @@ msgid "To save, you need to select a disk"
msgstr "Для сохранения нужно выбрать диск"
msgid "Project"
msgstr "Проект"
msgstr "Проект"
msgid "Is not a directory"
msgstr "Не является каталогом"
Loading…
Cancel
Save