Преглед на файлове

renamed "Minecraft Payment" to "Minecraft-Payment"

removed php-only settings_view and server_settings_view inccluding template and route
registered MinecraftPayAPI
registered Settings and SettingsList including route
added CRUD for MinecraftServer
implemented Settings and SettingsList component for managing Server-entries including templates
added some german translations
added MinecraftPayService for buffering data
pull/1/head
DragonSkills99 преди 5 години
родител
ревизия
e4e309d575
променени са 40 файла, в които са добавени 403 реда и са изтрити 191 реда
  1. 12
    85
      Plugin.php
  2. 103
    0
      classes/MinecraftPayAPI.class.php
  3. 2
    2
      mithril/components/Account.class.d.ts
  4. 2
    2
      mithril/components/Account.class.js
  5. 0
    0
      mithril/components/Account.class.ts
  6. 2
    2
      mithril/components/AccountList.class.d.ts
  7. 2
    2
      mithril/components/AccountList.class.js
  8. 0
    0
      mithril/components/AccountList.class.ts
  9. 0
    0
      mithril/components/AlterAccount.class.d.ts
  10. 0
    0
      mithril/components/AlterAccount.class.js
  11. 0
    0
      mithril/components/AlterAccount.class.ts
  12. 0
    0
      mithril/components/GrantUser.class.d.ts
  13. 0
    0
      mithril/components/GrantUser.class.js
  14. 0
    0
      mithril/components/GrantUser.class.ts
  15. 7
    0
      mithril/components/Settings.class.d.ts
  16. 26
    0
      mithril/components/Settings.class.js
  17. 28
    0
      mithril/components/Settings.class.ts
  18. 53
    0
      mithril/components/Settings.template.html
  19. 5
    0
      mithril/components/SettingsList.class.d.ts
  20. 11
    0
      mithril/components/SettingsList.class.js
  21. 15
    0
      mithril/components/SettingsList.class.ts
  22. 31
    0
      mithril/components/SettingsList.template.html
  23. 0
    0
      mithril/components/Users.class.d.ts
  24. 0
    0
      mithril/components/Users.class.js
  25. 0
    0
      mithril/components/Users.class.ts
  26. 0
    0
      mithril/components/Users.component.d.ts
  27. 0
    0
      mithril/components/Users.component.js
  28. 0
    0
      mithril/components/Users.component.ts
  29. 0
    0
      mithril/components/UsersList.class.d.ts
  30. 0
    0
      mithril/components/UsersList.class.js
  31. 0
    0
      mithril/components/UsersList.class.ts
  32. 0
    0
      mithril/components/UsersList.component.d.ts
  33. 0
    0
      mithril/components/UsersList.component.js
  34. 0
    0
      mithril/components/UsersList.component.ts
  35. 16
    0
      mithril/lang/de.json
  36. 9
    0
      mithril/services/MinecraftPayService.d.ts
  37. 37
    0
      mithril/services/MinecraftPayService.js
  38. 42
    0
      mithril/services/MinecraftPayService.ts
  39. 0
    56
      templates/Settings.Template.php
  40. 0
    42
      templates/SettingsList.Template.php

+ 12
- 85
Plugin.php Целия файл

@@ -1,7 +1,7 @@
<?php
class MinecraftPaymentPlugin extends Plugin {
public static function get_plugin_name(): string {
return 'Minecraft Payment';
return 'Minecraft-Payment';
}

public function __construct( $_DB ) {
@@ -15,10 +15,6 @@ class MinecraftPaymentPlugin extends Plugin {
public function get_page_path() {
return [
'/minecraft-pay/' => [
'settings' => [
null => 'settings_view',
'/*' => 'server_settings_view'
],
'users' => [
null => 'users_view',
'/*' => 'user_view'
@@ -29,8 +25,17 @@ class MinecraftPaymentPlugin extends Plugin {
'acredit' => 'acredit_view'
]
];
// return [ '/minecraft-pay/settings', '/minecraft-pay/settings/*', '/minecraft-pay/users', '/minecraft-pay/grant', '/minecraft-pay/settle', '/minecraft-pay/balance', '/minecraft-pay/users/*', '/minecraft-pay/acredit' ];
}
}
public function pre_load_plugin(): void {
$this->register_component_short( 'SettingsList' );
$this->add_route( '/minecraft-pay/settings', 'SettingsList' );
$this->register_component_short( 'Settings' );
$this->add_route( '/minecraft-pay/settings/:id', 'Settings' );
$this->require_class( 'MinecraftPayAPI' );
API::REGISTER_CLASS( new MinecraftPayAPI(), 3, 'minecraft-pay/' );
}

public function grant_view( string $url ) {
if ( !Permission::PERMITTED( 'Minecraft-Pay-Settings', 1 ) ) return;
@@ -257,84 +262,6 @@ class MinecraftPaymentPlugin extends Plugin {
$this->show_template( 'Users', $params );
}

public function settings_view( string $url ) {
if ( !Permission::PERMITTED( 'Minecraft-Pay-Settings', 1 ) ) return;
if ( $url == '/minecraft-pay/settings' ) {
$params = [];
if ( array_key_exists( 'CreateServer', $_POST ) && array_key_exists( 'Name', $_POST ) ) {
$s = MinecraftServer::FromPropertyArray( $_POST );
try {
$s->Save();
$params[ 'save_message' ] = __( [ 'de' => 'Server erfolgreich angelegt', 'en' => 'Created server successfully' ] );
$params[ 'save_success' ] = true;
} catch( Exception $ex ) {
$params[ 'save_message' ] = $ex->getMessage();
if ( startsWith( $params[ 'save_message' ], 'Duplicate entry' ) )
$params[ 'save_message' ] = __(
[
'de' => 'Doppelter Name oder es wurde bei einem anderen Server weder Domain noch Port angegeben',
'en' => 'Duplicated Name or another server has neither domain nor port'
]
);
$params[ 'save_success' ] = false;
}
}
if ( array_key_exists( 'DeleteServer', $_POST ) && array_key_exists( 'ID', $_POST ) ) {
$s = MinecraftServer::FromPropertyArray( $_POST );
try {
$s->Delete();
$params[ 'save_message' ] = __( [ 'de' => 'Server erfolgreich gel&ouml;scht', 'en' => 'Deleted server successfully' ] );
$params[ 'save_success' ] = true;
} catch( Exception $ex ) {
$params[ 'save_message' ] = $ex->getMessage();
$params[ 'save_success' ] = false;
}
}
$this->show_template( 'SettingsList', $params );
}
else $this->server_settings_view( $url );
// $this->show_template( 'Settings', [ 'settings' => (object) [ 'Server' => '', 'Port' => 35575, 'Password' => '' ] ] );
}

public function server_settings_view( string $url ) {
if ( !Permission::PERMITTED( 'Minecraft-Pay-Settings', 1 ) ) return;
if ( !preg_match( '/\/minecraft-pay\/settings\/([0-9]+)/', $url, $m ) || is_null( MinecraftServer::GetByID( $m[ 1 ] ) ) ) {
Alert::SHOW( __( [ 'de' => 'Dieser Server existiert nicht', 'en' => 'This server does not exist' ] ) );
return;
}
$params = [];
if (
array_key_exists( 'SaveServerSettings', $_POST ) &&
array_key_exists( 'Domain', $_POST ) &&
array_key_exists( 'Port', $_POST ) &&
array_key_exists( 'Password', $_POST ) &&
array_key_exists( 'ServerPath', $_POST )
) {
if ( !$_POST[ 'Port' ] ) $_POST[ 'Port' ] = null;
$o = MinecraftServer::GetByID( $m[ 1 ] );
$s = MinecraftServer::FromPropertyArray( $_POST );
$s->SetID( $o->GetID() );
$s->SetName( $o->GetName() );
try {
$s->Save();
$params[ 'save_message' ] = __( [ 'de' => 'Server erfolgreich gespeichert', 'en' => 'Saved server successfully' ] );
$params[ 'save_success' ] = true;
} catch( Exception $ex ) {
$params[ 'save_message' ] = $ex->getMessage();
if ( startsWith( $params[ 'save_message' ], 'Duplicate entry' ) )
$params[ 'save_message' ] = __(
[
'de' => 'Doppelte Domain noch Port Kombination',
'en' => 'Duplicated domain - port combination'
]
);
$params[ 'save_success' ] = false;
}
}
$params[ 'settings' ] = MinecraftServer::GetByID( $m[ 1 ] );
$this->show_template( 'Settings', $params );
}

public function load_plugin(): void {
if ( is_null( Permission::GetByUnique( 0, 'Minecraft-Pay-Settings' ) ) ) {
$p = Permission::FromArray( [], [] );

+ 103
- 0
classes/MinecraftPayAPI.class.php Целия файл

@@ -0,0 +1,103 @@
<?php
class MinecraftPayAPI {
/**
* @API-Callback
* @Path servers
*
* @Request-Method GET
*
* @return MinecraftServer[]
*/
public function GetAllServers() {
return MinecraftServer::GetAll()->toArray();
}
/**
* @API-Callback
* @Path servers/:id
* @Require-Login
* @Require-Permission Minecraft-Pay-Settings
*
* @Request-Method PATCH
*
* @Parameterized
*
* @param MinecraftServer $seerver server to edit
*
* @paramget id path id required int
* @paramget server post server required MinecraftServer
*
* @return APIResult< MinecraftServer >
*/
public static function UpdateServer( int $id, MinecraftServer $server ) {
$o = MinecraftServer::GetByID( $id );
if ( $o == null ) {
$results[] = new APIResult( 'Missing ID', false, $server );
}
if ( $server->GetName() != null ) $o->SetName( $server->GetName() );
if ( $server->GetDomain() != null ) $o->SetDomain( $server->GetDomain() );
if ( $server->GetPort() != null ) $o->SetPort( $server->GetPort() );
if ( $server->GetPassword() != null ) $o->SetPassword( $server->GetPassword() );
if ( $server->GetServerPath() != null ) $o->SetServerPath( $server->GetServerPath() );
if ( $server->GetPerMonthPrice() != null ) $o->SetPerMonthPrice( $server->GetPerMonthPrice() );
if ( $server->GetMaxPerMonthPrice() != null ) $o->SetMaxPerMonthPrice( $server->GetMaxPerMonthPrice() );
$r = $o->Save();
return new APIResult( $r ? 'Saved successfully' : 'Saving failed', $r, $r ? $o : MinecraftServer::GetByID( $id ) );
}
/**
* @API-Callback
* @Path servers/:id
* @Require-Login
* @Require-Permission Minecraft-Pay-Settings
*
* @Request-Method DELETE
*
* @Parameterized
*
* @paramget id path id required int
*
* @return APIResult< MinecraftServer >
*/
public static function DeleteServer( int $id ) {
if ( !is_numeric( $id ) ) return new APIResult( 'Invalid ID', false, null );
$server = MinecraftServer::GetByID( $id );
$result = null;
if ( !$server ) {
$result = new APIResult( 'Server does not exist', false, null );
} else if ( $server->DELETE() ) {
$result = new APIResult( 'Deleted server successfully', true, null );
} else {
$result = new APIResult( 'Deleting server failed', false, $server );
}
return $result;
}
/**
* @API-Callback
* @Path servers
* @Require-Login
* @Require-Permission Minecraft-Pay-Settings
*
* @Request-Method POST
*
* @Parameterized
*
* @param MinecraftServer $server to add
*
* @paramget server post server required MinecraftServer
*
* @return APIResult< MinecraftServer >
*/
public static function AddMinecraftServer( MinecraftServer $server ) {
$o = new MinecraftServer();
$o->SetName( $server->GetName() );
$s = $o->Save();
return new APIResult( $s ? 'Created server successfully' : 'The server could not be created', $s, $s ? $o : null );
}
}

mithril/components/Account.component.d.ts → mithril/components/Account.class.d.ts Целия файл

@@ -1,2 +1,2 @@
declare class Account {
}
declare class Account {
}

mithril/components/Account.component.js → mithril/components/Account.class.js Целия файл

@@ -1,2 +1,2 @@
class Account {
}
class Account {
}

mithril/components/Account.component.ts → mithril/components/Account.class.ts Целия файл


mithril/components/AccountList.component.d.ts → mithril/components/AccountList.class.d.ts Целия файл

@@ -1,2 +1,2 @@
declare class AccountList {
}
declare class AccountList {
}

mithril/components/AccountList.component.js → mithril/components/AccountList.class.js Целия файл

@@ -1,2 +1,2 @@
class AccountList {
}
class AccountList {
}

mithril/components/AccountList.component.ts → mithril/components/AccountList.class.ts Целия файл


mithril/components/AlterAccount.component.d.ts → mithril/components/AlterAccount.class.d.ts Целия файл


mithril/components/AlterAccount.component.js → mithril/components/AlterAccount.class.js Целия файл


mithril/components/AlterAccount.component.ts → mithril/components/AlterAccount.class.ts Целия файл


mithril/components/GrantUser.component.d.ts → mithril/components/GrantUser.class.d.ts Целия файл


mithril/components/GrantUser.component.js → mithril/components/GrantUser.class.js Целия файл


mithril/components/GrantUser.component.ts → mithril/components/GrantUser.class.ts Целия файл


+ 7
- 0
mithril/components/Settings.class.d.ts Целия файл

@@ -0,0 +1,7 @@
declare class Settings {
private settings;
onview(vnode: any): void;
private loadServer;
constructor();
private saveServer;
}

+ 26
- 0
mithril/components/Settings.class.js Целия файл

@@ -0,0 +1,26 @@
// MLQRequire: { "Plugin": "Minecraft-Payment", "Type": "Service", "Name": "MinecraftPayService" }
class Settings {
constructor() {
this.settings = {};
}
onview(vnode) {
if (typeof (MinecraftServer) !== 'function')
LoadQueue.Start(() => { });
else
this.loadServer();
}
loadServer() {
var id = m.route.param('id');
if (id.match(/^[0-9]+$/))
id = parseInt(id);
else
return;
if (this.settings.ID !== id) {
this.settings = $.extend(true, new MinecraftServer(), MinecraftPayService.Servers.find(o => o.ID === id)) || this.settings;
m.redraw();
}
}
saveServer() {
MinecraftPayService.UpdateServer(this.settings.ID, this.settings);
}
}

+ 28
- 0
mithril/components/Settings.class.ts Целия файл

@@ -0,0 +1,28 @@
// MLQRequire: { "Plugin": "Minecraft-Payment", "Type": "Service", "Name": "MinecraftPayService" }
class Settings {
private settings: MinecraftServer = {} as MinecraftServer;
public onview( vnode )
{
if ( typeof( MinecraftServer ) !== 'function' ) LoadQueue.Start( () => {} )
else this.loadServer();
}
private loadServer() {
var id: string | number = m.route.param( 'id' );
if ( id.match( /^[0-9]+$/ ) ) id = parseInt( id );
else return;
if ( this.settings.ID !== id ) {
this.settings = $.extend( true, new MinecraftServer(), MinecraftPayService.Servers.find( o => o.ID === id ) ) || this.settings;
m.redraw();
}
}
public constructor() {
}
private saveServer() {
MinecraftPayService.UpdateServer( this.settings.ID, this.settings );
}
}

+ 53
- 0
mithril/components/Settings.template.html Целия файл

@@ -0,0 +1,53 @@
<form m-form="this.saveServer" m-if="m.route.param( 'id' ).match( /^([0-9]+|me)$/ )">
<table class="table table-striped table-hover">
<thead>
<tr class="table-primary">
<th dval-innerText="'Minecraft Payment Server ' + __( 'Settings' )" colspan="2"></th>
</tr>
</thead>
<tbody>
<tr>
<th class="align-middle" dval-innerText="__( 'Domain' )"></th>
<td>
<input class="form-control" type="text" name="Domain" m-value="this.settings.Domain" />
</td>
</tr>
<tr>
<th class="align-middle" dval-innerText="__( 'Port' )"></th>
<td>
<input class="form-control" type="number" name="Port" m-value="this.settings.Port" />
</td>
</tr>
<tr>
<th class="align-middle" dval-innerText="__( 'Password' )"></th>
<td>
<input autocomplete="password" class="form-control" type="password" name="Password" m-value="this.settings.Password" />
</td>
</tr>
<tr>
<th class="align-middle" dval-innerText="__( 'Server-Path' )"></th>
<td>
<input class="form-control" type="text" name="ServerPath" m-value="this.settings.ServerPath" />
</td>
</tr>
<tr>
<th class="align-middle" dval-innerText="__( 'Price/Month' )"></th>
<td>
<input class="form-control" type="number" name="PerMonthPrice" m-value="this.settings.PerMonthPrice" />
</td>
</tr>
<tr>
<th class="align-middle" dval-innerText="__( 'Price/Month (Limit)' )"></th>
<td>
<input class="form-control" type="number" name="MaxPerMonthPrice" m-value="this.settings.MaxPerMonthPrice" />
</td>
</tr>
<tr>
<td colspan="2">
<input class="btn btn-primary w-100" type="submit" name="SaveServerSettings" m-value="__( 'Save' )" />
</td>
</tr>
</tbody>
</table>
</form>
<h3 m-if="!m.route.param( 'id' ).match( /^([0-9]+|me)$/ )" dval-innerText="__( 'Invalid ID given' )"></h3>

+ 5
- 0
mithril/components/SettingsList.class.d.ts Целия файл

@@ -0,0 +1,5 @@
declare class SettingsList {
private serverName;
private addServer;
private deleteServer;
}

+ 11
- 0
mithril/components/SettingsList.class.js Целия файл

@@ -0,0 +1,11 @@
// MLQRequire: { "Plugin": "Minecraft-Payment", "Type": "Service", "Name": "MinecraftPayService" }
class SettingsList {
addServer() {
MinecraftPayService.CreateServer({ Name: this.serverName });
}
deleteServer(id, confirm, event) {
if (confirm) {
MinecraftPayService.DeleteServer(id);
}
}
}

+ 15
- 0
mithril/components/SettingsList.class.ts Целия файл

@@ -0,0 +1,15 @@
// MLQRequire: { "Plugin": "Minecraft-Payment", "Type": "Service", "Name": "MinecraftPayService" }
class SettingsList {
private serverName: string;
private addServer() {
MinecraftPayService.CreateServer( { Name: this.serverName } as MinecraftServer );
}
private deleteServer( id: number, confirm: boolean, event: any ) {
if ( confirm ) {
MinecraftPayService.DeleteServer( id );
}
}
}

+ 31
- 0
mithril/components/SettingsList.template.html Целия файл

@@ -0,0 +1,31 @@
<meta log-in permission="Minecraft-Pay-Settings" />
<form m-form="this.addServer">
<table class="table table-hover table-striped">
<tbody>
<tr>
<td><input class="form-control" type="text" name="Name" m-value="this.serverName" /></td>
<td><input class="form-control btn-info" type="submit" name="CreateServer" dval-value="__( 'Create server' )" /></td>
</tr>
</tbody>
</table>
</form>
<hr />
<table class="table table-hover table-striped">
<thead>
<tr class="table-primary">
<th style="width: 100%;">Name</th>
<th colspan="2"></th>
</tr>
</thead>
<tbody>
<tr m-for="MinecraftPayService.Servers as server">
<td dval-innerText="server.Name"></td>
<td class="align-middle">
<a class="action_href action_delete btn btn-danger" style="cursor: pointer;" dval-onclick="() => Modal.YesNo( 'Delete server', __( 'Do you really want to delete this server?' ), ( c, e ) => this.deleteServer( server.ID, c, e ) ).Show()">&#x1F5D1;</a>
</td>
<td class="align-middle">
<a class="action_href btn btn-outline-primary float-right" dval-m-href="'/minecraft-pay/settings/' + server.ID">&gt;&gt;</a>
</td>
</tr>
</tbody>
</table>

mithril/components/Settings.component.d.ts → mithril/components/Users.class.d.ts Целия файл


mithril/components/Settings.component.js → mithril/components/Users.class.js Целия файл


mithril/components/Settings.component.ts → mithril/components/Users.class.ts Целия файл


+ 0
- 0
mithril/components/Users.component.d.ts Целия файл


+ 0
- 0
mithril/components/Users.component.js Целия файл


+ 0
- 0
mithril/components/Users.component.ts Целия файл


mithril/components/SettingsList.component.d.ts → mithril/components/UsersList.class.d.ts Целия файл


mithril/components/SettingsList.component.js → mithril/components/UsersList.class.js Целия файл


mithril/components/SettingsList.component.ts → mithril/components/UsersList.class.ts Целия файл


+ 0
- 0
mithril/components/UsersList.component.d.ts Целия файл


+ 0
- 0
mithril/components/UsersList.component.js Целия файл


+ 0
- 0
mithril/components/UsersList.component.ts Целия файл


+ 16
- 0
mithril/lang/de.json Целия файл

@@ -0,0 +1,16 @@
{
"Minecraft Users": "Minecraft Benutzer",
"Credit": "Gutschrift",
"Transactions": "Transaktionen",
"Grant right": "Recht gewähren",
"Create server": "Server anlegen",
"Domain": "Domäne",
"Server-Path": "Server-Pfad",
"Price/Month": "Preis/Monat",
"Price/Month (Limit)": "Preis/Monat (Limit)",
"Settings": "Einstellungen",
"Delete server": "Server löschen",
"Do you really want to delete this server?": "Willst du diesen Server wirklich löschen?",
"Yes": "Ja",
"No": "Nein"
}

+ 9
- 0
mithril/services/MinecraftPayService.d.ts Целия файл

@@ -0,0 +1,9 @@
/// <reference types="assets/plugins/mithril/mithril/generated/apirequestimports" />
declare class MinecraftPayService {
static INSTANCE: MinecraftPayService;
static Servers: MinecraftServer[];
private constructor();
static CreateServer(server: MinecraftServer): void;
static UpdateServer(id: number, server: MinecraftServer): void;
static DeleteServer(id: number): void;
}

+ 37
- 0
mithril/services/MinecraftPayService.js Целия файл

@@ -0,0 +1,37 @@
/// <reference path="../../../../assets/plugins/mithril/mithril/generated/APIRequestImports.d.ts" />
// MLQRequire: { "Type": "API", "Name": "MinecraftPayAPI" }
// MLQRequire: { "Plugin": "Mithril", "Type": "Component", "Name": "Toasts" }
class MinecraftPayService {
constructor() {
LoadQueue.Start(() => {
MinecraftPayAPI.GetAllServers().then(s => MinecraftPayService.Servers = s || []);
});
}
static CreateServer(server) {
MinecraftPayAPI.AddMinecraftServer({ post: { server } }).then(r => {
console.warn(r);
if (r.Success) {
this.Servers.push(r.Obj);
}
Toasts.Messaged(r.Message, Toast.Load({ Type: r.Success ? 'success' : 'danger' }));
});
}
static UpdateServer(id, server) {
MinecraftPayAPI.UpdateServer({ post: { server }, params: { id } }).then(r => {
if (r.Success) {
this.Servers[this.Servers.findIndex(o => o.ID === r.Obj.ID)] = r.Obj;
}
Toasts.Messaged(r.Message, Toast.Load({ Type: r.Success ? 'success' : 'danger' }));
});
}
static DeleteServer(id) {
MinecraftPayAPI.DeleteServer({ params: { id } }).then(r => {
if (r.Success) {
this.Servers.splice(this.Servers.findIndex(o => o.ID === id), 1);
}
Toasts.Messaged(r.Message, Toast.Load({ Type: r.Success ? 'success' : 'danger' }));
});
}
}
MinecraftPayService.INSTANCE = new MinecraftPayService();
MinecraftPayService.Servers = [];

+ 42
- 0
mithril/services/MinecraftPayService.ts Целия файл

@@ -0,0 +1,42 @@
/// <reference path="../../../../assets/plugins/mithril/mithril/generated/APIRequestImports.d.ts" />
// MLQRequire: { "Type": "API", "Name": "MinecraftPayAPI" }
// MLQRequire: { "Plugin": "Mithril", "Type": "Component", "Name": "Toasts" }
class MinecraftPayService {
public static INSTANCE: MinecraftPayService = new MinecraftPayService();
public static Servers: MinecraftServer[] = [];
private constructor() {
LoadQueue.Start( () => {
MinecraftPayAPI.GetAllServers().then( s => MinecraftPayService.Servers = s || [] );
} );
}
public static CreateServer( server: MinecraftServer ) {
MinecraftPayAPI.AddMinecraftServer( { post: { server } } ).then( r => {
console.warn( r );
if ( r.Success ) {
this.Servers.push( r.Obj );
}
Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
} );
}
public static UpdateServer( id: number, server: MinecraftServer ) {
MinecraftPayAPI.UpdateServer( { post: { server }, params: { id } } ).then( r => {
if ( r.Success ) {
this.Servers[ this.Servers.findIndex( o => o.ID === r.Obj.ID ) ] = r.Obj;
}
Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
} );
}
public static DeleteServer( id: number ) {
MinecraftPayAPI.DeleteServer( { params: { id } } ).then( r => {
if ( r.Success ) {
this.Servers.splice( this.Servers.findIndex( o => o.ID === id ), 1 );
}
Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
} );
}
}

+ 0
- 56
templates/Settings.Template.php Целия файл

@@ -1,56 +0,0 @@
<meta log-in permission="Minecraft-Pay-Settings" />
<div dyn-if="isset( $save_message )">
<div dyn-type="alert" eval-value="$save_message" eval-type="$save_success ? ALERT_SUCCESS : ALERT_DANGER"></div>
</div>
<form method="POST">
<table>
<thead>
<tr>
<th eval-innerText="'Minecraft Payment ' . __([ 'de' => 'Einstellungen', 'en' => 'Settings' ])" colspan="2"></th>
</tr>
</thead>
<tbody>
<tr>
<th eval-innerText="__([ 'de' => 'Dom&auml;ne', 'en' => 'Domain' ])"></th>
<td>
<input type="text" name="Domain" eval-value="$settings->GetDomain()" />
</td>
</tr>
<tr>
<th eval-innerText="__([ 'de' => 'Port', 'en' => 'Port' ])"></th>
<td>
<input type="number" name="Port" eval-value="$settings->GetPort()" />
</td>
</tr>
<tr>
<th eval-innerText="__([ 'de' => 'Passwort', 'en' => 'Password' ])"></th>
<td>
<input type="password" name="Password" eval-value="$settings->GetPassword()" />
</td>
</tr>
<tr>
<th eval-innerText="__([ 'de' => 'Server-Pfad', 'en' => 'Server-Path' ])"></th>
<td>
<input type="text" name="ServerPath" eval-value="$settings->GetServerPath()" />
</td>
</tr>
<tr>
<th eval-innerText="__([ 'de' => 'Preis/Monat', 'en' => 'Price/Month' ])"></th>
<td>
<input type="number" name="PerMonthPrice" eval-value="$settings->GetPerMonthPrice()" />
</td>
</tr>
<tr>
<th eval-innerText="__([ 'de' => 'Preis/Monat (Limit)', 'en' => 'Price/Month (Limit)' ])"></th>
<td>
<input type="number" name="MaxPerMonthPrice" eval-value="$settings->GetMaxPerMonthPrice()" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="SaveServerSettings" eval-value="__([ 'de' => 'Speichern', 'en' => 'Save' ])" />
</td>
</tr>
</tbody>
</table>
</form>

+ 0
- 42
templates/SettingsList.Template.php Целия файл

@@ -1,42 +0,0 @@
<meta log-in permission="Minecraft-Pay-Settings" />
<div dyn-if="isset( $save_message )">
<div dyn-type="alert" eval-value="$save_message" eval-type="$save_success ? ALERT_SUCCESS : ALERT_DANGER"></div>
</div>
<form method="POST">
<table class="table">
<tbody>
<tr>
<td><input type="text" name="Name" /></td>
<td><input type="submit" name="CreateServer" eval-value="__( [ 'de' => 'Server anlegen', 'en' => 'Create server' ] )" /></td>
</tr>
</tbody>
</table>
</form>
<hr />
<table class="table">
<thead>
<tr>
<th style="width: 100%;">Name</th>
<th colspan="2"></th>
</tr>
</thead>
<tbody>
<tr dyn-for="[ 'server', 'MinecraftServer::GetAll()' ]">
<td eval-innerText="$server->GetName()"></td>
<td>
<a style="cursor: pointer;" eval-href="HOME_URL . 'minecraft-pay/settings/' . $server->GetID()">
<input style="cursor: pointer;" type="button" eval-value="__( [ 'de' => 'Bearbeiten', 'en' => 'Edit' ] )" />
</a>
</td>
<td>
<form method="POST">
<input type="hidden" name="ID" eval-value="$server->GetID()" />
<input type="submit" name="DeleteServer" eval-value="__( [ 'de' => 'L&ouml;schen', 'en' => 'Delete' ] )" />
</form>
<a eval-href="">
</a>
</td>
</tr>
</tbody>
</table>

Loading…
Отказ
Запис