Archived
1
0
Fork 0

Prepare 2.2.2 release

This commit is contained in:
Varakh 2020-03-22 13:41:45 +01:00
parent 7a5a811b23
commit c5b61fea0b
10 changed files with 52 additions and 12 deletions

View file

@ -2,6 +2,12 @@
## UNRELEASED
## 2.2.2 - 2020/03/22
* Stop auto-sorting tables
* Add bandwidth formatter
* Check PHP 7.4 compatibility
* Increase docker image base to PHP 7.4
## 2.2.1 - 2019/11/10
* Use separate JavaScript file to initialize DataTables

View file

@ -7,10 +7,12 @@ The minimalistic approach of this application is intentional.
* Sources are hosted on [https://github.com/v4rakh/ts3web](https://github.com/v4rakh/ts3web)
## Limitations
Features which are currently not supported:
* upload files (only viewing and deleting)
* modify permissions (only viewing)
TeamSpeak has a detailed interface for permissions and uploading files, therefore the following features are not
supported:
* uploading files (only viewing and deleting, use the official client for uploading)
* editing permissions (only viewing, use the client for editing)
## F.A.Q
@ -169,7 +171,12 @@ To upgrade:
### Release
* Set a date in the `CHANGELOG.md` file
* Remove `SNAPSHOT` from the version in `Constants.php`
* Build the docker image from the project home with `docker build -t varakh/ts3web:latest -t varakh/ts3web:<releaseTag> -f docker/Dockerfile .` and publish it
* Build the docker image from the project
* if necessary, add GitHub access token to let composer pull dependencies within the image correctly:
add `&& composer config --global --auth github-oauth.github.com <token> \` before the `composer install` command,
where `<token>` can be retrieved from [GitHub settings](https://github.com/settings/tokens)
* execute `docker build -t varakh/ts3web:latest -t varakh/ts3web:<releaseTag> -f docker/Dockerfile .` to build
* publish it
* Tag the release git commit and create a new release in the VCS web interface
### Prepare next development cycle

View file

@ -8,12 +8,12 @@ class Constants
/**
* Years tag
*/
const YEARS = '2019';
const YEARS = '2020';
/**
* Version tag
*/
const VERSION = '2.2.2-SNAPSHOT';
const VERSION = '2.2.2';
/**
* Return constant by it's class name

View file

@ -1,4 +1,4 @@
FROM phpearth/php:7.3-nginx
FROM phpearth/php:7.4-nginx
# install deps
RUN apk add --no-cache git \
@ -7,9 +7,9 @@ RUN apk add --no-cache git \
# adjust nginx
COPY docker/default.conf /etc/nginx/conf.d/default.conf
COPY docker/nginx.conf /etc/nginx/nginx.conf
RUN sed -i "s|upload_max_filesize = 2M|upload_max_filesize = 1024M|g" /etc/php/7.3/php.ini \
&& sed -i "s|post_max_size = 8M|post_max_size = 1024M|g" /etc/php/7.3/php.ini \
&& sed -i "s|max_execution_time = 30|max_execution_time = 86400|g" /etc/php/7.3/php.ini
RUN sed -i "s|upload_max_filesize = 2M|upload_max_filesize = 1024M|g" /etc/php/7.4/php.ini \
&& sed -i "s|post_max_size = 8M|post_max_size = 1024M|g" /etc/php/7.4/php.ini \
&& sed -i "s|max_execution_time = 30|max_execution_time = 86400|g" /etc/php/7.4/php.ini
# copy application and set permissions
COPY config/ /var/www/html/application/config/

View file

@ -159,6 +159,11 @@ $container['view'] = function ($container) use ($app) {
});
$view->getEnvironment()->addFilter($fileSizeFilter);
$bandWidthFilter = new TwigFilter('bandwidth', function($bytes, $decimals = 2) {
return FileHelper::humanBandwidth($bytes, $decimals);
});
$view->getEnvironment()->addFilter($bandWidthFilter);
// ts specific: time in seconds to human readable
$timeInSecondsFilter = new TwigFilter('timeInSeconds', function($seconds) use ($container) {
return $container['ts']->getInstance()->convertSecondsToStrTime($seconds);

View file

@ -3,6 +3,7 @@ $(document).ready(function () {
"language": {
"url": "/theme/bootstrap4/DataTables/en_dataTable.json"
},
"paging": false
"paging": false,
"aaSorting": []
});
});

View file

@ -49,4 +49,17 @@ class FileHelper
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
}
/**
* Output human readable bandwidth size
*
* @param $bytes
* @param int $decimals
* @return string
*/
public static function humanBandwidth($bytes, $decimals = 2) {
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor] . '/s';
}
}

View file

@ -46,7 +46,7 @@ class TSInstance
$this->ts = $ts;
$this->logger->debug(sprintf('Connected to %s:%s', $this->host, $this->queryPort));
} catch (TSException $e) {
$this->logger->error(sprintf('Could not connect to %s:%s', $this->host, $this->queryPort, $e->getMessage()));
$this->logger->error(sprintf('Could not connect to %s:%s. Reason: %s', $this->host, $this->queryPort, $e->getMessage()));
die($e);
}
}

View file

@ -63,6 +63,12 @@
{'key': 'connection_connected_time', 'apply': 'timeInSeconds'},
{'key': 'client_created', 'apply': 'timestamp'},
{'key': 'client_lastconnected', 'apply': 'timestamp'},
{'key': 'connection_bandwidth_received_last_minute_total', 'apply': 'bandwidth'},
{'key': 'connection_bandwidth_received_last_second_total', 'apply': 'bandwidth'},
{'key': 'connection_bandwidth_sent_last_minute_total', 'apply': 'bandwidth'},
{'key': 'connection_bandwidth_sent_last_second_total', 'apply': 'bandwidth'},
{'key': 'connection_filetransfer Bandwidth Received', 'apply': 'bandwidth'},
{'key': 'connection_filetransfer Bandwidth Sent', 'apply': 'bandwidth'},
{'key': 'client_month_bytes_uploaded', 'apply': 'file'},
{'key': 'client_month_bytes_downloaded', 'apply': 'file'},
{'key': 'client_total_bytes_uploaded', 'apply': 'file'},

View file

@ -31,6 +31,8 @@
{'key': 'virtualserver_month_bytes_uploaded', 'apply': 'file'},
{'key': 'virtualserver_total_bytes_downloaded', 'apply': 'file'},
{'key': 'virtualserver_total_bytes_uploaded', 'apply': 'file'},
{'key': 'connection_filetransfer_bandwidth_received', 'apply': 'bandwidth'},
{'key': 'connection_filetransfer_bandwidth_sent', 'apply': 'bandwidth'},
{'key': 'connection_filetransfer_bytes_sent_total', 'apply': 'file'},
{'key': 'connection_filetransfer_bytes_received_total', 'apply': 'file'},
{'key': 'connection_bytes_sent_speech', 'apply': 'file'},