Merge branch 'release/0.15.2'

This commit is contained in:
Jonny Barnes 2018-01-11 11:47:21 +00:00
commit 4884c5ba62
36 changed files with 628 additions and 327 deletions

View file

@ -45,7 +45,8 @@ class MicropubController extends Controller
public function post() public function post()
{ {
try { try {
$tokenData = $this->tokenService->validateToken(request()->bearerToken()); info(request()->input('access_token'));
$tokenData = $this->tokenService->validateToken(request()->input('access_token'));
} catch (InvalidTokenException $e) { } catch (InvalidTokenException $e) {
return $this->invalidTokenResponse(); return $this->invalidTokenResponse();
} }
@ -254,7 +255,7 @@ class MicropubController extends Controller
private function getClientId(): string private function getClientId(): string
{ {
return resolve(TokenService::class) return resolve(TokenService::class)
->validateToken(request()->bearerToken()) ->validateToken(request()->input('access_token'))
->getClaim('client_id'); ->getClaim('client_id');
} }

View file

@ -15,14 +15,20 @@ class VerifyMicropubToken
*/ */
public function handle($request, Closure $next) public function handle($request, Closure $next)
{ {
if ($request->bearerToken() === null) { if ($request->input('access_token')) {
return response()->json([ return $next($request);
'response' => 'error',
'error' => 'unauthorized',
'error_description' => 'No access token was provided in the request',
], 401);
} }
return $next($request); if ($request->bearerToken()) {
return $next($request->merge([
'access_token' => $request->bearerToken(),
]));
}
return response()->json([
'response' => 'error',
'error' => 'unauthorized',
'error_description' => 'No access token was provided in the request',
], 401);
} }
} }

View file

@ -1,5 +1,9 @@
# Changelog # Changelog
## Version 0.15.2 (2018-01-11)
- Update micropub endpoint to support access tokens being sent in either acceptable form
- Improve admin control panel forms
## Version 0.15.1 (2018-01-06) ## Version 0.15.1 (2018-01-06)
- Update dependencies and recompile frontend assets, fix tests - Update dependencies and recompile frontend assets, fix tests
- Only normalise tags in the URL, not in the actual link text - Only normalise tags in the URL, not in the actual link text

View file

@ -12,7 +12,7 @@
"guzzlehttp/guzzle": "~6.0", "guzzlehttp/guzzle": "~6.0",
"indieauth/client": "~0.1", "indieauth/client": "~0.1",
"intervention/image": "^2.4", "intervention/image": "^2.4",
"jonnybarnes/commonmark-linkify": "^0.3", "jonnybarnes/commonmark-linkify": "^0.4",
"jonnybarnes/emoji-a11y": "^0.3", "jonnybarnes/emoji-a11y": "^0.3",
"jonnybarnes/indieweb": "dev-master", "jonnybarnes/indieweb": "dev-master",
"jonnybarnes/webmentions-parser": "0.4.*", "jonnybarnes/webmentions-parser": "0.4.*",
@ -21,7 +21,7 @@
"laravel/scout": "^3.0", "laravel/scout": "^3.0",
"laravel/tinker": "^1.0", "laravel/tinker": "^1.0",
"lcobucci/jwt": "^3.1", "lcobucci/jwt": "^3.1",
"league/commonmark": "^0.16.0", "league/commonmark": "^0.17.0",
"league/flysystem-aws-s3-v3": "^1.0", "league/flysystem-aws-s3-v3": "^1.0",
"mf2/mf2": "~0.3", "mf2/mf2": "~0.3",
"phaza/laravel-postgis": "~3.1", "phaza/laravel-postgis": "~3.1",
@ -34,8 +34,8 @@
}, },
"require-dev": { "require-dev": {
"barryvdh/laravel-debugbar": "~3.0", "barryvdh/laravel-debugbar": "~3.0",
"bmitch/churn-php": "^0.2.0", "bmitch/churn-php": "^0.4.0",
"codedungeon/phpunit-result-printer": "^0.3.0", "codedungeon/phpunit-result-printer": "^0.5.0",
"filp/whoops": "~2.0", "filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4", "fzaninotto/faker": "~1.4",
"jakub-onderka/php-parallel-lint": "^0.9.2", "jakub-onderka/php-parallel-lint": "^0.9.2",

287
composer.lock generated
View file

@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "20e0057bf4b93bb8b6f0b43b522dd4db", "content-hash": "aa839c8457c44ea018fd9141b3ec553e",
"packages": [ "packages": [
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.48.8", "version": "3.48.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "40dc24b2152cb00a5a6b2f2fe1678b86b6f0ba57" "reference": "4159562ee5c2b2d322cfcccd2401d90bfaceaf1d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/40dc24b2152cb00a5a6b2f2fe1678b86b6f0ba57", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4159562ee5c2b2d322cfcccd2401d90bfaceaf1d",
"reference": "40dc24b2152cb00a5a6b2f2fe1678b86b6f0ba57", "reference": "4159562ee5c2b2d322cfcccd2401d90bfaceaf1d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -84,7 +84,7 @@
"s3", "s3",
"sdk" "sdk"
], ],
"time": "2018-01-05T22:21:07+00:00" "time": "2018-01-09T22:01:13+00:00"
}, },
{ {
"name": "barnabywalters/mf-cleaner", "name": "barnabywalters/mf-cleaner",
@ -811,20 +811,20 @@
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
"version": "v1.2.0", "version": "v1.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/inflector.git", "url": "https://github.com/doctrine/inflector.git",
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462" "reference": "5527a48b7313d15261292c149e55e26eae771b0a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462", "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
"reference": "e11d84c6e018beedd929cff5220969a3c6d1d462", "reference": "5527a48b7313d15261292c149e55e26eae771b0a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0" "php": "^7.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.2" "phpunit/phpunit": "^6.2"
@ -832,7 +832,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.2.x-dev" "dev-master": "1.3.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -874,7 +874,7 @@
"singularize", "singularize",
"string" "string"
], ],
"time": "2017-07-22T12:18:28+00:00" "time": "2018-01-09T20:05:19+00:00"
}, },
{ {
"name": "doctrine/lexer", "name": "doctrine/lexer",
@ -1710,20 +1710,20 @@
}, },
{ {
"name": "jonnybarnes/commonmark-linkify", "name": "jonnybarnes/commonmark-linkify",
"version": "v0.3", "version": "v0.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/jonnybarnes/commonmark-linkify.git", "url": "https://github.com/jonnybarnes/commonmark-linkify.git",
"reference": "6de548e2140cff0143b1ee166868275ec0a1174f" "reference": "fa5b1434dbd3639d2739e3b4f0aa5d14f322d60a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/jonnybarnes/commonmark-linkify/zipball/6de548e2140cff0143b1ee166868275ec0a1174f", "url": "https://api.github.com/repos/jonnybarnes/commonmark-linkify/zipball/fa5b1434dbd3639d2739e3b4f0aa5d14f322d60a",
"reference": "6de548e2140cff0143b1ee166868275ec0a1174f", "reference": "fa5b1434dbd3639d2739e3b4f0aa5d14f322d60a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"league/commonmark": "^0.16.0", "league/commonmark": "^0.17.0",
"php": "^7.0" "php": "^7.0"
}, },
"require-dev": { "require-dev": {
@ -1745,13 +1745,14 @@
"email": "jonny@jonnybarnes.uk" "email": "jonny@jonnybarnes.uk"
} }
], ],
"description": "Turn plaintext urls into clickable links", "description": "Turn plaintext URLs into click-able links",
"homepage": "https://github.com/jonnybarnes/commonmark-linkify", "homepage": "https://github.com/jonnybarnes/commonmark-linkify",
"keywords": [ "keywords": [
"commonmark", "commonmark",
"extension",
"markdown" "markdown"
], ],
"time": "2017-11-07T22:35:17+00:00" "time": "2018-01-11T10:38:16+00:00"
}, },
{ {
"name": "jonnybarnes/emoji-a11y", "name": "jonnybarnes/emoji-a11y",
@ -2278,34 +2279,34 @@
}, },
{ {
"name": "league/commonmark", "name": "league/commonmark",
"version": "0.16.0", "version": "0.17.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/commonmark.git", "url": "https://github.com/thephpleague/commonmark.git",
"reference": "c0e41be0f80c51ad3170c9c713f74a0b8dec59ce" "reference": "3b4c2224524776a584de663c7a04bc8eb2e1544d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c0e41be0f80c51ad3170c9c713f74a0b8dec59ce", "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3b4c2224524776a584de663c7a04bc8eb2e1544d",
"reference": "c0e41be0f80c51ad3170c9c713f74a0b8dec59ce", "reference": "3b4c2224524776a584de663c7a04bc8eb2e1544d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-mbstring": "*", "ext-mbstring": "*",
"php": ">=5.4.8" "php": ">=5.6.5"
}, },
"replace": { "replace": {
"colinodell/commonmark-php": "*" "colinodell/commonmark-php": "*"
}, },
"require-dev": { "require-dev": {
"cebe/markdown": "~1.0", "cebe/markdown": "~1.0",
"commonmark/commonmark.js": "0.28",
"erusev/parsedown": "~1.0", "erusev/parsedown": "~1.0",
"jgm/commonmark": "0.28",
"michelf/php-markdown": "~1.4", "michelf/php-markdown": "~1.4",
"mikehaertl/php-shellcommand": "~1.2.0", "mikehaertl/php-shellcommand": "~1.2.0",
"phpunit/phpunit": "^4.8.35|~5.7", "phpunit/phpunit": "~5.7|~6.5",
"scrutinizer/ocular": "~1.1", "scrutinizer/ocular": "~1.1",
"symfony/finder": "~2.3|~3.0" "symfony/finder": "~3.0|~4.0"
}, },
"suggest": { "suggest": {
"league/commonmark-extras": "Library of useful extensions including smart punctuation" "league/commonmark-extras": "Library of useful extensions including smart punctuation"
@ -2316,7 +2317,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "0.17-dev" "dev-master": "0.18-dev"
} }
}, },
"autoload": { "autoload": {
@ -2343,7 +2344,7 @@
"markdown", "markdown",
"parser" "parser"
], ],
"time": "2017-10-31T00:49:55+00:00" "time": "2017-12-30T22:08:48+00:00"
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
@ -3439,16 +3440,16 @@
}, },
{ {
"name": "sensiolabs/security-checker", "name": "sensiolabs/security-checker",
"version": "v4.1.6", "version": "v4.1.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sensiolabs/security-checker.git", "url": "https://github.com/sensiolabs/security-checker.git",
"reference": "387b6a3b723ba35588b33d5f8d14e28ed608bd30" "reference": "d539ccba2b4dce515de04f16b7ed7ae5b9eeb434"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/387b6a3b723ba35588b33d5f8d14e28ed608bd30", "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/d539ccba2b4dce515de04f16b7ed7ae5b9eeb434",
"reference": "387b6a3b723ba35588b33d5f8d14e28ed608bd30", "reference": "d539ccba2b4dce515de04f16b7ed7ae5b9eeb434",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3480,7 +3481,7 @@
} }
], ],
"description": "A security checker for your composer.lock", "description": "A security checker for your composer.lock",
"time": "2017-10-29T18:48:08+00:00" "time": "2018-01-11T05:54:03+00:00"
}, },
{ {
"name": "spatie/browsershot", "name": "spatie/browsershot",
@ -4808,24 +4809,26 @@
}, },
{ {
"name": "bmitch/churn-php", "name": "bmitch/churn-php",
"version": "0.2.0", "version": "0.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/bmitch/churn-php.git", "url": "https://github.com/bmitch/churn-php.git",
"reference": "0026a7db3bebb83dc9b1cd1941e1cb15629c1dc8" "reference": "e6d1afab6117c107a1f7e164023cc38c748b4ca2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bmitch/churn-php/zipball/0026a7db3bebb83dc9b1cd1941e1cb15629c1dc8", "url": "https://api.github.com/repos/bmitch/churn-php/zipball/e6d1afab6117c107a1f7e164023cc38c748b4ca2",
"reference": "0026a7db3bebb83dc9b1cd1941e1cb15629c1dc8", "reference": "e6d1afab6117c107a1f7e164023cc38c748b4ca2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0", "php": "^7.0",
"php-di/php-di": "^5.4",
"symfony/console": "^3.2", "symfony/console": "^3.2",
"symfony/process": "^3.2", "symfony/process": "^3.2",
"symfony/yaml": "^3.3", "symfony/yaml": "^3.3",
"tightenco/collect": "^5.4" "tightenco/collect": "^5.4",
"webmozart/assert": "^1.2"
}, },
"require-dev": { "require-dev": {
"bmitch/codor": "^1.0", "bmitch/codor": "^1.0",
@ -4841,7 +4844,7 @@
"slevomat/coding-standard": "^2.0" "slevomat/coding-standard": "^2.0"
}, },
"bin": [ "bin": [
"churn" "bin/churn"
], ],
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -4865,28 +4868,29 @@
"bmitch", "bmitch",
"churn-php" "churn-php"
], ],
"time": "2017-09-02T00:42:45+00:00" "time": "2017-10-21T18:17:58+00:00"
}, },
{ {
"name": "codedungeon/phpunit-result-printer", "name": "codedungeon/phpunit-result-printer",
"version": "0.3.0", "version": "0.5.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/mikeerickson/phpunit-pretty-result-printer.git", "url": "https://github.com/mikeerickson/phpunit-pretty-result-printer.git",
"reference": "12e3728dae638101ff447b0f1ba02501f6e1ef45" "reference": "2dcf5f220f1019ddb2a85995828f513205416e0d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/mikeerickson/phpunit-pretty-result-printer/zipball/12e3728dae638101ff447b0f1ba02501f6e1ef45", "url": "https://api.github.com/repos/mikeerickson/phpunit-pretty-result-printer/zipball/2dcf5f220f1019ddb2a85995828f513205416e0d",
"reference": "12e3728dae638101ff447b0f1ba02501f6e1ef45", "reference": "2dcf5f220f1019ddb2a85995828f513205416e0d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"hassankhan/config": "^0.10.0", "hassankhan/config": "^0.10.0",
"symfony/yaml": "^3.3" "symfony/yaml": "^2.7|^3.0|^4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": ">=5.2" "phpunit/phpunit": ">=5.2",
"spatie/phpunit-watcher": "^1.3"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -4912,7 +4916,38 @@
"printer", "printer",
"result-printer" "result-printer"
], ],
"time": "2017-11-24T18:45:54+00:00" "time": "2018-01-09T21:42:36+00:00"
},
{
"name": "container-interop/container-interop",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/container-interop/container-interop.git",
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"shasum": ""
},
"require": {
"psr/container": "^1.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Interop\\Container\\": "src/Interop/Container/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
"homepage": "https://github.com/container-interop/container-interop",
"time": "2017-02-14T19:40:03+00:00"
}, },
{ {
"name": "doctrine/instantiator", "name": "doctrine/instantiator",
@ -5517,16 +5552,16 @@
}, },
{ {
"name": "nunomaduro/collision", "name": "nunomaduro/collision",
"version": "v1.1.18", "version": "v1.1.20",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nunomaduro/collision.git", "url": "https://github.com/nunomaduro/collision.git",
"reference": "b117d73eadcf7dd490faeaaa80ddde2bdb03bf1f" "reference": "6db3dc2d9a357a85534292d7a4f00e731d3c81aa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nunomaduro/collision/zipball/b117d73eadcf7dd490faeaaa80ddde2bdb03bf1f", "url": "https://api.github.com/repos/nunomaduro/collision/zipball/6db3dc2d9a357a85534292d7a4f00e731d3c81aa",
"reference": "b117d73eadcf7dd490faeaaa80ddde2bdb03bf1f", "reference": "6db3dc2d9a357a85534292d7a4f00e731d3c81aa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5535,6 +5570,7 @@
"symfony/console": "~2.8|~3.3|~4.0" "symfony/console": "~2.8|~3.3|~4.0"
}, },
"require-dev": { "require-dev": {
"laravel/framework": "5.5.*",
"phpunit/phpunit": "~6.5" "phpunit/phpunit": "~6.5"
}, },
"type": "library", "type": "library",
@ -5573,7 +5609,7 @@
"php", "php",
"symfony" "symfony"
], ],
"time": "2017-12-22T21:57:56+00:00" "time": "2018-01-10T22:08:37+00:00"
}, },
{ {
"name": "phar-io/manifest", "name": "phar-io/manifest",
@ -5677,6 +5713,149 @@
"description": "Library for handling version information and constraints", "description": "Library for handling version information and constraints",
"time": "2017-03-05T17:38:23+00:00" "time": "2017-03-05T17:38:23+00:00"
}, },
{
"name": "php-di/invoker",
"version": "1.3.3",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/Invoker.git",
"reference": "1f4ca63b9abc66109e53b255e465d0ddb5c2e3f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/1f4ca63b9abc66109e53b255e465d0ddb5c2e3f7",
"reference": "1f4ca63b9abc66109e53b255e465d0ddb5c2e3f7",
"shasum": ""
},
"require": {
"container-interop/container-interop": "~1.1"
},
"require-dev": {
"athletic/athletic": "~0.1.8",
"phpunit/phpunit": "~4.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Invoker\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Generic and extensible callable invoker",
"homepage": "https://github.com/PHP-DI/Invoker",
"keywords": [
"callable",
"dependency",
"dependency-injection",
"injection",
"invoke",
"invoker"
],
"time": "2016-07-14T13:09:58+00:00"
},
{
"name": "php-di/php-di",
"version": "5.4.6",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PHP-DI.git",
"reference": "3f9255659595f3e289f473778bb6c51aa72abbbd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/3f9255659595f3e289f473778bb6c51aa72abbbd",
"reference": "3f9255659595f3e289f473778bb6c51aa72abbbd",
"shasum": ""
},
"require": {
"container-interop/container-interop": "~1.2",
"php": ">=5.5.0",
"php-di/invoker": "^1.3.2",
"php-di/phpdoc-reader": "^2.0.1",
"psr/container": "~1.0"
},
"provide": {
"container-interop/container-interop-implementation": "^1.0",
"psr/container-implementation": "^1.0"
},
"replace": {
"mnapoli/php-di": "*"
},
"require-dev": {
"doctrine/annotations": "~1.2",
"doctrine/cache": "~1.4",
"mnapoli/phpunit-easymock": "~0.2.0",
"ocramius/proxy-manager": "~1.0|~2.0",
"phpbench/phpbench": "@dev",
"phpunit/phpunit": "~4.5"
},
"suggest": {
"doctrine/annotations": "Install it if you want to use annotations (version ~1.2)",
"doctrine/cache": "Install it if you want to use the cache (version ~1.4)",
"ocramius/proxy-manager": "Install it if you want to use lazy injection (version ~1.0 or ~2.0)"
},
"type": "library",
"autoload": {
"psr-4": {
"DI\\": "src/DI/"
},
"files": [
"src/DI/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "The dependency injection container for humans",
"homepage": "http://php-di.org/",
"keywords": [
"container",
"dependency injection",
"di"
],
"time": "2017-12-03T08:20:27+00:00"
},
{
"name": "php-di/phpdoc-reader",
"version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PhpDocReader.git",
"reference": "83f5ead159defccfa8e7092e5b6c1c533b326d68"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/83f5ead159defccfa8e7092e5b6c1c533b326d68",
"reference": "83f5ead159defccfa8e7092e5b6c1c533b326d68",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "~4.6"
},
"type": "library",
"autoload": {
"psr-4": {
"PhpDocReader\\": "src/PhpDocReader"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)",
"keywords": [
"phpdoc",
"reflection"
],
"time": "2015-11-29T10:34:25+00:00"
},
{ {
"name": "phpdocumentor/reflection-common", "name": "phpdocumentor/reflection-common",
"version": "1.0.1", "version": "1.0.1",

20
package-lock.json generated
View file

@ -2289,9 +2289,9 @@
} }
}, },
"doctrine": { "doctrine": {
"version": "2.0.2", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true, "dev": true,
"requires": { "requires": {
"esutils": "2.0.2" "esutils": "2.0.2"
@ -2614,9 +2614,9 @@
} }
}, },
"eslint": { "eslint": {
"version": "4.14.0", "version": "4.15.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-4.14.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.15.0.tgz",
"integrity": "sha512-Ul6CSGRjKscEyg0X/EeNs7o2XdnbTEOD1OM8cTjmx85RPcBJQrEhZLevhuJZNAE/vS2iVl5Uhgiqf3h5uLMCJQ==", "integrity": "sha512-zEO/Z1ZUxIQ+MhDVKkVTUYpIPDTEJLXGMrkID+5v1NeQHtCz6FZikWuFRgxE1Q/RV2V4zVl1u3xmpPADHhMZ6A==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "5.5.2", "ajv": "5.5.2",
@ -2625,7 +2625,7 @@
"concat-stream": "1.6.0", "concat-stream": "1.6.0",
"cross-spawn": "5.1.0", "cross-spawn": "5.1.0",
"debug": "3.1.0", "debug": "3.1.0",
"doctrine": "2.0.2", "doctrine": "2.1.0",
"eslint-scope": "3.7.1", "eslint-scope": "3.7.1",
"eslint-visitor-keys": "1.0.0", "eslint-visitor-keys": "1.0.0",
"espree": "3.5.2", "espree": "3.5.2",
@ -9168,9 +9168,9 @@
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
}, },
"uglify-js": { "uglify-js": {
"version": "3.3.4", "version": "3.3.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.4.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.5.tgz",
"integrity": "sha512-hfIwuAQI5dlXP30UtdmWoYF9k+ypVqBXIdmd6ZKBiaNHHvA8ty7ZloMe3+7S5AEKVkxHbjByl4DfRHQ7QpZquw==", "integrity": "sha512-ZebM2kgBL/UI9rKeAbsS2J0UPPv7SBy5hJNZml/YxB1zC6JK8IztcPs+cxilE4pu0li6vadVSFqiO7xFTKuSrg==",
"dev": true, "dev": true,
"requires": { "requires": {
"commander": "2.12.2", "commander": "2.12.2",

View file

@ -21,7 +21,7 @@
"babel-preset-latest": "^6.16.0", "babel-preset-latest": "^6.16.0",
"babel-runtime": "^6.26.0", "babel-runtime": "^6.26.0",
"dotenv-webpack": "^1.5.4", "dotenv-webpack": "^1.5.4",
"eslint": "^4.14.0", "eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1", "eslint-config-standard": "^10.2.1",
"eslint-plugin-import": "^2.8.0", "eslint-plugin-import": "^2.8.0",
"eslint-plugin-node": "^5.2.1", "eslint-plugin-node": "^5.2.1",
@ -35,7 +35,7 @@
"source-list-map": "^2.0.0", "source-list-map": "^2.0.0",
"stylelint": "^8.4.0", "stylelint": "^8.4.0",
"stylelint-config-standard": "^18.0.0", "stylelint-config-standard": "^18.0.0",
"uglify-js": "^3.3.4", "uglify-js": "^3.3.5",
"webpack": "^3.10.0", "webpack": "^3.10.0",
"webpack-sources": "^1.1.0" "webpack-sources": "^1.1.0"
}, },

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"sources":["../../../resources/assets/sass/_border-box.scss","../../../resources/assets/sass/_base-font.scss","../../../resources/assets/sass/_header.scss","../../../resources/assets/sass/_variables.scss","../../../resources/assets/sass/_main.scss","../../../resources/assets/sass/_hovercard.scss","../../../resources/assets/sass/_notes.scss","../../../resources/assets/sass/_pagination.scss","../../../resources/assets/sass/_contacts-page.scss","../../../resources/assets/sass/_projects.scss","../../../resources/assets/sass/_footer.scss","../../../resources/assets/sass/_bridgy-links.scss","../../../resources/assets/sass/_emoji.scss","../../../resources/assets/sass/_mapbox.scss","../../../resources/assets/sass/_colors.scss","../../../resources/assets/sass/_styles.scss","../../../resources/assets/sass/_tags.scss"],"names":[],"mappings":"AAKA,KACI,8BAAsB,AAAtB,qBAAsB,CACzB,qBAKG,2BAAmB,AAAnB,kBAAmB,CACtB,KCVG,eACA,gCAAiC,CACpC,gBAGG,oBAAqB,CACxB,WCNG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,kBACA,AADA,cACA,yBACA,AADA,sBACA,AADA,mBACA,WACA,eCJgB,CDKnB,cAGG,eACA,cAAe,CAClB,eAGG,cAAe,CAClB,KEdG,oBACA,AADA,oBACA,AADA,aACA,4BACA,AADA,6BACA,AADA,0BACA,AADA,sBACA,0BACA,AADA,uBACA,AADA,oBACA,gBACA,cACA,gBAAiB,CACpB,SAGG,cAAe,CAClB,WAIG,gBAAiB,CACpB,aCfG,iBAAkB,CACrB,qBAGG,iBAAkB,CACrB,2BAGG,WAAY,CACf,WAGG,kBACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBACA,AADA,sBACA,AADA,8BACA,sBACA,AADA,mBACA,AADA,qBACA,iBACA,YACA,WACA,UACA,WACA,uBACA,kBACA,2CACA,AADA,mCACA,YAAa,CAChB,8BAGG,oBAAa,AAAb,oBAAa,AAAb,YAAa,CAChB,0BAGG,WACA,WAAY,CACf,sBAGG,YAAa,CCnCjB,MACI,oBACA,AADA,oBACA,AADA,aACA,4BACA,AADA,6BACA,AADA,0BACA,AADA,sBACA,cAAe,CAClB,UAGG,eACA,eAAgB,CACnB,eAGG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBAA8B,AAA9B,sBAA8B,AAA9B,6BAA8B,CACjC,MAGG,WACA,UAAW,CACd,YCtBG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,8BACA,AADA,2BACA,AADA,6BACA,eACA,oBAAqB,CACxB,cCLG,eACA,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,8BACA,AADA,+BACA,AADA,2BACA,yBACA,AADA,sBACA,AADA,8BACA,eAAgB,CACnB,kBAGG,WACA,WAAY,CACf,UCVG,cAAe,CAClB,gBCDG,gBACA,cACA,gBAAiB,CACpB,OAGG,gBACA,cACA,oBACA,AADA,oBACA,AADA,aACA,4BACA,AADA,6BACA,AADA,0BACA,AADA,sBACA,yBAAmB,AAAnB,sBAAmB,AAAnB,kBAAmB,CACtB,qDCVG,YAAa,CAChB,2BCAG,iBAAkB,CACrB,gFAIG,kBACA,cACA,UACA,aACA,OACA,cACA,qBACA,yBACA,oBACA,4CACA,AADA,oCACA,yBACA,kCACA,WACA,cACA,0CAAkC,AAAlC,iCAAkC,CACrC,2BAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,AApBC,mBAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,aACI,kCACI,kCAAmC,CACtC,CC9CL,KACI,YAAa,CAChB,oBAGG,kBAAmB,CACtB,QAGG,y4HACA,wBACA,WACA,WAAY,CACf,UAGG,kBACA,MACA,OACA,iBACA,cAAe,CAClB,gBAGG,gBACA,gBAAiB,CACpB,KCzBG,gCACA,kBAAmB,CACtB,WAGG,8BACA,kBAAmB,CACtB,YAIG,iBAAkB,CACrB,KCZG,oBAAqB,CACxB,aAGG,oBAAqB,CACxB,MCHG,SACA,gBACA,SAAU,CACb,SAGG,WACA,oBAAqB,CACxB,kBAIG,wBACA,0BACA,mBACA,qBACA,cACA,mBACA,sBACA,kBACA,qBACA,qBACA,8BAAsB,AAAtB,qBAAsB,CACzB,YAGG,0BACA,uCACA,oCACA,oCACA,WACA,kBACA,QACA,KAAM,CACT,WAGG,4BACA,kBAAmB,CACtB,kBAGG,4BAA6B,CAChC","file":"app.css"} {"version":3,"sources":["../../../resources/assets/sass/_border-box.scss","../../../resources/assets/sass/_base-font.scss","../../../resources/assets/sass/_header.scss","../../../resources/assets/sass/_variables.scss","../../../resources/assets/sass/_main.scss","../../../resources/assets/sass/_hovercard.scss","../../../resources/assets/sass/_notes.scss","../../../resources/assets/sass/_pagination.scss","../../../resources/assets/sass/_contacts-page.scss","../../../resources/assets/sass/_projects.scss","../../../resources/assets/sass/_footer.scss","../../../resources/assets/sass/_admin-form.scss","../../../resources/assets/sass/_form.scss","../../../resources/assets/sass/_bridgy-links.scss","../../../resources/assets/sass/_emoji.scss","../../../resources/assets/sass/_mapbox.scss","../../../resources/assets/sass/_colors.scss","../../../resources/assets/sass/_styles.scss","../../../resources/assets/sass/_tags.scss"],"names":[],"mappings":"AAKA,KACI,8BAAsB,AAAtB,qBAAsB,CACzB,qBAKG,2BAAmB,AAAnB,kBAAmB,CACtB,KCVG,eACA,gCAAiC,CACpC,gBAGG,oBAAqB,CACxB,WCNG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,kBACA,AADA,cACA,yBACA,AADA,sBACA,AADA,mBACA,WACA,eCJgB,CDKnB,cAGG,eACA,cAAe,CAClB,eAGG,cAAe,CAClB,KEdG,oBACA,AADA,oBACA,AADA,aACA,4BACA,AADA,6BACA,AADA,0BACA,AADA,sBACA,0BACA,AADA,uBACA,AADA,oBACA,gBACA,cACA,iBACA,cAAe,CAClB,WAIG,gBAAiB,CACpB,aCZG,iBAAkB,CACrB,qBAGG,iBAAkB,CACrB,2BAGG,WAAY,CACf,WAGG,kBACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBACA,AADA,sBACA,AADA,8BACA,sBACA,AADA,mBACA,AADA,qBACA,iBACA,YACA,WACA,UACA,WACA,uBACA,kBACA,2CACA,AADA,mCACA,YAAa,CAChB,8BAGG,oBAAa,AAAb,oBAAa,AAAb,YAAa,CAChB,0BAGG,WACA,WAAY,CACf,sBAGG,YAAa,CCnCjB,MACI,oBACA,AADA,oBACA,AADA,aACA,4BACA,AADA,6BACA,AADA,0BACA,AADA,sBACA,cAAe,CAClB,UAGG,eACA,eAAgB,CACnB,eAGG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,yBAA8B,AAA9B,sBAA8B,AAA9B,6BAA8B,CACjC,MAGG,WACA,UAAW,CACd,YCtBG,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,6BACA,AADA,uBACA,AADA,mBACA,8BACA,AADA,2BACA,AADA,6BACA,eACA,oBAAqB,CACxB,cCLG,eACA,oBACA,AADA,oBACA,AADA,aACA,8BACA,AADA,8BACA,AADA,+BACA,AADA,2BACA,yBACA,AADA,sBACA,AADA,8BACA,eAAgB,CACnB,kBAGG,WACA,WAAY,CACf,UCVG,cAAe,CAClB,gBCDG,gBACA,cACA,gBAAiB,CACpB,OAGG,gBACA,cACA,oBACA,AADA,oBACA,AADA,aACA,4BACA,AADA,6BACA,AADA,0BACA,AADA,sBACA,yBAAmB,AAAnB,sBAAmB,AAAnB,kBAAmB,CACtB,YCXG,gBACA,kBAAmB,CACtB,MCFG,oBACA,AADA,oBACA,AADA,aACA,4BAAsB,AAAtB,6BAAsB,AAAtB,0BAAsB,AAAtB,qBAAsB,CACzB,UAGG,oBACA,AADA,oBACA,AADA,aACA,4BAAsB,AAAtB,6BAAsB,AAAtB,0BAAsB,AAAtB,qBAAsB,CACzB,aAGG,8BAAmB,AAAnB,6BAAmB,AAAnB,uBAAmB,AAAnB,kBAAmB,CACtB,qDCVG,YAAa,CAChB,2BCAG,iBAAkB,CACrB,gFAIG,kBACA,cACA,UACA,aACA,OACA,cACA,qBACA,yBACA,oBACA,4CACA,AADA,oCACA,yBACA,kCACA,WACA,cACA,0CAAkC,AAAlC,iCAAkC,CACrC,2BAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,AApBC,mBAGG,KACI,aACA,6BACA,wCACA,0BACA,8BAAkC,AAAlC,qBAAkC,CAGtC,GACI,aACA,kCACA,yBACA,WACA,4CAAgD,AAAhD,mCAAgD,CAAA,CAIxD,aACI,kCACI,kCAAmC,CACtC,CC9CL,KACI,YAAa,CAChB,oBAGG,kBAAmB,CACtB,QAGG,y4HACA,wBACA,WACA,WAAY,CACf,UAGG,kBACA,MACA,OACA,iBACA,cAAe,CAClB,gBAGG,gBACA,gBAAiB,CACpB,KCzBG,gCACA,kBAAmB,CACtB,WAGG,8BACA,kBAAmB,CACtB,YAIG,iBAAkB,CACrB,KCZG,oBAAqB,CACxB,aAGG,oBAAqB,CACxB,MCHG,SACA,gBACA,SAAU,CACb,SAGG,WACA,oBAAqB,CACxB,kBAIG,wBACA,0BACA,mBACA,qBACA,cACA,mBACA,sBACA,kBACA,qBACA,qBACA,8BAAsB,AAAtB,qBAAsB,CACzB,YAGG,0BACA,uCACA,oCACA,oCACA,WACA,kBACA,QACA,KAAM,CACT,WAGG,4BACA,kBAAmB,CACtB,kBAGG,4BAA6B,CAChC","file":"app.css"}

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,6 @@
//admin-form.scss
.admin-form {
margin-top: 2rem;
margin-bottom: 2rem;
}

15
resources/assets/sass/_form.scss vendored Normal file
View file

@ -0,0 +1,15 @@
//form.scss
.form {
display: flex;
flex-direction: column;
}
.form > div {
display: flex;
flex-direction: column;
}
div.form-row {
flex-direction: row;
}

View file

@ -7,9 +7,6 @@ main {
max-width: $body-width; max-width: $body-width;
margin: 0 auto; margin: 0 auto;
padding: 0 0.5rem; padding: 0 0.5rem;
}
.h-entry {
font-size: 2rem; font-size: 2rem;
} }

View file

@ -16,6 +16,8 @@
@import "contacts-page"; @import "contacts-page";
@import "projects"; @import "projects";
@import "footer"; @import "footer";
@import "admin-form";
@import "form";
//hide the custom bridgy posse content //hide the custom bridgy posse content
@import "bridgy-links"; @import "bridgy-links";

View file

@ -4,22 +4,27 @@
@section('content') @section('content')
@if(isset($message)) <p class="error">{{ $message }}</p>@endif @if(isset($message)) <p class="error">{{ $message }}</p>@endif
<form action="/admin/blog/" method="post" accept-charset="utf-8" enctype="multipart/form-data" id="newarticle"> <form action="/admin/blog/" method="post" accept-charset="utf-8" enctype="multipart/form-data" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
<label for="title">Title (URL):</label> <div>
<br> <label for="title">Title (URL):</label>
<input type="text" name="title" id="title" value="{{ old('title') }}" placeholder="Title here"> <input type="text" name="title" id="title" value="{{ old('title') }}" placeholder="Title here">
<br> <input type="text" name="url" id="url" value="{{ old('url') }}" placeholder="Article URL">
<input type="text" name="url" id="url" value="{{ old('url') }}" placeholder="Article URL"> </div>
<br> <div>
<label for="main">Main:</label> <label for="main">Main:</label>
<br> <textarea name="main" id="main" placeholder="Article here">{{ old('main') }}</textarea>
<textarea name="main" id="main" placeholder="Article here">{{ old('main') }}</textarea> </div>
<br> <div class="form-row">
<label for="published">Published:</label><input type="checkbox" name="published" id="published" value="1"> <label for="published">Published:</label>
<br> <input type="checkbox" name="published" id="published" value="1">
<p>Or you can upload an <code>.md</code> file:</p><input type="file" accept=".md" name="article"> </div>
<br> <p>Or you can upload an <code>.md</code> file:</p>
<button type="submit" name="save">Save</button> <div>
<input type="file" accept=".md" name="article">
</div>
<div>
<button type="submit" name="save">Save</button>
</div>
</form> </form>
@stop @stop

View file

@ -3,29 +3,32 @@
@section('title')Edit Article « Admin CP « @stop @section('title')Edit Article « Admin CP « @stop
@section('content') @section('content')
<form action="/admin/blog/{{ $id }}" method="post" accept-charset="utf-8"> <form action="/admin/blog/{{ $id }}" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('PUT') }} {{ method_field('PUT') }}
<label for="title">Title (URL):</label> <div>
<br> <label for="title">Title (URL):</label>
<input type="text" name="title" id="title" value="{!! $post['0']['title'] !!}"> <input type="text" name="title" id="title" value="{!! $post['0']['title'] !!}">
<br> <input type="url" name="url" id="url" value="{!! $post['0']['url'] !!}">
<input type="url" name="url" id="url" value="{!! $post['0']['url'] !!}"> </div>
<br> <div>
<label for="main">Main:</label> <label for="main">Main:</label>
<br> <textarea name="main" id="main">{{ $post['0']['main'] }}</textarea>
<textarea name="main" id="main">{{ $post['0']['main'] }}</textarea> </div>
<br> <div class="form-row">
<label for="published">Published:</label><input type="checkbox" name="published" value="1"@if($post['0']['published'] == '1') checked="checked"@endif> <label for="published">Published:</label>
<br> <input type="checkbox" name="published" value="1"@if($post['0']['published'] == '1') checked="checked"@endif>
<input type="submit" name="save" value="Save"> </div>
<div>
<button type="submit" name="save">Save</button>
</div>
</form> </form>
<hr> <hr>
<form action="/admin/blog/{{ $id }}" method="post"> <form action="/admin/blog/{{ $id }}" method="post" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('DELETE') }} {{ method_field('DELETE') }}
<button type="submit" name="submit"> <div>
Delete <button type="submit" name="delete">Delete</button>
</button> </div>
</form> </form>
@stop @stop

View file

@ -4,10 +4,18 @@
@section('content') @section('content')
<h1>New Client</h1> <h1>New Client</h1>
<form action="/admin/clients/" method="post" accept-charset="utf-8"> <form action="/admin/clients/" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
<input type="text" name="client_url" id="client_url" placeholder="client_url"><br> <div>
<input type="text" name="client_name" id="client_name" placeholder="client_name"><br> <label for="client_url">Client URL:</label>
<input type="submit" name="submit" value="Submit"> <input type="text" name="client_url" id="client_url" placeholder="client_url">
</div>
<div>
<label for="client_name">Client Name:</label>
<input type="text" name="client_name" id="client_name" placeholder="client_name">
</div>
<div>
<button type="submit" name="submit">Submit</button>
</div>
</form> </form>
@stop @stop

View file

@ -4,17 +4,25 @@
@section('content') @section('content')
<h1>Edit Client</h1> <h1>Edit Client</h1>
<form action="/admin/clients/{{ $id }}" method="post" accept-charset="utf-8"> <form action="/admin/clients/{{ $id }}" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('PUT') }} {{ method_field('PUT') }}
<input type="text" name="client_url" id="client_url" value="{{ $client_url }}"><br> <div>
<input type="text" name="client_name" id="client_name" value="{{ $client_name }}"><br> <label for="client_url">Client URL:</label>
<input type="submit" name="submit" value="Edit"> <input type="text" name="client_url" id="client_url" value="{{ $client_url }}">
</div>
<div>
<label for="client_name">Client Name:</label>
<input type="text" name="client_name" id="client_name" value="{{ $client_name }}">
</div>
<div>
<button type="submit" name="edit">Edit</button>
</div>
</form> </form>
<hr> <hr>
<form action="/admin/clients/{{ $id }}" method="post"> <form action="/admin/clients/{{ $id }}" method="post">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('DELETE') }} {{ method_field('DELETE') }}
<button type="submit">Delete Client</button> <button type="submit" name="delete">Delete Client</button>
</form> </form>
@stop @stop

View file

@ -4,12 +4,26 @@
@section('content') @section('content')
<h1>New Contact</h1> <h1>New Contact</h1>
<form action="/admin/contacts/" method="post" accept-charset="utf-8"> <form action="/admin/contacts/" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
<label for="name">Real Name:</label> <input type="text" name="name" id="name" placeholder="Real Name"><br> <div>
<label for="nick">Nick:</label> <input type="text" name="nick" id="nick" placeholder="local_nick"><br> <label for="name">Real Name:</label>
<label for="homepage">Homepage:</label> <input type="text" name="homepage" id="homepage" placeholder="https://homepage.com"><br> <input type="text" name="name" id="name" placeholder="Real Name">
<label for="twitter">Twitter Nick:</label> <input type="text" name="twitter" id="twitter" placeholder="Twitter handle"><br> </div>
<input type="submit" name="submit" value="Submit"> <div>
<label for="nick">Nick:</label>
<input type="text" name="nick" id="nick" placeholder="local_nick">
</div>
<div>
<label for="homepage">Homepage:</label>
<input type="text" name="homepage" id="homepage" placeholder="https://homepage.com">
</div>
<div>
<label for="twitter">Twitter Nick:</label>
<input type="text" name="twitter" id="twitter" placeholder="Twitter handle">
</div>
<div>
<button type="submit" name="submit">Submit</button>
</div>
</form> </form>
@stop @stop

View file

@ -4,37 +4,36 @@
@section('content') @section('content')
<h1>Edit Contact</h1> <h1>Edit Contact</h1>
<form action="/admin/contacts/{{ $contact->id }}" method="post" enctype="multipart/form-data" accept-charset="utf-8"> <form action="/admin/contacts/{{ $contact->id }}" method="post" enctype="multipart/form-data" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('PUT') }} {{ method_field('PUT') }}
<fieldset class="note-ui"> <div>
<legend>Conctact</legend> <label for="name">Real Name:</label>
<div> <input type="text" name="name" id="name" placeholder="Real Name" value="{{ $contact->name }}">
<label for="name">Real Name:</label> </div>
<input type="text" name="name" id="name" placeholder="Real Name" value="{{ $contact->name }}"> <div>
</div> <label for="nick">Nick:</label>
<div> <input type="text" name="nick" id="nick" placeholder="local_nick" value="{{ $contact->nick }}">
<label for="nick">Nick:</label> </div>
<input type="text" name="nick" id="nick" placeholder="local_nick" value="{{ $contact->nick }}"> <div>
</div> <label for="homepage">Website:</label>
<div> <input type="text" name="homepage" id="homepage" placeholder="https://homepage.com" value="{{ $contact->homepage }}">
<label for="homepage">Website:</label> </div>
<input type="text" name="homepage" id="homepage" placeholder="https://homepage.com" value="{{ $contact->homepage }}"> <div>
</div> <label for="twitter">Twitter Nick:</label>
<div> <input type="text" name="twitter" id="twitter" placeholder="Twitter handle" value="{{ $contact->twitter }}">
<label for="twitter">Twitter Nick:</label> </div>
<input type="text" name="twitter" id="twitter" placeholder="Twitter handle" value="{{ $contact->twitter }}"> <div>
</div> <label for="facebook">Facebook Profile ID:</label>
<div> <input type="text" name="facebook" id="facebook" placeholder="Facebook ID" value="{{ $contact->facebook }}">
<label for="facebook">Facebook Profile ID:</label> </div>
<input type="text" name="facebook" id="facebook" placeholder="Facebook ID" value="{{ $contact->facebook }}"> <div>
</div> <label for="avatar">Avatar:</label>
<div> <input type="file" accept="image/*" value="Upload" name="avatar" id="avatar">
<label for="avatar">Avatar:</label> </div>
<input type="file" accept="image/*" value="Upload" name="avatar" id="avatar"> <div>
</div> <button type="submit" name="submit">Submit</button>
<input type="submit" name="submit" value="Submit"> </div>
</fieldset>
</form> </form>
<p>Instead of uploading an image, you can <a href="/admin/contacts/edit/{{ $contact->id }}/getavatar">grab from their homepage</a>?</p> <p>Instead of uploading an image, you can <a href="/admin/contacts/edit/{{ $contact->id }}/getavatar">grab from their homepage</a>?</p>
@stop @stop

View file

@ -12,35 +12,28 @@
</ul> </ul>
</div> </div>
@endif @endif
<form action="/admin/notes" method="post" accept-charset="utf-8"> <form action="/admin/notes" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
<fieldset> <div>
<legend>New Note</legend> <label for="in-reply-to" accesskey="r">Reply-to: </label>
<div> <input type="text"
<label for="in-reply-to" accesskey="r">Reply-to: </label> name="in-reply-to"
<input type="text" id="in-reply-to"
name="in-reply-to" placeholder="in-reply-to-1 in-reply-to-2 …"
id="in-reply-to" >
placeholder="in-reply-to-1 in-reply-to-2 …" </div>
> <div>
</div> <label for="content" accesskey="n">Note: </label>
<div> <textarea name="content"
<label for="content" accesskey="n">Note: </label> id="content"
<textarea name="content" placeholder="Note"
id="content" autofocus="autofocus"
placeholder="Note" >{{ old('content') }}</textarea>
autofocus="autofocus"> </div>
{{ old('content') }} <div>
</textarea> <button type="submit"
</div> name="submit"
<div> >Submit</button>
<div> </div>
<button type="submit"
name="submit"
id="submit"
value="Submit"
>Submit</button>
</div>
</fieldset>
</form> </form>
@stop @stop

View file

@ -3,23 +3,31 @@
@section('title')Edit Note « Admin CP « @stop @section('title')Edit Note « Admin CP « @stop
@section('content') @section('content')
<form action="/admin/notes/{{ $note->id }}" method="post" accept-charset="utf-8"> <form action="/admin/notes/{{ $note->id }}" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('PUT') }} {{ method_field('PUT') }}
<fieldset> <div>
<legend>Edit Note</legend> <label for="in-reply-to" accesskey="r">Reply-to: </label>
<label for="in-reply-to" accesskey="r">Reply-to: </label><input type="text" name="in-reply-to" id="in-reply-to" placeholder="in-reply-to-1 in-reply-to-2 …" tabindex="1" value="{{ $note->in_reply_to }}"><br> <input type="text" name="in-reply-to" id="in-reply-to" placeholder="in-reply-to-1 in-reply-to-2 …" tabindex="1" value="{{ $note->in_reply_to }}">
<label for="content" accesskey="n">Note: </label><textarea name="content" id="content" placeholder="Note" tabindex="2">{{ $note->originalNote }}</textarea><br> </div>
<label for="webmentions" accesskey="w">Send webmentions: </label><input type="checkbox" name="webmentions" id="webmentions" checked="checked" tabindex="3"><br> <div>
<label for="kludge"></label><input type="submit" value="Submit" id="kludge" tabindex="6"> <label for="content" accesskey="n">Note: </label>
</fieldset> <textarea name="content" id="content" placeholder="Note" tabindex="2">{{ $note->originalNote }}</textarea>
</div>
<div class="form-row">
<label for="webmentions" accesskey="w">Send webmentions: </label>
<input type="checkbox" name="webmentions" id="webmentions" checked="checked" tabindex="3">
</div>
<div>
<button type="submit" name="submit">Submit</button>
</div>
</form> </form>
<form action="/admin/notes/{{ $note->id }}" method="post" accept-charset="utf-8"> <hr>
<form action="/admin/notes/{{ $note->id }}" method="post" accept-charset="utf-8" class="form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('DELETE') }} {{ method_field('DELETE') }}
<fieldset> <div>
<legend>Delete Note</legend> <button type="submit" name="delete">Delete</button>
<label for="kludge"></label><input type="submit" value="Delete" id="kludge"> </div>
</fieldset>
</form> </form>
@stop @stop

View file

@ -4,15 +4,31 @@
@section('content') @section('content')
<h1>New Place</h1> <h1>New Place</h1>
<form action="/admin/places/" method="post" accept-charset="utf-8"> <form action="/admin/places/" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
<label for="name">Name:</label> <input type="text" name="name" id="name" placeholder="Place Name"><br> <div>
<label for="description">Description:</label> <input type="text" name="description" id="description" placeholder="Description"><br> <label for="name">Name:</label>
<label for="latitude">Latitude:</label> <input type="text" name="latitude" id="latitude" placeholder="Latitude"><br> <input type="text" name="name" id="name" placeholder="Place Name">
<label for="longitude">Longitude:</label> <input type="text" name="longitude" id="longitude" placeholder="Longitude"><br> </div>
<input type="submit" name="submit" value="Submit"> <div>
<label for="description">Description:</label>
<input type="text" name="description" id="description" placeholder="Description">
</div>
<div>
<label for="latitude">Latitude:</label>
<input type="text" name="latitude" id="latitude" placeholder="Latitude">
</div>
<div>
<label for="longitude">Longitude:</label>
<input type="text" name="longitude" id="longitude" placeholder="Longitude">
</div>
<div>
<input type="submit" name="submit" value="Submit">
</div>
<h2>Location</h2> <h2>Location</h2>
<button type="button" name="locate" id="locate">Locate</button> <div>
<button type="button" name="locate" id="locate">Locate</button>
</div>
</form> </form>
@stop @stop

View file

@ -4,118 +4,137 @@
@section('content') @section('content')
<h1>Edit Place</h1> <h1>Edit Place</h1>
<form action="/admin/places/{{ $place->id }}" method="post" accept-charset="utf-8"> <form action="/admin/places/{{ $place->id }}" method="post" accept-charset="utf-8" class="admin-form form">
{{ csrf_field() }} {{ csrf_field() }}
{{ method_field('PUT') }} {{ method_field('PUT') }}
<p>Name</p> <div>
<input type="text" name="name" id="name" value="{{ $place->name }}"><br> <label for="name">Name:</label>
<p>Description</p> <input type="text" name="name" id="name" value="{{ $place->name }}">
<textarea name="description" id="description">{{ $place->description }}</textarea><br> </div>
<p>Location</p> <div>
<div class="map" data-latitude="{{ $place->latitude }}" data-longitude="{{ $place->longitude }}" data-id="{{ $place->id }}"></div> <label for="description">Description</label>
<script> <textarea name="description" id="description">{{ $place->description }}</textarea>
var geojson{{ $place->id }} = { </div>
"type": "FeatureCollection", <div>
"features": [{ <p>Location</p>
"type": "Feature", <div class="map" data-latitude="{{ $place->latitude }}" data-longitude="{{ $place->longitude }}" data-id="{{ $place->id }}"></div>
"geometry": { <script>
"type": "Point", var geojson{{ $place->id }} = {
"coordinates": [{{ $place->longitude }}, {{ $place->latitude }}] "type": "FeatureCollection",
}, "features": [{
"properties": { "type": "Feature",
"title": "{{ $place->name }}", "geometry": {
"icon": "{{ $place->icon ?? 'marker' }}" "type": "Point",
} "coordinates": [{{ $place->longitude }}, {{ $place->latitude }}]
}] },
} "properties": {
</script> "title": "{{ $place->name }}",
<input type="text" name="latitude" id="latitude" value="{{ $place->latitude }}"><br> "icon": "{{ $place->icon ?? 'marker' }}"
<input type="text" name="longitude" id="longitude" value="{{ $place->longitude }}"><br> }
<p>Map Icon</p> }]
<select name="icon" id="icon"> }
<option value="airfield"@if($place->icon == 'airfield')selected @endif>airfield</option> </script>
<option value="airport"@if($place->icon == 'airport')selected @endif>airport</option> </div>
<option value="alcohol-shop"@if($place->icon == 'alcohol-shop')selected @endif>alcohol-shop</option> <div>
<option value="amusement-park"@if($place->icon == 'amusement-park')selected @endif>amusement-park</option> <label for="latitude">Latitude:</label>
<option value="aquarium"@if($place->icon == 'aquarium')selected @endif>aquarium</option> <input type="text" name="latitude" id="latitude" value="{{ $place->latitude }}">
<option value="art-gallery"@if($place->icon == 'art-gallery')selected @endif>art-gallery</option> </div>
<option value="attraction"@if($place->icon == 'attraction')selected @endif>attraction</option> <div>
<option value="bakery"@if($place->icon == 'bakery')selected @endif>bakery</option> <label for="longitude">Longitude:</label>
<option value="bank"@if($place->icon == 'bank')selected @endif>bank</option> <input type="text" name="longitude" id="longitude" value="{{ $place->longitude }}">
<option value="bar"@if($place->icon == 'bar')selected @endif>bar</option> </div>
<option value="beer"@if($place->icon == 'beer')selected @endif>beer</option> <div class="form-row">
<option value="bicycle"@if($place->icon == 'bicycle')selected @endif>bicycle</option> <label for="icon">Map Icon</label>
<option value="bicycle-share"@if($place->icon == 'bicycle-share')selected @endif>bicycle-share</option> <select name="icon" id="icon">
<option value="bus"@if($place->icon == 'bus')selected @endif>bus</option> <option value="airfield"@if($place->icon == 'airfield')selected @endif>airfield</option>
<option value="cafe"@if($place->icon == 'cafe')selected @endif>cafe</option> <option value="airport"@if($place->icon == 'airport')selected @endif>airport</option>
<option value="campsite"@if($place->icon == 'campsite')selected @endif>campsite</option> <option value="alcohol-shop"@if($place->icon == 'alcohol-shop')selected @endif>alcohol-shop</option>
<option value="car"@if($place->icon == 'car')selected @endif>car</option> <option value="amusement-park"@if($place->icon == 'amusement-park')selected @endif>amusement-park</option>
<option value="castle"@if($place->icon == 'castle')selected @endif>castle</option> <option value="aquarium"@if($place->icon == 'aquarium')selected @endif>aquarium</option>
<option value="cemetery"@if($place->icon == 'cemetery')selected @endif>cemetery</option> <option value="art-gallery"@if($place->icon == 'art-gallery')selected @endif>art-gallery</option>
<option value="cinema"@if($place->icon == 'cinema')selected @endif>cinema</option> <option value="attraction"@if($place->icon == 'attraction')selected @endif>attraction</option>
<option value="circle"@if($place->icon == 'circle')selected @endif>circle</option> <option value="bakery"@if($place->icon == 'bakery')selected @endif>bakery</option>
<option value="circle-stroked"@if($place->icon == 'circle-stroked')selected @endif>circle-stroked</option> <option value="bank"@if($place->icon == 'bank')selected @endif>bank</option>
<option value="clothing-store"@if($place->icon == 'clothing-store')selected @endif>clothing-store</option> <option value="bar"@if($place->icon == 'bar')selected @endif>bar</option>
<option value="college"@if($place->icon == 'college')selected @endif>college</option> <option value="beer"@if($place->icon == 'beer')selected @endif>beer</option>
<option value="dentist"@if($place->icon == 'dentist')selected @endif>dentist</option> <option value="bicycle"@if($place->icon == 'bicycle')selected @endif>bicycle</option>
<option value="doctor"@if($place->icon == 'doctor')selected @endif>doctor</option> <option value="bicycle-share"@if($place->icon == 'bicycle-share')selected @endif>bicycle-share</option>
<option value="dog-park"@if($place->icon == 'dog-park')selected @endif>dog-park</option> <option value="bus"@if($place->icon == 'bus')selected @endif>bus</option>
<option value="drinking-water"@if($place->icon == 'drinking-water')selected @endif>drinking-water</option> <option value="cafe"@if($place->icon == 'cafe')selected @endif>cafe</option>
<option value="embassy"@if($place->icon == 'embassy')selected @endif>embassy</option> <option value="campsite"@if($place->icon == 'campsite')selected @endif>campsite</option>
<option value="entrance"@if($place->icon == 'entrance')selected @endif>entrance</option> <option value="car"@if($place->icon == 'car')selected @endif>car</option>
<option value="fast-food"@if($place->icon == 'fast-food')selected @endif>fast-food</option> <option value="castle"@if($place->icon == 'castle')selected @endif>castle</option>
<option value="ferry"@if($place->icon == 'ferry')selected @endif>ferry</option> <option value="cemetery"@if($place->icon == 'cemetery')selected @endif>cemetery</option>
<option value="fire-station"@if($place->icon == 'fire-station')selected @endif>fire-station</option> <option value="cinema"@if($place->icon == 'cinema')selected @endif>cinema</option>
<option value="fuel"@if($place->icon == 'fuel')selected @endif>fuel</option> <option value="circle"@if($place->icon == 'circle')selected @endif>circle</option>
<option value="garden"@if($place->icon == 'garden')selected @endif>garden</option> <option value="circle-stroked"@if($place->icon == 'circle-stroked')selected @endif>circle-stroked</option>
<option value="golf"@if($place->icon == 'golf')selected @endif>golf</option> <option value="clothing-store"@if($place->icon == 'clothing-store')selected @endif>clothing-store</option>
<option value="grocery"@if($place->icon == 'grocery')selected @endif>grocery</option> <option value="college"@if($place->icon == 'college')selected @endif>college</option>
<option value="harbor"@if($place->icon == 'harbor')selected @endif>harbor</option> <option value="dentist"@if($place->icon == 'dentist')selected @endif>dentist</option>
<option value="heliport"@if($place->icon == 'heliport')selected @endif>heliport</option> <option value="doctor"@if($place->icon == 'doctor')selected @endif>doctor</option>
<option value="hospital"@if($place->icon == 'hospital')selected @endif>hospital</option> <option value="dog-park"@if($place->icon == 'dog-park')selected @endif>dog-park</option>
<option value="ice-cream"@if($place->icon == 'ice-cream')selected @endif>ice-cream</option> <option value="drinking-water"@if($place->icon == 'drinking-water')selected @endif>drinking-water</option>
<option value="information"@if($place->icon == 'information')selected @endif>information</option> <option value="embassy"@if($place->icon == 'embassy')selected @endif>embassy</option>
<option value="laundry"@if($place->icon == 'laundry')selected @endif>laundry</option> <option value="entrance"@if($place->icon == 'entrance')selected @endif>entrance</option>
<option value="library"@if($place->icon == 'library')selected @endif>library</option> <option value="fast-food"@if($place->icon == 'fast-food')selected @endif>fast-food</option>
<option value="lodging"@if($place->icon == 'lodging')selected @endif>lodging</option> <option value="ferry"@if($place->icon == 'ferry')selected @endif>ferry</option>
<option value="marker"@if($place->icon == 'marker')selected @endif>marker</option> <option value="fire-station"@if($place->icon == 'fire-station')selected @endif>fire-station</option>
<option value="monument"@if($place->icon == 'monument')selected @endif>monument</option> <option value="fuel"@if($place->icon == 'fuel')selected @endif>fuel</option>
<option value="mountain"@if($place->icon == 'mountain')selected @endif>mountain</option> <option value="garden"@if($place->icon == 'garden')selected @endif>garden</option>
<option value="museum"@if($place->icon == 'museum')selected @endif>museum</option> <option value="golf"@if($place->icon == 'golf')selected @endif>golf</option>
<option value="music"@if($place->icon == 'music')selected @endif>music</option> <option value="grocery"@if($place->icon == 'grocery')selected @endif>grocery</option>
<option value="park"@if($place->icon == 'park')selected @endif>park</option> <option value="harbor"@if($place->icon == 'harbor')selected @endif>harbor</option>
<option value="pharmacy"@if($place->icon == 'pharmacy')selected @endif>pharmacy</option> <option value="heliport"@if($place->icon == 'heliport')selected @endif>heliport</option>
<option value="picnic-site"@if($place->icon == 'picnic-site')selected @endif>picnic-site</option> <option value="hospital"@if($place->icon == 'hospital')selected @endif>hospital</option>
<option value="place-of-worship"@if($place->icon == 'place-of-worship')selected @endif>place-of-worship</option> <option value="ice-cream"@if($place->icon == 'ice-cream')selected @endif>ice-cream</option>
<option value="playground"@if($place->icon == 'playground')selected @endif>playground</option> <option value="information"@if($place->icon == 'information')selected @endif>information</option>
<option value="police"@if($place->icon == 'police')selected @endif>police</option> <option value="laundry"@if($place->icon == 'laundry')selected @endif>laundry</option>
<option value="post"@if($place->icon == 'post')selected @endif>post</option> <option value="library"@if($place->icon == 'library')selected @endif>library</option>
<option value="prison"@if($place->icon == 'prison')selected @endif>prison</option> <option value="lodging"@if($place->icon == 'lodging')selected @endif>lodging</option>
<option value="rail"@if($place->icon == 'rail')selected @endif>rail</option> <option value="marker"@if($place->icon == 'marker')selected @endif>marker</option>
<option value="rail-light"@if($place->icon == 'rail-light')selected @endif>rail-light</option> <option value="monument"@if($place->icon == 'monument')selected @endif>monument</option>
<option value="rail-metro"@if($place->icon == 'rail-metro')selected @endif>rail-metro</option> <option value="mountain"@if($place->icon == 'mountain')selected @endif>mountain</option>
<option value="religious-christian"@if($place->icon == 'religious-christian')selected @endif>religious-christian</option> <option value="museum"@if($place->icon == 'museum')selected @endif>museum</option>
<option value="religious-jewish"@if($place->icon == 'religious-jewish')selected @endif>religious-jewish</option> <option value="music"@if($place->icon == 'music')selected @endif>music</option>
<option value="religious-muslim"@if($place->icon == 'religious-muslim')selected @endif>religious-muslim</option> <option value="park"@if($place->icon == 'park')selected @endif>park</option>
<option value="restaurant"@if($place->icon == 'restaurant')selected @endif>restaurant</option> <option value="pharmacy"@if($place->icon == 'pharmacy')selected @endif>pharmacy</option>
<option value="rocket"@if($place->icon == 'rocket')selected @endif>rocket</option> <option value="picnic-site"@if($place->icon == 'picnic-site')selected @endif>picnic-site</option>
<option value="school"@if($place->icon == 'school')selected @endif>school</option> <option value="place-of-worship"@if($place->icon == 'place-of-worship')selected @endif>place-of-worship</option>
<option value="shop"@if($place->icon == 'shop')selected @endif>shop</option> <option value="playground"@if($place->icon == 'playground')selected @endif>playground</option>
<option value="stadium"@if($place->icon == 'stadium')selected @endif>stadium</option> <option value="police"@if($place->icon == 'police')selected @endif>police</option>
<option value="star"@if($place->icon == 'star')selected @endif>star</option> <option value="post"@if($place->icon == 'post')selected @endif>post</option>
<option value="suitcase"@if($place->icon == 'suitcase')selected @endif>suitcase</option> <option value="prison"@if($place->icon == 'prison')selected @endif>prison</option>
<option value="swimming"@if($place->icon == 'swimming')selected @endif>swimming</option> <option value="rail"@if($place->icon == 'rail')selected @endif>rail</option>
<option value="theatre"@if($place->icon == 'theatre')selected @endif>theatre</option> <option value="rail-light"@if($place->icon == 'rail-light')selected @endif>rail-light</option>
<option value="toilet"@if($place->icon == 'toilet')selected @endif>toilet</option> <option value="rail-metro"@if($place->icon == 'rail-metro')selected @endif>rail-metro</option>
<option value="town-hall"@if($place->icon == 'town-hall')selected @endif>town-hall</option> <option value="religious-christian"@if($place->icon == 'religious-christian')selected @endif>religious-christian</option>
<option value="triangle"@if($place->icon == 'triangle')selected @endif>triangle</option> <option value="religious-jewish"@if($place->icon == 'religious-jewish')selected @endif>religious-jewish</option>
<option value="triangle-stroked"@if($place->icon == 'triangle-stroked')selected @endif>triangle-stroked</option> <option value="religious-muslim"@if($place->icon == 'religious-muslim')selected @endif>religious-muslim</option>
<option value="veterinary"@if($place->icon == 'veterinary')selected @endif>veterinary</option> <option value="restaurant"@if($place->icon == 'restaurant')selected @endif>restaurant</option>
<option value="volcano"@if($place->icon == 'volcano')selected @endif>volcano</option> <option value="rocket"@if($place->icon == 'rocket')selected @endif>rocket</option>
<option value="zoo"@if($place->icon == 'zoo')selected @endif>zoo</option> <option value="school"@if($place->icon == 'school')selected @endif>school</option>
</select><br> <option value="shop"@if($place->icon == 'shop')selected @endif>shop</option>
<input type="submit" name="edit" value="Edit"><br><br> <option value="stadium"@if($place->icon == 'stadium')selected @endif>stadium</option>
<input type="submit" name="delete" value="Delete"> <option value="star"@if($place->icon == 'star')selected @endif>star</option>
<option value="suitcase"@if($place->icon == 'suitcase')selected @endif>suitcase</option>
<option value="swimming"@if($place->icon == 'swimming')selected @endif>swimming</option>
<option value="theatre"@if($place->icon == 'theatre')selected @endif>theatre</option>
<option value="toilet"@if($place->icon == 'toilet')selected @endif>toilet</option>
<option value="town-hall"@if($place->icon == 'town-hall')selected @endif>town-hall</option>
<option value="triangle"@if($place->icon == 'triangle')selected @endif>triangle</option>
<option value="triangle-stroked"@if($place->icon == 'triangle-stroked')selected @endif>triangle-stroked</option>
<option value="veterinary"@if($place->icon == 'veterinary')selected @endif>veterinary</option>
<option value="volcano"@if($place->icon == 'volcano')selected @endif>volcano</option>
<option value="zoo"@if($place->icon == 'zoo')selected @endif>zoo</option>
</select>
</div>
<div>
<button type="submit" name="edit">Edit</button>
</div>
<hr>
<div>
<button type="submit" name="delete">Delete</button>
</div>
</form> </form>
<p><a href="/admin/places/{{ $place->id }}/merge">Merge with another place?</a></p> <p><a href="/admin/places/{{ $place->id }}/merge">Merge with another place?</a></p>

View file

@ -875,4 +875,22 @@ class MicropubControllerTest extends TestCase
$response->assertStatus(400); $response->assertStatus(400);
$response->assertJson(['error_description' => 'The uploaded file failed validation']); $response->assertJson(['error_description' => 'The uploaded file failed validation']);
} }
public function test_access_token_form_encoded()
{
$faker = \Faker\Factory::create();
$note = $faker->text;
$response = $this->call(
'POST',
'/api/post',
[
'h' => 'entry',
'content' => $note,
'published' => Carbon::now()->toW3CString(),
'access_token' => $this->getToken(),
]
);
$response->assertJson(['response' => 'created']);
$this->assertDatabaseHas('notes', ['note' => $note]);
}
} }