Bläddra i källkod

Working for improving the installer

Sergio Brighenti 6 år sedan
förälder
incheckning
0d21b2b21d

+ 4 - 0
CHANGELOG.md

@@ -1,3 +1,7 @@
+## v2.3.1
++ Fixed en lang.
++ Fixed forced background with dark themes.
+
 ## v2.3
 + Improved image scaling in user gallery.
 + Added overlay on user gallery images.

+ 4 - 1
app/Controllers/DashboardController.php

@@ -129,6 +129,9 @@ class DashboardController extends Controller
 	public function applyTheme(Request $request, Response $response): Response
 	{
 		file_put_contents('static/bootstrap/css/bootstrap.min.css', file_get_contents($request->getParam('css')));
-		return redirect($response, 'system')->withAddedHeader('Cache-Control', 'no-cache, must-revalidate');
+		return redirect($response, 'system')
+			->withAddedHeader('Cache-Control', 'no-cache, no-store, must-revalidate')
+			->withAddedHeader('Pragma', 'no-cache')
+			->withAddedHeader('Expire', '0');
 	}
 }

+ 5 - 1
app/Web/Session.php

@@ -10,14 +10,18 @@ class Session
 	 * Start a session if is not already started in the current context
 	 * @param string $name
 	 * @param string $path
+	 * @throws \Exception
 	 */
 	public static function init(string $name, $path = ''): void
 	{
 		if (session_status() === PHP_SESSION_NONE) {
+			if (!is_writable($path) && $path !== '') {
+				throw new \Exception("The given path '{$path}' is not writable.");
+			}
 			session_start([
 				'name' => $name,
 				'save_path' => $path,
-				'cookie_httponly' => true
+				'cookie_httponly' => true,
 			]);
 		}
 	}

+ 7 - 3
install/index.php

@@ -27,7 +27,7 @@ $container = new Container(['settings' => $config]);
 Session::init('xbackbone_session');
 
 $container['view'] = function ($container) use (&$config) {
-	$view = new \Slim\Views\Twig(__DIR__ . '/templates', [
+	$view = new \Slim\Views\Twig([__DIR__ . '/templates', __DIR__ . '/../resources/templates'], [
 		'cache' => false,
 		'autoescape' => 'html',
 		'debug' => $config['displayErrorDetails'],
@@ -137,9 +137,13 @@ $app->post('/', function (Request $request, Response $response) use (&$config) {
 
 	$dsn = $config['db']['connection'] === 'sqlite' ? __DIR__ . '/../' . $config['db']['dsn'] : $config['db']['dsn'];
 
-	DB::setDsn($config['db']['connection'] . ':' . $dsn, $config['db']['username'], $config['db']['password']);
+	try {
+		DB::setDsn($config['db']['connection'] . ':' . $dsn, $config['db']['username'], $config['db']['password']);
+
+		migrate($config);
+	} catch (PDOException $exception) {
 
-	migrate($config);
+	}
 
 	if (!$installed) {
 		DB::query("INSERT INTO `users` (`email`, `username`, `password`, `is_admin`, `user_code`) VALUES (?, 'admin', ?, 1, ?)", [$request->getParam('email'), password_hash($request->getParam('password'), PASSWORD_DEFAULT), substr(md5(microtime()), rand(0, 26), 5)]);

+ 82 - 0
resources/lang/en.lang.php

@@ -2,4 +2,86 @@
 
 return [
 
+	'lang' => 'English',
+
+	'yes' => 'Yes',
+	'no' => 'No',
+	'send' => 'Send',
+	'no_media' => 'No media found.',
+
+	'login.username' => 'Username or E-Mail',
+	'password' => 'Password',
+	'login' => 'Login',
+	'username' => 'Username',
+
+	'home' => 'Home',
+	'users' => 'Users',
+	'system' => 'System',
+	'profile' => 'Profile',
+	'logout' => 'Logout',
+
+	'pager.next' => 'Next',
+	'pager.previous' => 'Previous',
+
+	'copy_link' => 'Copy link',
+	'public.telegram' => 'Share on Telegram',
+	'public.delete_text' => 'Are you sure you want to delete this item? It will be gone forever!',
+
+	'preview' => 'Preview',
+	'filename' => 'Filename',
+	'size' => 'Size',
+	'public' => 'Public',
+	'owner' => 'Owner',
+	'date' => 'Date',
+	'raw' => 'Show raw',
+	'download' => 'Download',
+	'delete' => 'Delete',
+	'publish' => 'Publish',
+	'hide' => 'Hide',
+
+	'files' => 'Files',
+	'orphaned_files' => 'Orphaned Files',
+	'theme' => 'Theme',
+	'click_to_load' => 'Click to load...',
+	'apply' => 'Apply',
+	'save' => 'Save',
+	'used' => 'Used',
+	'system_info' => 'System Information',
+
+	'user.create' => 'Create User',
+	'user.edit' => 'Edit User',
+	'is_active' => 'Is active',
+	'is_admin' => 'Is administrator',
+	'your_profile' => 'Your Profile',
+	'token' => 'Token',
+	'copy' => 'Copy',
+	'update' => 'Update',
+	'edit' => 'Edit',
+	'client_config' => 'Client Configuration',
+	'user_code' => 'User Code',
+	'active' => 'Active',
+	'admin' => 'Admin',
+	'reg_date' => 'Registration Date',
+	'none' => 'None',
+	'open' => 'Open',
+	'confirm' => 'Confirmation',
+	'confirm_string' => 'Are you sure?',
+
+	'installed' => 'Installation completed successfully!',
+	'bad_login' => 'Wrong credentials.',
+	'account_disabled' => 'Your account is disabled.',
+	'welcome' => 'Welcome, %s!',
+	'goodbye' => 'Goodbye!',
+	'token_not_found' => 'Token specified not found.',
+	'email_required' => 'The email is required.',
+	'email_taken' => 'The email is already taken.',
+	'username_required' => 'The username is required.',
+	'username_taken' => 'The username is already taken.',
+	'password_required' => 'The password is required.',
+	'user_created' => 'User "%s" created!',
+	'user_updated' => 'User "%s" updated!',
+	'profile_updated' => 'Profile updated successfully!',
+	'user_deleted' => 'User deleted.',
+	'cannot_delete' => 'You cannot delete yourself.',
+	'cannot_demote' => 'You cannot demote yourself.',
 ];

+ 1 - 1
resources/templates/auth/login.twig

@@ -38,7 +38,7 @@
                 <div class="col-md-12">
                     <label for="inputEmail" class="sr-only">{{ lang('login.username') }}</label>
                     <input type="text" id="username" class="form-control" placeholder="{{ lang('login.username') }}" name="username" required autofocus>
-                    <label for="password" class="sr-only">{{ lang('login.password') }}</label>
+                    <label for="password" class="sr-only">{{ lang('password') }}</label>
                     <input type="password" id="password" class="form-control" placeholder="{{ lang('password') }}" name="password" required>
                 </div>
             </div>

+ 0 - 1
src/css/app.css

@@ -7,7 +7,6 @@ html {
 body {
     margin-bottom: 40px;
     font-size: 1rem;
-    background-color: #f5f5f5;
 }
 
 .form-signin {