Make it work with Mobile client
This commit is contained in:
parent
66335fda5c
commit
3dfea64ad9
|
@ -27,6 +27,10 @@ The second API is different but is explained in the documentation, it involves e
|
||||||
|
|
||||||
Those endpoints are requested by the clients and one or the other client will fail if they don't return something that looks valid.
|
Those endpoints are requested by the clients and one or the other client will fail if they don't return something that looks valid.
|
||||||
|
|
||||||
|
## Mobile app
|
||||||
|
|
||||||
|
* `getcontentlength` must be present and be a number, even for collections
|
||||||
|
|
||||||
## Desktop client
|
## Desktop client
|
||||||
|
|
||||||
### Requests performed
|
### Requests performed
|
||||||
|
|
|
@ -25,6 +25,6 @@ $name = $_SERVER['SERVER_NAME'];
|
||||||
$port = !in_array($_SERVER['SERVER_PORT'], [80, 443]) ? ':' . $_SERVER['SERVER_PORT'] : '';
|
$port = !in_array($_SERVER['SERVER_PORT'], [80, 443]) ? ':' . $_SERVER['SERVER_PORT'] : '';
|
||||||
$root = '/';
|
$root = '/';
|
||||||
|
|
||||||
define('KaraDAV\WWW_URL', sprintf('http%s://%s%s%s', $https, $name, $port, $root));
|
#define('KaraDAV\WWW_URL', sprintf('http%s://%s%s%s', $https, $name, $port, $root));
|
||||||
|
|
||||||
//const WWW_URL = 'http://192.168.43.171:8080/';
|
const WWW_URL = 'http://192.168.43.171:8081/';
|
|
@ -169,7 +169,7 @@ class Server extends WebDAV_NextCloud
|
||||||
|
|
||||||
switch ($name) {
|
switch ($name) {
|
||||||
case 'DAV::getcontentlength':
|
case 'DAV::getcontentlength':
|
||||||
return is_dir($target) ? '' : filesize($target);
|
return is_dir($target) ? 0 : filesize($target);
|
||||||
case 'DAV::getcontenttype':
|
case 'DAV::getcontenttype':
|
||||||
return mime_content_type($target);
|
return mime_content_type($target);
|
||||||
case 'DAV::resourcetype':
|
case 'DAV::resourcetype':
|
||||||
|
@ -206,7 +206,7 @@ class Server extends WebDAV_NextCloud
|
||||||
return new \DateTime('@' . filectime($target));
|
return new \DateTime('@' . filectime($target));
|
||||||
// NextCloud stuff
|
// NextCloud stuff
|
||||||
case self::PROP_OC_ID:
|
case self::PROP_OC_ID:
|
||||||
return md5($target);
|
return $this->nc_direct_id($uri);
|
||||||
case self::PROP_OC_PERMISSIONS:
|
case self::PROP_OC_PERMISSIONS:
|
||||||
return implode('', [self::PERM_READ, self::PERM_WRITE, self::PERM_CREATE, self::PERM_DELETE, self::PERM_RENAME_MOVE]);
|
return implode('', [self::PERM_READ, self::PERM_WRITE, self::PERM_CREATE, self::PERM_DELETE, self::PERM_RENAME_MOVE]);
|
||||||
case self::PROP_OC_SIZE:
|
case self::PROP_OC_SIZE:
|
||||||
|
|
|
@ -152,7 +152,7 @@ class Users
|
||||||
$session = $this->appSessionCreate();
|
$session = $this->appSessionCreate();
|
||||||
$current = $this->current();
|
$current = $this->current();
|
||||||
|
|
||||||
return sprintf(Server::NC_AUTH_REDIRECT_URL, WWW_URL, $session->token, $session->password);
|
return sprintf(Server::NC_AUTH_REDIRECT_URL, WWW_URL, $current->login, $session->token . ':' . $session->password);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function appSessionValidateToken(string $token): ?stdClass
|
public function appSessionValidateToken(string $token): ?stdClass
|
||||||
|
|
|
@ -15,7 +15,12 @@ if (PHP_SAPI == 'cli-server') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
file_put_contents('php://stderr', $uri . "\n");
|
$method = $_SERVER['REQUEST_METHOD'] ?? $_SERVER['REDIRECT_REQUEST_METHOD'];
|
||||||
|
file_put_contents('php://stderr', sprintf("%s %s\n", $method, $uri));
|
||||||
|
|
||||||
|
if ($method != 'GET' && $method != 'HEAD') {
|
||||||
|
file_put_contents('php://stderr', file_get_contents('php://input') . "\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$s = new Server;
|
$s = new Server;
|
||||||
|
|
|
@ -112,6 +112,7 @@ dialog.preview {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
background: #ddd;
|
background: #ddd;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
iframe, .md_preview {
|
iframe, .md_preview {
|
||||||
|
@ -127,7 +128,15 @@ iframe, .md_preview {
|
||||||
}
|
}
|
||||||
|
|
||||||
.preview form {
|
.preview form {
|
||||||
|
height: calc(100% - 2em);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview form div {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
|
@ -12,7 +12,7 @@ function html(unsafe)
|
||||||
.replace(/'/g, "'");
|
.replace(/'/g, "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
const url = location.href;
|
const url = location.pathname;
|
||||||
|
|
||||||
const PREVIEW_TYPES = /^image\/(png|webp|svg|jpeg|jpg|gif|png)|^application\/pdf|^text\/|^audio\/|^video\//;
|
const PREVIEW_TYPES = /^image\/(png|webp|svg|jpeg|jpg|gif|png)|^application\/pdf|^text\/|^audio\/|^video\//;
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ echo '
|
||||||
<legend>Login</legend>
|
<legend>Login</legend>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="f_login">Login</label></dt>
|
<dt><label for="f_login">Login</label></dt>
|
||||||
<dd><input type="text" name="login" id="f_login" required /></dd>
|
<dd><input type="text" name="login" id="f_login" required autocapitalize="none" /></dd>
|
||||||
<dt><label for="f_password">Password</label></dt>
|
<dt><label for="f_password">Password</label></dt>
|
||||||
<dd><input type="password" name="password" id="f_password" required /></dd>
|
<dd><input type="password" name="password" id="f_password" required /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
Loading…
Reference in a new issue