mirror of
https://github.com/misterunknown/ifm.git
synced 2025-08-12 19:13:57 +02:00
Sane coding style for PHP part.
Signed-off-by: Marco Dickert <marco@misterunknown.de>
This commit is contained in:
20
compiler.php
20
compiler.php
@@ -16,14 +16,14 @@ define( "IFM_STANDALONE_GZ", "ifm.min.php" );
|
|||||||
define("IFM_LIB", "libifm.php");
|
define("IFM_LIB", "libifm.php");
|
||||||
|
|
||||||
// php source files
|
// php source files
|
||||||
$IFM_SRC_PHP = array(
|
$IFM_SRC_PHP = [
|
||||||
0 => "src/main.php",
|
0 => "src/main.php",
|
||||||
1 => "src/ifmarchive.php",
|
1 => "src/ifmarchive.php",
|
||||||
2 => "src/htpasswd.php"
|
2 => "src/htpasswd.php"
|
||||||
);
|
];
|
||||||
|
|
||||||
// get options
|
// get options
|
||||||
$options = getopt(null, array("language::", "languages::", "lang::", "cdn"));
|
$options = getopt(null, ["language::", "languages::", "lang::", "cdn"]);
|
||||||
|
|
||||||
// build CDN version?
|
// build CDN version?
|
||||||
if (isset($options['cdn']))
|
if (isset($options['cdn']))
|
||||||
@@ -36,6 +36,7 @@ $langs = [];
|
|||||||
foreach ($options as $key => $value)
|
foreach ($options as $key => $value)
|
||||||
if (substr($key, 0, 4) == "lang")
|
if (substr($key, 0, 4) == "lang")
|
||||||
$langs = array_merge($langs, explode(",", $value));
|
$langs = array_merge($langs, explode(",", $value));
|
||||||
|
|
||||||
$langs = array_unique($langs);
|
$langs = array_unique($langs);
|
||||||
if (!empty($langs)) {
|
if (!empty($langs)) {
|
||||||
$vars['default_lang'] = ($langs[0] == "all") ? "en" : $langs[0];
|
$vars['default_lang'] = ($langs[0] == "all") ? "en" : $langs[0];
|
||||||
@@ -65,7 +66,7 @@ foreach ($langs as $l)
|
|||||||
print "WARNING: Language file src/i18n/".$l.".json not found.\n";
|
print "WARNING: Language file src/i18n/".$l.".json not found.\n";
|
||||||
|
|
||||||
// Concat PHP Files
|
// Concat PHP Files
|
||||||
$compiled = array( "<?php" );
|
$compiled = ["<?php"];
|
||||||
foreach ($IFM_SRC_PHP as $phpfile) {
|
foreach ($IFM_SRC_PHP as $phpfile) {
|
||||||
$lines = file($phpfile);
|
$lines = file($phpfile);
|
||||||
unset($lines[0]); // remove <?php line
|
unset($lines[0]); // remove <?php line
|
||||||
@@ -73,11 +74,9 @@ foreach( $IFM_SRC_PHP as $phpfile ) {
|
|||||||
}
|
}
|
||||||
$compiled = join($compiled);
|
$compiled = join($compiled);
|
||||||
|
|
||||||
if( IFM_CDN )
|
// Include assets
|
||||||
$IFM_ASSETS = "src/assets.cdn.part";
|
$compiled = str_replace("@@@ASSETS_CSS@@@", file_get_contents("src/assets".(IFM_CDN?".cdn":"").".css"), $compiled);
|
||||||
else
|
$compiled = str_replace("@@@ASSETS_JS@@@", file_get_contents("src/assets".(IFM_CDN?".cdn":"").".js"), $compiled);
|
||||||
$IFM_ASSETS = "src/assets.part";
|
|
||||||
$compiled = str_replace( "IFM_ASSETS", file_get_contents("src/assets".(IFM_CDN?".cdn":"").".part"), $compiled );
|
|
||||||
|
|
||||||
// Process file includes
|
// Process file includes
|
||||||
$includes = NULL;
|
$includes = NULL;
|
||||||
@@ -108,9 +107,8 @@ foreach( $includes as $var )
|
|||||||
|
|
||||||
$compiled = str_replace('IFM_VERSION', IFM_VERSION, $compiled);
|
$compiled = str_replace('IFM_VERSION', IFM_VERSION, $compiled);
|
||||||
|
|
||||||
if (!is_dir(IFM_RELEASE_DIR)){
|
if (!is_dir(IFM_RELEASE_DIR))
|
||||||
mkdir(IFM_RELEASE_DIR);
|
mkdir(IFM_RELEASE_DIR);
|
||||||
}
|
|
||||||
|
|
||||||
// build standalone ifm
|
// build standalone ifm
|
||||||
file_put_contents(IFM_RELEASE_DIR . (IFM_CDN ? 'cdn.' : '') . IFM_STANDALONE, $compiled);
|
file_put_contents(IFM_RELEASE_DIR . (IFM_CDN ? 'cdn.' : '') . IFM_STANDALONE, $compiled);
|
||||||
|
8
src/assets.cdn.css
Normal file
8
src/assets.cdn.css
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs4/dt-1.10.20/datatables.min.css"/>
|
||||||
|
<style type="text/css">
|
||||||
|
@@@file:src/includes/bootstrap-treeview.min.css@@@
|
||||||
|
@@@file:src/includes/fontello-embedded.css@@@
|
||||||
|
@@@file:src/includes/animation.css@@@
|
||||||
|
@@@file:src/style.css@@@
|
||||||
|
</style>
|
15
src/assets.cdn.js
Normal file
15
src/assets.cdn.js
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
|
||||||
|
<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/dt-1.10.20/datatables.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ace.js"></script>
|
||||||
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.3.2/mustache.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mouse0270-bootstrap-notify/3.1.7/bootstrap-notify.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/classnames/2.2.6/index.min.js"></script>
|
||||||
|
<script>
|
||||||
|
@@@file:src/includes/bootstrap-treeview.min.js@@@
|
||||||
|
@@@file:src/includes/BootstrapMenu.min.js@@@
|
||||||
|
@@@file:src/ifm.js@@@
|
||||||
|
</script>
|
@@ -1,32 +0,0 @@
|
|||||||
public function getCSS() {
|
|
||||||
print '
|
|
||||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
|
|
||||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs4/dt-1.10.20/datatables.min.css"/>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/bootstrap-treeview.min.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/fontello-embedded.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/animation.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/style.css@@@ <?php print '</style>
|
|
||||||
';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getJS() {
|
|
||||||
print '
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
|
|
||||||
<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/dt-1.10.20/datatables.min.js"></script>
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ace.js"></script>
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.3.2/mustache.min.js"></script>
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mouse0270-bootstrap-notify/3.1.7/bootstrap-notify.min.js"></script>
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/classnames/2.2.6/index.min.js"></script>
|
|
||||||
';
|
|
||||||
echo <<<'f00bar'
|
|
||||||
<script>
|
|
||||||
@@@file:src/includes/bootstrap-treeview.min.js@@@
|
|
||||||
@@@file:src/includes/BootstrapMenu.min.js@@@
|
|
||||||
@@@file:src/ifm.js@@@
|
|
||||||
</script>
|
|
||||||
f00bar;
|
|
||||||
}
|
|
8
src/assets.css
Normal file
8
src/assets.css
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<style type="text/css">
|
||||||
|
@@@file:src/includes/bootstrap.min.css@@@
|
||||||
|
@@@file:src/includes/bootstrap-treeview.min.css@@@
|
||||||
|
@@@file:src/includes/datatables.min.css@@@
|
||||||
|
@@@file:src/includes/fontello-embedded.css@@@
|
||||||
|
@@@file:src/includes/animation.css@@@
|
||||||
|
@@@file:src/style.css@@@
|
||||||
|
</style>
|
16
src/assets.js
Normal file
16
src/assets.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<script>
|
||||||
|
@@@file:src/includes/jquery.min.js@@@
|
||||||
|
@@@file:src/includes/jquery-ui.min.js@@@
|
||||||
|
@@@file:src/includes/popper.min.js@@@
|
||||||
|
@@@file:src/includes/bootstrap.min.js@@@
|
||||||
|
@@@file:src/includes/bootstrap-notify.min.js@@@
|
||||||
|
@@@file:src/includes/bootstrap-treeview.min.js@@@
|
||||||
|
@@@file:src/includes/datatables.min.js@@@
|
||||||
|
@@@file:src/includes/lodash.min.js@@@
|
||||||
|
@@@file:src/includes/classnames.js@@@
|
||||||
|
@@@file:src/includes/BootstrapMenu.min.js@@@
|
||||||
|
@@@file:src/includes/mustache.min.js@@@
|
||||||
|
@@@file:src/includes/ace.js@@@
|
||||||
|
@@@acedir:src/includes/ace@@@
|
||||||
|
@@@file:src/ifm.js@@@
|
||||||
|
</script>
|
@@ -1,31 +0,0 @@
|
|||||||
public function getCSS() {
|
|
||||||
print '
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/bootstrap.min.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/bootstrap-treeview.min.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/datatables.min.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/fontello-embedded.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/includes/animation.css@@@ <?php print '</style>
|
|
||||||
<style type="text/css">';?> @@@file:src/style.css@@@ <?php print '</style>
|
|
||||||
';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getJS() {
|
|
||||||
echo <<<'f00bar'
|
|
||||||
<script>
|
|
||||||
@@@file:src/includes/jquery.min.js@@@
|
|
||||||
@@@file:src/includes/jquery-ui.min.js@@@
|
|
||||||
@@@file:src/includes/popper.min.js@@@
|
|
||||||
@@@file:src/includes/bootstrap.min.js@@@
|
|
||||||
@@@file:src/includes/bootstrap-notify.min.js@@@
|
|
||||||
@@@file:src/includes/bootstrap-treeview.min.js@@@
|
|
||||||
@@@file:src/includes/datatables.min.js@@@
|
|
||||||
@@@file:src/includes/lodash.min.js@@@
|
|
||||||
@@@file:src/includes/classnames.js@@@
|
|
||||||
@@@file:src/includes/BootstrapMenu.min.js@@@
|
|
||||||
@@@file:src/includes/mustache.min.js@@@
|
|
||||||
@@@file:src/includes/ace.js@@@
|
|
||||||
@@@acedir:src/includes/ace@@@
|
|
||||||
@@@file:src/ifm.js@@@
|
|
||||||
</script>
|
|
||||||
f00bar;
|
|
||||||
}
|
|
51
src/ifm.js
51
src/ifm.js
@@ -290,8 +290,9 @@ function IFM(params) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if( self.config.contextmenu && !!( self.config.edit || self.config.extract || self.config.rename || self.config.copymove || self.config.download || self.config.delete ) ) {
|
if( self.config.contextmenu && !!( self.config.edit || self.config.extract || self.config.rename || self.config.copymove || self.config.download || self.config.delete ) ) {
|
||||||
// create the context menu, this also uses jquery, AFAIK
|
// initialize the context menu, this also uses jquery, AFAIK
|
||||||
var contextMenu = new BootstrapMenu( '.clickable-row', {
|
if (!self.contextMenu)
|
||||||
|
self.contextMenu = new BootstrapMenu( '.clickable-row', {
|
||||||
fetchElementData: function( row ) {
|
fetchElementData: function( row ) {
|
||||||
var data = {};
|
var data = {};
|
||||||
data.selected =
|
data.selected =
|
||||||
@@ -1836,7 +1837,7 @@ function IFM(params) {
|
|||||||
success: function(d) {
|
success: function(d) {
|
||||||
self.i18n = d;
|
self.i18n = d;
|
||||||
self.log("I18N loaded");
|
self.log("I18N loaded");
|
||||||
self.initApplication();
|
self.initCheckAuth();
|
||||||
},
|
},
|
||||||
error: function() {
|
error: function() {
|
||||||
throw new Error( self.i18n.load_text_error );
|
throw new Error( self.i18n.load_text_error );
|
||||||
@@ -1844,6 +1845,50 @@ function IFM(params) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.initCheckAuth = function() {
|
||||||
|
$.ajax({
|
||||||
|
url: self.api,
|
||||||
|
type: "POST",
|
||||||
|
data: {
|
||||||
|
api: "checkAuth"
|
||||||
|
},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(d) {
|
||||||
|
if (d.status == "ERROR") {
|
||||||
|
self.showModal(Mustache.render(self.templates.login, {i18n: self.i18n}), {large: true});
|
||||||
|
|
||||||
|
var form = document.forms.loginForm;
|
||||||
|
form.addEventListener('click', function(e) {
|
||||||
|
if (e.target.id == "buttonLogin") {
|
||||||
|
$.ajax({
|
||||||
|
url: self.api,
|
||||||
|
type: "POST",
|
||||||
|
data: {
|
||||||
|
api: "checkAuth",
|
||||||
|
inputLogin: form.elements[0].value,
|
||||||
|
inputPassword: form.elements[1].value
|
||||||
|
},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(e) {
|
||||||
|
self.hideModal();
|
||||||
|
self.initApplication();
|
||||||
|
},
|
||||||
|
error: function(e) {
|
||||||
|
self.showMessage("Authentication failed", "e");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
self.initApplication();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(resp) {
|
||||||
|
throw new Error("Not authenticated");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
this.initApplication = function() {
|
this.initApplication = function() {
|
||||||
self.rootElement.innerHTML = Mustache.render(
|
self.rootElement.innerHTML = Mustache.render(
|
||||||
self.templates.app,
|
self.templates.app,
|
||||||
|
893
src/main.php
893
src/main.php
File diff suppressed because it is too large
Load Diff
@@ -103,7 +103,7 @@ body {
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<form class="form-signin" method="POST" action>
|
<form id="loginForm" class="form-signin">
|
||||||
<div class="text-center mb-4">
|
<div class="text-center mb-4">
|
||||||
<h1 class="h3 mb-3 font-weight-normal">IFM {{i18n.login}}</h1>
|
<h1 class="h3 mb-3 font-weight-normal">IFM {{i18n.login}}</h1>
|
||||||
</div>
|
</div>
|
||||||
@@ -118,6 +118,6 @@ body {
|
|||||||
</div>
|
</div>
|
||||||
<div class="alert alert-danger d-none" role="alert"></div>
|
<div class="alert alert-danger d-none" role="alert"></div>
|
||||||
|
|
||||||
<button class="btn btn-lg btn-primary btn-block" type="submit">{{i18n.login}}</button>
|
<button id="buttonLogin" class="btn btn-lg btn-primary btn-block" type="submit">{{i18n.login}}</button>
|
||||||
|
|
||||||
</form>
|
</form>
|
Reference in New Issue
Block a user