Corrections bugs désinstallations et améliorations UI/UX
This commit is contained in:
@@ -198,8 +198,6 @@ check_sudo_password() {
|
|||||||
|
|
||||||
# Fonction pour demander et stocker le mot de passe sudo globalement
|
# Fonction pour demander et stocker le mot de passe sudo globalement
|
||||||
get_global_sudo_password() {
|
get_global_sudo_password() {
|
||||||
local app_list="$1"
|
|
||||||
|
|
||||||
# Si le mot de passe est déjà stocké et valide, ne pas le redemander
|
# Si le mot de passe est déjà stocké et valide, ne pas le redemander
|
||||||
if [ -n "$GLOBAL_SUDO_PASSWORD" ]; then
|
if [ -n "$GLOBAL_SUDO_PASSWORD" ]; then
|
||||||
if check_sudo_password "$GLOBAL_SUDO_PASSWORD"; then
|
if check_sudo_password "$GLOBAL_SUDO_PASSWORD"; then
|
||||||
@@ -208,7 +206,7 @@ get_global_sudo_password() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Demander le mot de passe sudo pour toutes les installations
|
# Demander le mot de passe sudo pour toutes les installations
|
||||||
GLOBAL_SUDO_PASSWORD=$(zenity 2>/dev/null --password --title="Authentification - Debian Gaming Deployment Tool" --text="Mot de passe administrateur requis pour l'installation :\n$app_list")
|
GLOBAL_SUDO_PASSWORD=$(zenity 2>/dev/null --password --title="Authentification - Debian Gaming Deployment Tool" --text="Mot de passe administrateur requis pour procéder aux installations.")
|
||||||
|
|
||||||
if [ $? -eq 1 ]; then
|
if [ $? -eq 1 ]; then
|
||||||
return 1
|
return 1
|
||||||
@@ -259,10 +257,6 @@ start_batch_install() {
|
|||||||
|
|
||||||
log_info "Mode installation groupée activé pour $app_count applications"
|
log_info "Mode installation groupée activé pour $app_count applications"
|
||||||
|
|
||||||
# Afficher une notification de début au lieu d'une barre de progression complexe
|
|
||||||
zenity 2>/dev/null --info --timeout=3 \
|
|
||||||
--title="Debian Gaming Deployment Tool" \
|
|
||||||
--text="Installation de $app_count applications en cours...\n\nApplications sélectionnées:$app_list" &
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_batch_progress() {
|
update_batch_progress() {
|
||||||
@@ -411,11 +405,12 @@ show_unified_selection() {
|
|||||||
--title="Debian Gaming Deployment Tool" \
|
--title="Debian Gaming Deployment Tool" \
|
||||||
--text="Sélectionnez les applications puis choisissez l'action :" \
|
--text="Sélectionnez les applications puis choisissez l'action :" \
|
||||||
--column="Sélection" --column="Application" --column="Type" --column="Description" \
|
--column="Sélection" --column="Application" --column="Type" --column="Description" \
|
||||||
--width=1000 --height=600 \
|
--width=1000 --height=650 \
|
||||||
--ok-label="Installer" \
|
--ok-label="Installer" \
|
||||||
--extra-button="Désinstaller" \
|
--extra-button="Désinstaller" \
|
||||||
--cancel-label="Annuler" \
|
--cancel-label="Annuler" \
|
||||||
--separator="|" \
|
--separator="|" \
|
||||||
|
FALSE "ACTION_UNINSTALL" "SPECIAL" "🗑️ MODE DÉSINSTALLATION - Cochez ceci pour désinstaller au lieu d'installer" \
|
||||||
FALSE "nvidia" "APT" "💻 NVIDIA + CUDA - Pilotes graphiques professionnels" \
|
FALSE "nvidia" "APT" "💻 NVIDIA + CUDA - Pilotes graphiques professionnels" \
|
||||||
FALSE "flatpak" "APT" "📦 Flatpak + Flathub - Gestionnaire d'applications universelles" \
|
FALSE "flatpak" "APT" "📦 Flatpak + Flathub - Gestionnaire d'applications universelles" \
|
||||||
FALSE "steam" "APT" "🎮 Steam - Plateforme de jeux numériques Valve" \
|
FALSE "steam" "APT" "🎮 Steam - Plateforme de jeux numériques Valve" \
|
||||||
@@ -3213,7 +3208,7 @@ echo "Fichier de log: $(pwd)/$(basename "$LOG_FILE")" >&2
|
|||||||
selection=$(show_unified_selection)
|
selection=$(show_unified_selection)
|
||||||
exit_code=$?
|
exit_code=$?
|
||||||
|
|
||||||
# Déterminer l'action selon le code de retour
|
# Déterminer l'action selon le code de retour et la sélection
|
||||||
# 0 = Installer (bouton OK)
|
# 0 = Installer (bouton OK)
|
||||||
# 1 = Désinstaller (bouton extra)
|
# 1 = Désinstaller (bouton extra)
|
||||||
# autres = Annuler
|
# autres = Annuler
|
||||||
@@ -3229,15 +3224,28 @@ if [ -z "$selection" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Traiter la sélection selon le bouton cliqué
|
# Traiter la sélection
|
||||||
IFS='|' read -ra SELECTED <<< "$selection"
|
IFS='|' read -ra SELECTED <<< "$selection"
|
||||||
|
|
||||||
|
# Vérifier si le mode désinstallation est demandé via la checkbox
|
||||||
|
uninstall_mode=false
|
||||||
|
if [[ " ${SELECTED[*]} " =~ " ACTION_UNINSTALL " ]]; then
|
||||||
|
uninstall_mode=true
|
||||||
|
# Retirer ACTION_UNINSTALL de la liste
|
||||||
|
SELECTED=("${SELECTED[@]/ACTION_UNINSTALL}")
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $exit_code -eq 1 ]; then
|
# Déterminer le mode final
|
||||||
|
if [ "$uninstall_mode" = "true" ] || [ $exit_code -eq 1 ]; then
|
||||||
# Mode désinstallation (bouton extra)
|
# Mode désinstallation (bouton extra)
|
||||||
# Créer la liste des composants pour confirmation
|
# Créer la liste des composants pour confirmation
|
||||||
uninstall_display=""
|
uninstall_display=""
|
||||||
for component in "${SELECTED[@]}"; do
|
for component in "${SELECTED[@]}"; do
|
||||||
|
# Ignorer les éléments qui ne sont pas des applications (boutons, etc.)
|
||||||
|
case $component in
|
||||||
|
"Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;;
|
||||||
|
esac
|
||||||
|
|
||||||
case $component in
|
case $component in
|
||||||
"steam") uninstall_display="$uninstall_display\n• Steam" ;;
|
"steam") uninstall_display="$uninstall_display\n• Steam" ;;
|
||||||
"protonup") uninstall_display="$uninstall_display\n• ProtonUp-Qt" ;;
|
"protonup") uninstall_display="$uninstall_display\n• ProtonUp-Qt" ;;
|
||||||
@@ -3259,7 +3267,7 @@ if [ $exit_code -eq 1 ]; then
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Demander confirmation globale une seule fois
|
# Demander confirmation globale une seule fois
|
||||||
if ! zenity 2>/dev/null --question --title="Confirmation de désinstallation" --text="Êtes-vous sûr de vouloir désinstaller les composants suivants ?$uninstall_display"; then
|
if ! zenity 2>/dev/null --question --title="Confirmation de désinstallation" --text="Récapitulatif des désinstallations :$uninstall_display\n\nVoulez-vous procéder à la désinstallation de ces composants ?" --width=400; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -3289,6 +3297,11 @@ if [ $exit_code -eq 1 ]; then
|
|||||||
|
|
||||||
# Traiter les sélections de désinstallation
|
# Traiter les sélections de désinstallation
|
||||||
for component in "${SELECTED[@]}"; do
|
for component in "${SELECTED[@]}"; do
|
||||||
|
# Ignorer les éléments qui ne sont pas des applications (boutons, etc.)
|
||||||
|
case $component in
|
||||||
|
"Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;;
|
||||||
|
esac
|
||||||
|
|
||||||
log_info "Traitement du composant: $component"
|
log_info "Traitement du composant: $component"
|
||||||
case $component in
|
case $component in
|
||||||
"steam")
|
"steam")
|
||||||
@@ -3447,6 +3460,11 @@ else
|
|||||||
# Créer la liste des applications pour confirmation
|
# Créer la liste des applications pour confirmation
|
||||||
install_display=""
|
install_display=""
|
||||||
for component in "${SELECTED[@]}"; do
|
for component in "${SELECTED[@]}"; do
|
||||||
|
# Ignorer les éléments qui ne sont pas des applications (boutons, etc.)
|
||||||
|
case $component in
|
||||||
|
"Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;;
|
||||||
|
esac
|
||||||
|
|
||||||
case $component in
|
case $component in
|
||||||
"steam") install_display="$install_display\n• Steam" ;;
|
"steam") install_display="$install_display\n• Steam" ;;
|
||||||
"protonup") install_display="$install_display\n• ProtonUp-Qt" ;;
|
"protonup") install_display="$install_display\n• ProtonUp-Qt" ;;
|
||||||
@@ -3467,8 +3485,13 @@ else
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Afficher le récapitulatif et demander confirmation
|
||||||
|
if ! zenity 2>/dev/null --question --title="Confirmation d'installation" --text="Récapitulatif des installations :\n$install_display\n\nVoulez-vous procéder à l'installation de ces applications ?" --width=400; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Demander le mot de passe sudo une seule fois pour toutes les installations
|
# Demander le mot de passe sudo une seule fois pour toutes les installations
|
||||||
if ! get_global_sudo_password "$install_display"; then
|
if ! get_global_sudo_password; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -3476,14 +3499,15 @@ else
|
|||||||
if [ ${#SELECTED[@]} -gt 1 ]; then
|
if [ ${#SELECTED[@]} -gt 1 ]; then
|
||||||
start_batch_install ${#SELECTED[@]} "$install_display"
|
start_batch_install ${#SELECTED[@]} "$install_display"
|
||||||
|
|
||||||
# Afficher une notification au début
|
|
||||||
zenity 2>/dev/null --info --timeout=5 \
|
|
||||||
--title="Debian Gaming Deployment Tool - Installation Multiple" \
|
|
||||||
--text="Installation de ${#SELECTED[@]} applications en cours...\n\nCeci peut prendre plusieurs minutes.\nVeuillez patienter..." &
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Traiter les sélections d'installation
|
# Traiter les sélections d'installation
|
||||||
for component in "${SELECTED[@]}"; do
|
for component in "${SELECTED[@]}"; do
|
||||||
|
# Ignorer les éléments qui ne sont pas des applications (boutons, etc.)
|
||||||
|
case $component in
|
||||||
|
"Désinstaller"|"Installer"|"ACTION_UNINSTALL"|"") continue ;;
|
||||||
|
esac
|
||||||
|
|
||||||
case $component in
|
case $component in
|
||||||
"steam")
|
"steam")
|
||||||
install_steam
|
install_steam
|
||||||
|
|||||||
Reference in New Issue
Block a user