[CARDS][Note] In conversation time ago information added

This commit is contained in:
Eliseu Amaro 2021-12-08 22:46:00 +00:00
parent df92b0d225
commit b1227d36f1
Signed by: eliseuamaro
GPG Key ID: 96DA09D4B97BC2D5
7 changed files with 307 additions and 114 deletions

View File

@ -16,6 +16,7 @@
"doctrine/doctrine-migrations-bundle": "^3.1", "doctrine/doctrine-migrations-bundle": "^3.1",
"doctrine/orm": "^2.9", "doctrine/orm": "^2.9",
"erusev/parsedown": "^1.7", "erusev/parsedown": "^1.7",
"knplabs/knp-time-bundle": "^1.17",
"lstrojny/functional-php": "^1.11", "lstrojny/functional-php": "^1.11",
"nyholm/psr7": "^1.4", "nyholm/psr7": "^1.4",
"odolbeau/phone-number-bundle": "^3.1", "odolbeau/phone-number-bundle": "^3.1",

297
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "cfe3754cd98ed2727891879332443136", "content-hash": "225d1cb7ac81b749a522ffd4d0c344fb",
"packages": [ "packages": [
{ {
"name": "alchemy/binary-driver", "name": "alchemy/binary-driver",
@ -1533,16 +1533,16 @@
}, },
{ {
"name": "doctrine/orm", "name": "doctrine/orm",
"version": "2.10.2", "version": "2.10.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/orm.git", "url": "https://github.com/doctrine/orm.git",
"reference": "81d472f6f96b8b571cafefe8d2fef89ed9446a62" "reference": "7b242753466508e1dd10f67c1baee95785f845c1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/81d472f6f96b8b571cafefe8d2fef89ed9446a62", "url": "https://api.github.com/repos/doctrine/orm/zipball/7b242753466508e1dd10f67c1baee95785f845c1",
"reference": "81d472f6f96b8b571cafefe8d2fef89ed9446a62", "reference": "7b242753466508e1dd10f67c1baee95785f845c1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1572,12 +1572,12 @@
"doctrine/annotations": "^1.13", "doctrine/annotations": "^1.13",
"doctrine/coding-standard": "^9.0", "doctrine/coding-standard": "^9.0",
"phpbench/phpbench": "^0.16.10 || ^1.0", "phpbench/phpbench": "^0.16.10 || ^1.0",
"phpstan/phpstan": "0.12.99", "phpstan/phpstan": "1.2.0",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
"squizlabs/php_codesniffer": "3.6.1", "squizlabs/php_codesniffer": "3.6.1",
"symfony/cache": "^4.4 || ^5.2", "symfony/cache": "^4.4 || ^5.2",
"symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
"vimeo/psalm": "4.10.0" "vimeo/psalm": "4.13.1"
}, },
"suggest": { "suggest": {
"symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0",
@ -1626,9 +1626,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/doctrine/orm/issues", "issues": "https://github.com/doctrine/orm/issues",
"source": "https://github.com/doctrine/orm/tree/2.10.2" "source": "https://github.com/doctrine/orm/tree/2.10.3"
}, },
"time": "2021-10-21T17:57:02+00:00" "time": "2021-12-03T12:27:05+00:00"
}, },
{ {
"name": "doctrine/persistence", "name": "doctrine/persistence",
@ -2093,16 +2093,16 @@
}, },
{ {
"name": "giggsey/libphonenumber-for-php", "name": "giggsey/libphonenumber-for-php",
"version": "8.12.38", "version": "8.12.39",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/giggsey/libphonenumber-for-php.git", "url": "https://github.com/giggsey/libphonenumber-for-php.git",
"reference": "0a6293c57de9256f4bd0d673280fbfbfd1e47533" "reference": "6ae517989e96f069141ffeb56ccbbd849520f6ff"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/0a6293c57de9256f4bd0d673280fbfbfd1e47533", "url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/6ae517989e96f069141ffeb56ccbbd849520f6ff",
"reference": "0a6293c57de9256f4bd0d673280fbfbfd1e47533", "reference": "6ae517989e96f069141ffeb56ccbbd849520f6ff",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2162,7 +2162,7 @@
"issues": "https://github.com/giggsey/libphonenumber-for-php/issues", "issues": "https://github.com/giggsey/libphonenumber-for-php/issues",
"source": "https://github.com/giggsey/libphonenumber-for-php" "source": "https://github.com/giggsey/libphonenumber-for-php"
}, },
"time": "2021-11-26T08:32:55+00:00" "time": "2021-12-07T08:51:54+00:00"
}, },
{ {
"name": "giggsey/locale", "name": "giggsey/locale",
@ -2220,16 +2220,16 @@
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "7.4.0", "version": "7.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94" "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79",
"reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94", "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2238,7 +2238,7 @@
"guzzlehttp/psr7": "^1.8.3 || ^2.1", "guzzlehttp/psr7": "^1.8.3 || ^2.1",
"php": "^7.2.5 || ^8.0", "php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0", "psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2" "symfony/deprecation-contracts": "^2.2 || ^3.0"
}, },
"provide": { "provide": {
"psr/http-client-implementation": "1.0" "psr/http-client-implementation": "1.0"
@ -2324,7 +2324,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/guzzle/issues", "issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.4.0" "source": "https://github.com/guzzle/guzzle/tree/7.4.1"
}, },
"funding": [ "funding": [
{ {
@ -2340,7 +2340,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-10-18T09:52:00+00:00" "time": "2021-12-06T18:43:05+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
@ -2603,44 +2603,116 @@
"time": "2020-08-29T13:10:03+00:00" "time": "2020-08-29T13:10:03+00:00"
}, },
{ {
"name": "laminas/laminas-code", "name": "knplabs/knp-time-bundle",
"version": "4.4.3", "version": "1.17.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laminas/laminas-code.git", "url": "https://github.com/KnpLabs/KnpTimeBundle.git",
"reference": "bb324850d09dd437b6acb142c13e64fdc725b0e1" "reference": "bbb2c841b5e04b1290bee8173cbfa9c325ea3e9d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-code/zipball/bb324850d09dd437b6acb142c13e64fdc725b0e1", "url": "https://api.github.com/repos/KnpLabs/KnpTimeBundle/zipball/bbb2c841b5e04b1290bee8173cbfa9c325ea3e9d",
"reference": "bb324850d09dd437b6acb142c13e64fdc725b0e1", "reference": "bbb2c841b5e04b1290bee8173cbfa9c325ea3e9d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4 || ~8.0.0" "php": ">=7.2.5",
"symfony/config": "^4.3|^5.0|^6.0",
"symfony/dependency-injection": "^4.3|^5.0|^6.0",
"symfony/translation": "^4.3|^5.0|^6.0"
}, },
"conflict": { "conflict": {
"phpspec/prophecy": "<1.9.0" "phpunit/phpunit": "<8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/annotations": "^1.10.4", "symfony/framework-bundle": "^4.3|^5.0|^6.0",
"symfony/phpunit-bridge": "^5.2|^6.0",
"symfony/templating": "^4.3|^5.0|^6.0",
"symfony/twig-bundle": "^4.3|^5.0|^6.0"
},
"suggest": {
"symfony/twig-bundle": "to use the Twig `time_diff()` function or `|ago` filter"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Knp\\Bundle\\TimeBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "KnpLabs Team",
"homepage": "http://knplabs.com"
},
{
"name": "Symfony Community",
"homepage": "http://github.com/KnpLabs/KnpTimeBundle/contributors"
}
],
"description": "Making your dates look sensible and descriptive",
"homepage": "http://github.com/KnpLabs/KnpTimeBundle",
"keywords": [
"bundle",
"date",
"descriptive time",
"knp",
"knplabs",
"time"
],
"support": {
"issues": "https://github.com/KnpLabs/KnpTimeBundle/issues",
"source": "https://github.com/KnpLabs/KnpTimeBundle/tree/1.17.0"
},
"time": "2021-10-28T18:40:18+00:00"
},
{
"name": "laminas/laminas-code",
"version": "4.5.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-code.git",
"reference": "c99ef8e5629c33bfaa3a8f1df773e916af564cd6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-code/zipball/c99ef8e5629c33bfaa3a8f1df773e916af564cd6",
"reference": "c99ef8e5629c33bfaa3a8f1df773e916af564cd6",
"shasum": ""
},
"require": {
"php": ">=7.4, <8.2"
},
"require-dev": {
"doctrine/annotations": "^1.13.2",
"ext-phar": "*", "ext-phar": "*",
"laminas/laminas-coding-standard": "^2.1.4", "laminas/laminas-coding-standard": "^2.3.0",
"laminas/laminas-stdlib": "^3.3.0", "laminas/laminas-stdlib": "^3.6.1",
"phpunit/phpunit": "^9.4.2", "phpunit/phpunit": "^9.5.10",
"psalm/plugin-phpunit": "^0.14.0", "psalm/plugin-phpunit": "^0.16.1",
"vimeo/psalm": "^4.3.1" "vimeo/psalm": "^4.13.1"
}, },
"suggest": { "suggest": {
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
"laminas/laminas-stdlib": "Laminas\\Stdlib component", "laminas/laminas-stdlib": "Laminas\\Stdlib component"
"laminas/laminas-zendframework-bridge": "A bridge with Zend Framework"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Laminas\\Code\\": "src/" "Laminas\\Code\\": "src/"
} },
"files": [
"polyfill/ReflectionEnumPolyfill.php"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
@ -2667,7 +2739,7 @@
"type": "community_bridge" "type": "community_bridge"
} }
], ],
"time": "2021-09-21T13:40:23+00:00" "time": "2021-12-07T06:00:32+00:00"
}, },
{ {
"name": "landrok/activitypub", "name": "landrok/activitypub",
@ -3396,35 +3468,39 @@
}, },
{ {
"name": "odolbeau/phone-number-bundle", "name": "odolbeau/phone-number-bundle",
"version": "v3.5.0", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/odolbeau/phone-number-bundle.git", "url": "https://github.com/odolbeau/phone-number-bundle.git",
"reference": "c30c6629b6fe78cba7f9032e580f0d5e1e71c2ed" "reference": "0e9428c2252b2b8c5864c58dd6629cb548aa4695"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/odolbeau/phone-number-bundle/zipball/c30c6629b6fe78cba7f9032e580f0d5e1e71c2ed", "url": "https://api.github.com/repos/odolbeau/phone-number-bundle/zipball/0e9428c2252b2b8c5864c58dd6629cb548aa4695",
"reference": "c30c6629b6fe78cba7f9032e580f0d5e1e71c2ed", "reference": "0e9428c2252b2b8c5864c58dd6629cb548aa4695",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"giggsey/libphonenumber-for-php": "^8.0", "giggsey/libphonenumber-for-php": "^8.0",
"php": ">=7.4", "php": ">=7.4",
"symfony/framework-bundle": "^4.4|^5.3", "symfony/framework-bundle": "^4.4|^5.3|^6.0",
"symfony/intl": "^4.4|^5.3" "symfony/intl": "^4.4|^5.3|^6.0"
},
"conflict": {
"symfony/serializer": "6.0.0"
}, },
"replace": { "replace": {
"misd/phone-number-bundle": "self.version" "misd/phone-number-bundle": "self.version"
}, },
"require-dev": { "require-dev": {
"doctrine/doctrine-bundle": "^1.12|^2.0", "doctrine/doctrine-bundle": "^1.12|^2.0",
"phpunit/phpunit": "^8.4", "phpspec/prophecy-phpunit": "^2.0",
"symfony/form": "^4.4|^5.3", "phpunit/phpunit": "^9.5",
"symfony/property-access": "^4.4|^5.3", "symfony/form": "^4.4|^5.3|^6.0",
"symfony/serializer": "^4.4|^5.3", "symfony/property-access": "^4.4|^5.3|^6.0",
"symfony/twig-bundle": "^4.4|^5.3", "symfony/serializer": "^4.4|^5.3|^6.0.1",
"symfony/validator": "^4.4|^5.3" "symfony/twig-bundle": "^4.4|^5.3|^6.0",
"symfony/validator": "^4.4|^5.3|^6.0"
}, },
"suggest": { "suggest": {
"doctrine/doctrine-bundle": "Add a DBAL mapping type", "doctrine/doctrine-bundle": "Add a DBAL mapping type",
@ -3437,7 +3513,7 @@
"type": "symfony-bundle", "type": "symfony-bundle",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.5.x-dev" "dev-master": "3.6.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -3460,9 +3536,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/odolbeau/phone-number-bundle/issues", "issues": "https://github.com/odolbeau/phone-number-bundle/issues",
"source": "https://github.com/odolbeau/phone-number-bundle/tree/v3.5.0" "source": "https://github.com/odolbeau/phone-number-bundle/tree/v3.6.0"
}, },
"time": "2021-10-27T11:58:46+00:00" "time": "2021-12-07T09:07:46+00:00"
}, },
{ {
"name": "oro/doctrine-extensions", "name": "oro/doctrine-extensions",
@ -11019,6 +11095,77 @@
} }
], ],
"packages-dev": [ "packages-dev": [
{
"name": "composer/pcre",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
"reference": "3d322d715c43a1ac36c7fe215fa59336265500f2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2",
"reference": "3d322d715c43a1ac36c7fe215fa59336265500f2",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1",
"phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\Pcre\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "PCRE wrapping library that offers type-safe preg_* replacements.",
"keywords": [
"PCRE",
"preg",
"regex",
"regular expression"
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/1.0.0"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2021-12-06T15:17:27+00:00"
},
{ {
"name": "composer/semver", "name": "composer/semver",
"version": "3.2.6", "version": "3.2.6",
@ -11102,25 +11249,27 @@
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
"version": "2.0.2", "version": "2.0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/xdebug-handler.git", "url": "https://github.com/composer/xdebug-handler.git",
"reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339" "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/84674dd3a7575ba617f5a76d7e9e29a7d3891339", "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6555461e76962fd0379c444c46fd558a0fcfb65e",
"reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339", "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer/pcre": "^1",
"php": "^5.3.2 || ^7.0 || ^8.0", "php": "^5.3.2 || ^7.0 || ^8.0",
"psr/log": "^1 || ^2 || ^3" "psr/log": "^1 || ^2 || ^3"
}, },
"require-dev": { "require-dev": {
"phpstan/phpstan": "^0.12.55", "phpstan/phpstan": "^1.0",
"symfony/phpunit-bridge": "^4.2 || ^5" "phpstan/phpstan-strict-rules": "^1.1",
"symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -11146,7 +11295,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/xdebug-handler/issues", "issues": "https://github.com/composer/xdebug-handler/issues",
"source": "https://github.com/composer/xdebug-handler/tree/2.0.2" "source": "https://github.com/composer/xdebug-handler/tree/2.0.3"
}, },
"funding": [ "funding": [
{ {
@ -11162,7 +11311,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-07-31T17:03:58+00:00" "time": "2021-12-08T13:07:32+00:00"
}, },
{ {
"name": "doctrine/data-fixtures", "name": "doctrine/data-fixtures",
@ -11789,16 +11938,16 @@
}, },
{ {
"name": "phpspec/prophecy", "name": "phpspec/prophecy",
"version": "1.14.0", "version": "v1.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpspec/prophecy.git", "url": "https://github.com/phpspec/prophecy.git",
"reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
"reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11850,9 +11999,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpspec/prophecy/issues", "issues": "https://github.com/phpspec/prophecy/issues",
"source": "https://github.com/phpspec/prophecy/tree/1.14.0" "source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
}, },
"time": "2021-09-10T09:02:12+00:00" "time": "2021-12-08T12:19:24+00:00"
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
@ -11920,16 +12069,16 @@
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "9.2.9", "version": "9.2.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b" "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687",
"reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11985,7 +12134,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.9" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10"
}, },
"funding": [ "funding": [
{ {
@ -11993,7 +12142,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2021-11-19T15:21:02+00:00" "time": "2021-12-05T09:12:13+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",

View File

@ -1,7 +1,5 @@
<?php <?php
declare(strict_types = 1);
return [ return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
@ -20,4 +18,5 @@ return [
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true], Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
SymfonyCasts\Bundle\ResetPassword\SymfonyCastsResetPasswordBundle::class => ['all' => true], SymfonyCasts\Bundle\ResetPassword\SymfonyCastsResetPasswordBundle::class => ['all' => true],
Fidry\PsyshBundle\PsyshBundle::class => ['dev' => true, 'test' => true], Fidry\PsyshBundle\PsyshBundle::class => ['dev' => true, 'test' => true],
Knp\Bundle\TimeBundle\KnpTimeBundle::class => ['all' => true],
]; ];

View File

@ -94,33 +94,39 @@
.note-info, .note-info,
embed header { embed header {
display: flex; display: flex;
justify-content: space-between;
align-items: center; align-items: center;
max-height: var(--big); max-height: var(--big);
border-bottom: unset; border-bottom: unset;
border-radius: var(--smaller) var(--smaller) 0 0; border-radius: var(--smaller) var(--smaller) 0 0;
font-size: var(--small); padding: 4px var(--smaller) 4px 0;
padding: 0 var(--smaller) 0 0;
} }
.note-info { .note-info {
background: var(--gradient-backwards); background: var(--gradient-backwards);
} }
.note-author { .note-url {
font-size: var(--default); opacity: 0.5;
display: flex; font-size: 0.9em;
align-items: center; margin-left: var(--smaller);
align-self: center; }
embed header {
font-size: var(--small);
justify-content: space-between;
}
.note-author-url {
margin-left: 4px;
} }
.note-author-fullname { .note-author-fullname {
font-weight: bold; font-weight: bold;
} }
.note-author-nickname { .note-author-nickname {
opacity: 0.5; opacity: 0.5;
margin-left: var(--smaller);
} }
.note-author-nickname::before { .note-author-nickname::before {
content: '@'; content: '@';
} }
.note-actions {
margin-left: auto;
}
.note-actions ul { .note-actions ul {
display: flex; display: flex;
vertical-align: middle; vertical-align: middle;

View File

@ -50,6 +50,7 @@ class Note extends Entity
private ?string $content_type = null; private ?string $content_type = null;
private ?string $content = null; private ?string $content = null;
private ?string $rendered = null; private ?string $rendered = null;
private ?int $reply_to;
private bool $is_local; private bool $is_local;
private ?string $source; private ?string $source;
private int $scope = VisibilityScope::PUBLIC; private int $scope = VisibilityScope::PUBLIC;
@ -113,6 +114,17 @@ class Note extends Entity
return $this->rendered; return $this->rendered;
} }
public function setReplyTo(?int $reply_to): self
{
$this->reply_to = $reply_to;
return $this;
}
public function getReplyTo(): ?int
{
return $this->reply_to;
}
public function setIsLocal(bool $is_local): self public function setIsLocal(bool $is_local): self
{ {
$this->is_local = $is_local; $this->is_local = $is_local;
@ -300,6 +312,16 @@ class Note extends Entity
}); });
} }
public function getReplyToNote(): ?Note
{
return self::getWithPK($this->getReplyTo());
}
public function getReplies(): array
{
return Cache::getList('note-replies-' . $this->id, fn () => DB::dql('select n from note n where n.reply_to = :id', ['id' => $this->id]));
}
/** /**
* Whether this note is visible to the given actor * Whether this note is visible to the given actor
*/ */
@ -347,6 +369,7 @@ class Note extends Entity
'content' => ['type' => 'text', 'description' => 'note content'], 'content' => ['type' => 'text', 'description' => 'note content'],
'content_type' => ['type' => 'varchar', 'not null' => true, 'default' => 'text/plain', 'length' => 129, 'description' => 'A note can be written in a multitude of formats such as text/plain, text/markdown, application/x-latex, and text/html'], 'content_type' => ['type' => 'varchar', 'not null' => true, 'default' => 'text/plain', 'length' => 129, 'description' => 'A note can be written in a multitude of formats such as text/plain, text/markdown, application/x-latex, and text/html'],
'rendered' => ['type' => 'text', 'description' => 'rendered note content, so we can keep the microtags (if not local)'], 'rendered' => ['type' => 'text', 'description' => 'rendered note content, so we can keep the microtags (if not local)'],
'reply_to' => ['type' => 'int', 'foreign key' => true, 'target' => 'Note.id', 'multiplicity' => 'one to one', 'description' => 'note replied to, null if root of a conversation'],
'is_local' => ['type' => 'bool', 'not null' => true, 'description' => 'was this note generated by a local actor'], 'is_local' => ['type' => 'bool', 'not null' => true, 'description' => 'was this note generated by a local actor'],
'source' => ['type' => 'varchar', 'foreign key' => true, 'length' => 32, 'target' => 'NoteSource.code', 'multiplicity' => 'many to one', 'description' => 'fkey to source of note, like "web", "im", or "clientname"'], 'source' => ['type' => 'varchar', 'foreign key' => true, 'length' => 32, 'target' => 'NoteSource.code', 'multiplicity' => 'many to one', 'description' => 'fkey to source of note, like "web", "im", or "clientname"'],
'scope' => ['type' => 'int', 'not null' => true, 'default' => VisibilityScope::PUBLIC, 'description' => 'bit map for distribution scope; 0 = everywhere; 1 = this server only; 2 = addressees; 4 = groups; 8 = subscribers; 16 = messages; null = default'], 'scope' => ['type' => 'int', 'not null' => true, 'default' => VisibilityScope::PUBLIC, 'description' => 'bit map for distribution scope; 0 = everywhere; 1 = this server only; 2 = addressees; 4 = groups; 8 = subscribers; 16 = messages; null = default'],
@ -360,6 +383,7 @@ class Note extends Entity
'note_created_id_is_local_idx' => ['created', 'is_local'], 'note_created_id_is_local_idx' => ['created', 'is_local'],
'note_actor_created_idx' => ['actor_id', 'created'], 'note_actor_created_idx' => ['actor_id', 'created'],
'note_is_local_created_actor_idx' => ['is_local', 'created', 'actor_id'], 'note_is_local_created_actor_idx' => ['is_local', 'created', 'actor_id'],
'note_reply_to_idx' => ['reply_to'],
], ],
'fulltext indexes' => ['notice_fulltext_idx' => ['content']], // TODO make this configurable 'fulltext indexes' => ['notice_fulltext_idx' => ['content']], // TODO make this configurable
]; ];

View File

@ -14,6 +14,9 @@
"composer/ca-bundle": { "composer/ca-bundle": {
"version": "1.2.10" "version": "1.2.10"
}, },
"composer/pcre": {
"version": "1.0.0"
},
"composer/semver": { "composer/semver": {
"version": "3.2.4" "version": "3.2.4"
}, },
@ -163,6 +166,9 @@
"jcupitt/vips": { "jcupitt/vips": {
"version": "v1.0.8" "version": "v1.0.8"
}, },
"knplabs/knp-time-bundle": {
"version": "1.17.0"
},
"laminas/laminas-code": { "laminas/laminas-code": {
"version": "4.1.0" "version": "4.1.0"
}, },

View File

@ -72,14 +72,14 @@
{% block note_author %} {% block note_author %}
{# Microformat's h-card properties indicates a face icon is a "u-logo" #} {# Microformat's h-card properties indicates a face icon is a "u-logo" #}
<a href="{{ actor_url }}" class="note-author u-url"> <header class="note-author-fullname" tabindex="0" title="{{ 'Begin a note by the user: ' | trans }} {{ nickname }}" >
<strong class="note-author-fullname">
{% if fullname is not null %} {% if fullname is not null %}
{{ fullname }} {{ fullname }}
{% else %} {% else %}
{{ nickname }} {{ nickname }}
{% endif %} {% endif %}
</strong> </header>
<a href="{{ actor_url }}" class="note-author-url u-url">
<em class="note-author-nickname">{{ nickname }}</em> <em class="note-author-nickname">{{ nickname }}</em>
</a> </a>
{% endblock note_author %} {% endblock note_author %}
@ -90,6 +90,17 @@
</aside> </aside>
{% endblock note_sidebar %} {% endblock note_sidebar %}
{% block note_info %}
<div class="note-info">
{{ block('note_author') }}
<em>
<a href="{{ note.getUrl() }}" class="note-url">{{ 'in conversation' | trans }} {{ note.getModified() | ago }}</a>
</em>
{{ block('note_actions') }}
</div>
{% endblock note_info %}
{% macro macro_note(note, replies) %} {% macro macro_note(note, replies) %}
{% set nickname = note.getActorNickname() %} {% set nickname = note.getActorNickname() %}
{% set fullname = note.getActorFullname() %} {% set fullname = note.getActorFullname() %}
@ -100,12 +111,9 @@
<article class="h-entry hentry note" lang={{ note.getLanguageLocale() }}> <article class="h-entry hentry note" lang={{ note.getLanguageLocale() }}>
{{ block('note_sidebar') }} {{ block('note_sidebar') }}
<div class="note-wrapper"> <div class="note-wrapper">
<div tabindex="0" title="{{ 'Begin a note by the user: ' | trans }} {{ nickname }}." class="note-info"> {{ block('note_info') }}
{{ block('note_author') }}
{{ block('note_actions') }}
</div>
<section tabindex="0" role="dialog" class="e-content entry-content note-content"> <section role="dialog" class="e-content entry-content note-content">
{{ block('note_text') }} {{ block('note_text') }}
{{ block('note_attachments') }} {{ block('note_attachments') }}
{{ block('note_links') }} {{ block('note_links') }}