Compare commits

..
2 Commits
6 changed files with 38 additions and 14 deletions

No files matched your search

+1
View File
@@ -142,6 +142,7 @@ else
echo " -> Clonage du dépôt public officiel depuis https://git.sorcier-research.com..." echo " -> Clonage du dépôt public officiel depuis https://git.sorcier-research.com..."
rm -rf "$TARGET_DIR" rm -rf "$TARGET_DIR"
git clone https://git.sorcier-research.com/sorcier/NexusPBX.git "$TARGET_DIR" git clone https://git.sorcier-research.com/sorcier/NexusPBX.git "$TARGET_DIR"
git config --system --add safe.directory "$TARGET_DIR" 2>/dev/null || true
cd "$TARGET_DIR" cd "$TARGET_DIR"
fi fi
+24 -4
View File
@@ -2242,15 +2242,35 @@ try {
$remoteChangelog = []; $remoteChangelog = [];
$remoteDate = ''; $remoteDate = '';
exec("git --git-dir={$appDir}/.git fetch origin main --quiet 2>/dev/null", $output, $code); // 1. Interrogation directe via HTTP Raw (indépendant de .git et ultra-rapide)
$remoteJsonRaw = shell_exec("git --git-dir={$appDir}/.git show origin/main:version.json 2>/dev/null"); $rawHttp = @shell_exec("curl -k -s --connect-timeout 4 \"https://git.sorcier-research.com/sorcier/NexusPBX/raw/branch/main/version.json\" 2>/dev/null");
if ($remoteJsonRaw) { if (empty($rawHttp)) {
$remoteData = json_decode($remoteJsonRaw, true); $ctx = stream_context_create([
'http' => ['timeout' => 4],
'ssl' => ['verify_peer' => false, 'verify_peer_name' => false]
]);
$rawHttp = @file_get_contents("https://git.sorcier-research.com/sorcier/NexusPBX/raw/branch/main/version.json", false, $ctx);
}
if (!empty($rawHttp)) {
$remoteData = json_decode((string)$rawHttp, true);
if (is_array($remoteData) && !empty($remoteData['version'])) { if (is_array($remoteData) && !empty($remoteData['version'])) {
$remoteVer = (string)$remoteData['version']; $remoteVer = (string)$remoteData['version'];
$remoteChangelog = $remoteData['changelog'] ?? []; $remoteChangelog = $remoteData['changelog'] ?? [];
$remoteDate = $remoteData['release_date'] ?? ''; $remoteDate = $remoteData['release_date'] ?? '';
} }
} else {
// 2. Fallback local Git si indisponibilité du serveur HTTP
exec("git --git-dir={$appDir}/.git fetch origin main --quiet 2>/dev/null", $output, $code);
$remoteJsonRaw = shell_exec("git --git-dir={$appDir}/.git show origin/main:version.json 2>/dev/null");
if ($remoteJsonRaw) {
$remoteData = json_decode($remoteJsonRaw, true);
if (is_array($remoteData) && !empty($remoteData['version'])) {
$remoteVer = (string)$remoteData['version'];
$remoteChangelog = $remoteData['changelog'] ?? [];
$remoteDate = $remoteData['release_date'] ?? '';
}
}
} }
$hasUpdate = version_compare($remoteVer, $currentVer, '>'); $hasUpdate = version_compare($remoteVer, $currentVer, '>');
+7
View File
@@ -5745,11 +5745,17 @@ async function checkSystemUpdate(notify = false) {
return; return;
} catch (_) {} } catch (_) {}
} }
} else {
localStorage.removeItem(STORAGE_KEY_TIME);
localStorage.removeItem(STORAGE_KEY_DATA);
} }
let origBtnHtml = null;
if (btnCheck) { if (btnCheck) {
btnCheck.disabled = true; btnCheck.disabled = true;
btnCheck.classList.add('opacity-50'); btnCheck.classList.add('opacity-50');
origBtnHtml = btnCheck.innerHTML;
btnCheck.innerHTML = `<svg class="animate-spin w-4 h-4 text-cyan-400" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8H4z"></path></svg><span>Vérification en cours...</span>`;
} }
try { try {
@@ -5777,6 +5783,7 @@ async function checkSystemUpdate(notify = false) {
if (btnCheck) { if (btnCheck) {
btnCheck.disabled = false; btnCheck.disabled = false;
btnCheck.classList.remove('opacity-50'); btnCheck.classList.remove('opacity-50');
if (origBtnHtml) btnCheck.innerHTML = origBtnHtml;
} }
} }
-5
View File
@@ -176,11 +176,6 @@ $currentUser = Auth::getUsername();
Se connecter au PBX Se connecter au PBX
</button> </button>
</form> </form>
<div class="mt-6 pt-5 border-t border-anthracite-700 text-xs text-slate-300 flex items-center justify-between">
<span>Accès initial par défaut :</span>
<code class="px-2.5 py-1 rounded bg-anthracite-950 border border-anthracite-700 text-indigo-300 font-mono">admin / admin123</code>
</div>
</div> </div>
</div> </div>
+1
View File
@@ -37,6 +37,7 @@ for arg in "$@"; do
done done
cd "$APP_DIR" || exit 1 cd "$APP_DIR" || exit 1
git config --system --add safe.directory "$APP_DIR" 2>/dev/null || true
git config --global --add safe.directory "$APP_DIR" 2>/dev/null || true git config --global --add safe.directory "$APP_DIR" 2>/dev/null || true
# Lecture de la version locale # Lecture de la version locale
+5 -5
View File
@@ -1,12 +1,12 @@
{ {
"version": "1.3.6", "version": "1.3.8",
"codename": "Helios", "codename": "Helios",
"release_date": "2026-11-04", "release_date": "2026-11-04",
"min_php_version": "8.2", "min_php_version": "8.2",
"changelog": [ "changelog": [
"Nouvelle modale de confirmation de restauration système alignée sur le thème sombre NexusPBX", "Suppression de l'indication des identifiants et mot de passe par défaut sur l'écran de connexion",
"Remplacement des popups d'alerte natives du navigateur lors des restaurations locales et téléversées", "Vérification ultra-rapide des mises à jour en direct via cURL CLI et flux HTTP sans dépendre de git ou de php-curl",
"Affichage détaillé des éléments restaurés (base SQLite, sons, messageries vocales, rechargement Asterisk)", "Bouton 'Vérifier les mises à jour' forçant le rafraîchissement immédiat du cache navigateur (bypass 24h)",
"Désactivation du bac à sable ProtectSystem=full sur PHP-FPM pour fiabiliser les mises à jour" "Nouvelle modale de confirmation de restauration système alignée sur le thème sombre NexusPBX"
] ]
} }