aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJeremy Benoist <j0k3r@users.noreply.github.com>2015-12-28 13:12:30 +0100
committerJeremy Benoist <j0k3r@users.noreply.github.com>2015-12-28 13:12:30 +0100
commit82899c040258896bff540080602e93aa49a71ae8 (patch)
tree4687785a472b4f5001dc73374247eeca2206da6a
parent22c1d29b898f0e33c23a571a8fa6820f76145b69 (diff)
parent3c65dfb735c7ccdee3d8ea420fe295439d53bb13 (diff)
downloadwallabag-82899c040258896bff540080602e93aa49a71ae8.tar.gz
wallabag-82899c040258896bff540080602e93aa49a71ae8.tar.zst
wallabag-82899c040258896bff540080602e93aa49a71ae8.zip
Merge pull request #1488 from wallabag/v2-slug-tags
Slug for tags
-rw-r--r--app/AppKernel.php1
-rw-r--r--app/config/config.yml9
-rw-r--r--composer.json1
-rw-r--r--composer.lock299
-rw-r--r--src/Wallabag/CoreBundle/Entity/Tag.php12
5 files changed, 262 insertions, 60 deletions
diff --git a/app/AppKernel.php b/app/AppKernel.php
index 1eacb348..85edc14a 100644
--- a/app/AppKernel.php
+++ b/app/AppKernel.php
@@ -28,6 +28,7 @@ class AppKernel extends Kernel
28 new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(), 28 new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
29 new FOS\OAuthServerBundle\FOSOAuthServerBundle(), 29 new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
30 new Wallabag\UserBundle\WallabagUserBundle(), 30 new Wallabag\UserBundle\WallabagUserBundle(),
31 new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
31 new Scheb\TwoFactorBundle\SchebTwoFactorBundle(), 32 new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
32 new KPhoen\RulerZBundle\KPhoenRulerZBundle(), 33 new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
33 ); 34 );
diff --git a/app/config/config.yml b/app/config/config.yml
index 82c5e7c9..f2538c90 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -90,6 +90,14 @@ doctrine:
90 default: 90 default:
91 auto_mapping: true 91 auto_mapping: true
92 92
93stof_doctrine_extensions:
94 default_locale: "%locale%"
95 translation_fallback: true
96 orm:
97 default:
98 tree: true
99 sluggable: true
100
93# Swiftmailer Configuration 101# Swiftmailer Configuration
94swiftmailer: 102swiftmailer:
95 transport: "%mailer_transport%" 103 transport: "%mailer_transport%"
@@ -119,6 +127,7 @@ fos_rest:
119nelmio_api_doc: 127nelmio_api_doc:
120 sandbox: 128 sandbox:
121 enabled: false 129 enabled: false
130 name: wallabag API documentation
122 131
123nelmio_cors: 132nelmio_cors:
124 defaults: 133 defaults:
diff --git a/composer.json b/composer.json
index 29784d5c..bf519faf 100644
--- a/composer.json
+++ b/composer.json
@@ -55,6 +55,7 @@
55 "j0k3r/graby": "~1.0", 55 "j0k3r/graby": "~1.0",
56 "friendsofsymfony/user-bundle": "dev-master", 56 "friendsofsymfony/user-bundle": "dev-master",
57 "friendsofsymfony/oauth-server-bundle": "^1.4@dev", 57 "friendsofsymfony/oauth-server-bundle": "^1.4@dev",
58 "stof/doctrine-extensions-bundle": "^1.2@dev",
58 "scheb/two-factor-bundle": "~1.4.0", 59 "scheb/two-factor-bundle": "~1.4.0",
59 "grandt/phpepub": "~4.0", 60 "grandt/phpepub": "~4.0",
60 "wallabag/php-mobi": "~1.0.0", 61 "wallabag/php-mobi": "~1.0.0",
diff --git a/composer.lock b/composer.lock
index 61ab36ee..aee96198 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,10 +4,50 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 "This file is @generated automatically" 5 "This file is @generated automatically"
6 ], 6 ],
7 "hash": "cebe2bfc6f67c6f5e16e82f839fbb66b", 7 "hash": "91da706ef4b39a73704c3e2154c1a227",
8 "content-hash": "b5d8700f351d76dbd25cf578f53c6df3", 8 "content-hash": "81a3c2c84d78471bfb526b2b572182f7",
9 "packages": [ 9 "packages": [
10 { 10 {
11 "name": "behat/transliterator",
12 "version": "v1.1.0",
13 "source": {
14 "type": "git",
15 "url": "https://github.com/Behat/Transliterator.git",
16 "reference": "868e05be3a9f25ba6424c2dd4849567f50715003"
17 },
18 "dist": {
19 "type": "zip",
20 "url": "https://api.github.com/repos/Behat/Transliterator/zipball/868e05be3a9f25ba6424c2dd4849567f50715003",
21 "reference": "868e05be3a9f25ba6424c2dd4849567f50715003",
22 "shasum": ""
23 },
24 "require": {
25 "php": ">=5.3.3"
26 },
27 "type": "library",
28 "extra": {
29 "branch-alias": {
30 "dev-master": "1.1-dev"
31 }
32 },
33 "autoload": {
34 "psr-0": {
35 "Behat\\Transliterator": "src/"
36 }
37 },
38 "notification-url": "https://packagist.org/downloads/",
39 "license": [
40 "Artistic-1.0"
41 ],
42 "description": "String transliterator",
43 "keywords": [
44 "i18n",
45 "slug",
46 "transliterator"
47 ],
48 "time": "2015-09-28 16:26:35"
49 },
50 {
11 "name": "doctrine/annotations", 51 "name": "doctrine/annotations",
12 "version": "v1.2.7", 52 "version": "v1.2.7",
13 "source": { 53 "source": {
@@ -213,16 +253,16 @@
213 }, 253 },
214 { 254 {
215 "name": "doctrine/common", 255 "name": "doctrine/common",
216 "version": "v2.5.2", 256 "version": "v2.6.1",
217 "source": { 257 "source": {
218 "type": "git", 258 "type": "git",
219 "url": "https://github.com/doctrine/common.git", 259 "url": "https://github.com/doctrine/common.git",
220 "reference": "311001fd9865a4d0d59efff4eac6d7dcb3f5270c" 260 "reference": "a579557bc689580c19fee4e27487a67fe60defc0"
221 }, 261 },
222 "dist": { 262 "dist": {
223 "type": "zip", 263 "type": "zip",
224 "url": "https://api.github.com/repos/doctrine/common/zipball/311001fd9865a4d0d59efff4eac6d7dcb3f5270c", 264 "url": "https://api.github.com/repos/doctrine/common/zipball/a579557bc689580c19fee4e27487a67fe60defc0",
225 "reference": "311001fd9865a4d0d59efff4eac6d7dcb3f5270c", 265 "reference": "a579557bc689580c19fee4e27487a67fe60defc0",
226 "shasum": "" 266 "shasum": ""
227 }, 267 },
228 "require": { 268 "require": {
@@ -231,20 +271,20 @@
231 "doctrine/collections": "1.*", 271 "doctrine/collections": "1.*",
232 "doctrine/inflector": "1.*", 272 "doctrine/inflector": "1.*",
233 "doctrine/lexer": "1.*", 273 "doctrine/lexer": "1.*",
234 "php": ">=5.3.2" 274 "php": "~5.5|~7.0"
235 }, 275 },
236 "require-dev": { 276 "require-dev": {
237 "phpunit/phpunit": "~3.7" 277 "phpunit/phpunit": "~4.8|~5.0"
238 }, 278 },
239 "type": "library", 279 "type": "library",
240 "extra": { 280 "extra": {
241 "branch-alias": { 281 "branch-alias": {
242 "dev-master": "2.5.x-dev" 282 "dev-master": "2.7.x-dev"
243 } 283 }
244 }, 284 },
245 "autoload": { 285 "autoload": {
246 "psr-0": { 286 "psr-4": {
247 "Doctrine\\Common\\": "lib/" 287 "Doctrine\\Common\\": "lib/Doctrine/Common"
248 } 288 }
249 }, 289 },
250 "notification-url": "https://packagist.org/downloads/", 290 "notification-url": "https://packagist.org/downloads/",
@@ -282,24 +322,24 @@
282 "persistence", 322 "persistence",
283 "spl" 323 "spl"
284 ], 324 ],
285 "time": "2015-12-04 12:49:42" 325 "time": "2015-12-25 13:18:31"
286 }, 326 },
287 { 327 {
288 "name": "doctrine/dbal", 328 "name": "doctrine/dbal",
289 "version": "v2.5.2", 329 "version": "v2.5.3",
290 "source": { 330 "source": {
291 "type": "git", 331 "type": "git",
292 "url": "https://github.com/doctrine/dbal.git", 332 "url": "https://github.com/doctrine/dbal.git",
293 "reference": "01dbcbc5cd0a913d751418e635434a18a2f2a75c" 333 "reference": "2fbcea96eae34a53183377cdbb0b9bec33974648"
294 }, 334 },
295 "dist": { 335 "dist": {
296 "type": "zip", 336 "type": "zip",
297 "url": "https://api.github.com/repos/doctrine/dbal/zipball/01dbcbc5cd0a913d751418e635434a18a2f2a75c", 337 "url": "https://api.github.com/repos/doctrine/dbal/zipball/2fbcea96eae34a53183377cdbb0b9bec33974648",
298 "reference": "01dbcbc5cd0a913d751418e635434a18a2f2a75c", 338 "reference": "2fbcea96eae34a53183377cdbb0b9bec33974648",
299 "shasum": "" 339 "shasum": ""
300 }, 340 },
301 "require": { 341 "require": {
302 "doctrine/common": ">=2.4,<2.6-dev", 342 "doctrine/common": ">=2.4,<2.7-dev",
303 "php": ">=5.3.2" 343 "php": ">=5.3.2"
304 }, 344 },
305 "require-dev": { 345 "require-dev": {
@@ -353,7 +393,7 @@
353 "persistence", 393 "persistence",
354 "queryobject" 394 "queryobject"
355 ], 395 ],
356 "time": "2015-09-16 16:29:33" 396 "time": "2015-12-25 16:28:24"
357 }, 397 },
358 { 398 {
359 "name": "doctrine/doctrine-bundle", 399 "name": "doctrine/doctrine-bundle",
@@ -697,22 +737,22 @@
697 }, 737 },
698 { 738 {
699 "name": "doctrine/orm", 739 "name": "doctrine/orm",
700 "version": "v2.5.2", 740 "version": "v2.5.3",
701 "source": { 741 "source": {
702 "type": "git", 742 "type": "git",
703 "url": "https://github.com/doctrine/doctrine2.git", 743 "url": "https://github.com/doctrine/doctrine2.git",
704 "reference": "464b5fdbfbbeb4a65465ac173c4c5d90960f41ff" 744 "reference": "d9fc5388f1aa1751a0e148e76b4569bd207338e9"
705 }, 745 },
706 "dist": { 746 "dist": {
707 "type": "zip", 747 "type": "zip",
708 "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/464b5fdbfbbeb4a65465ac173c4c5d90960f41ff", 748 "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/d9fc5388f1aa1751a0e148e76b4569bd207338e9",
709 "reference": "464b5fdbfbbeb4a65465ac173c4c5d90960f41ff", 749 "reference": "d9fc5388f1aa1751a0e148e76b4569bd207338e9",
710 "shasum": "" 750 "shasum": ""
711 }, 751 },
712 "require": { 752 "require": {
713 "doctrine/cache": "~1.4", 753 "doctrine/cache": "~1.4",
714 "doctrine/collections": "~1.2", 754 "doctrine/collections": "~1.2",
715 "doctrine/common": ">=2.5-dev,<2.6-dev", 755 "doctrine/common": ">=2.5-dev,<2.7-dev",
716 "doctrine/dbal": ">=2.5-dev,<2.6-dev", 756 "doctrine/dbal": ">=2.5-dev,<2.6-dev",
717 "doctrine/instantiator": "~1.0.1", 757 "doctrine/instantiator": "~1.0.1",
718 "ext-pdo": "*", 758 "ext-pdo": "*",
@@ -770,7 +810,7 @@
770 "database", 810 "database",
771 "orm" 811 "orm"
772 ], 812 ],
773 "time": "2015-11-23 12:44:25" 813 "time": "2015-12-25 15:50:05"
774 }, 814 },
775 { 815 {
776 "name": "ezyang/htmlpurifier", 816 "name": "ezyang/htmlpurifier",
@@ -1095,6 +1135,85 @@
1095 "time": "2015-12-05 09:38:57" 1135 "time": "2015-12-05 09:38:57"
1096 }, 1136 },
1097 { 1137 {
1138 "name": "gedmo/doctrine-extensions",
1139 "version": "v2.4.10",
1140 "source": {
1141 "type": "git",
1142 "url": "https://github.com/Atlantic18/DoctrineExtensions.git",
1143 "reference": "7e7fc55fa3fad79031727fbc7d8e418b641be875"
1144 },
1145 "dist": {
1146 "type": "zip",
1147 "url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/7e7fc55fa3fad79031727fbc7d8e418b641be875",
1148 "reference": "7e7fc55fa3fad79031727fbc7d8e418b641be875",
1149 "shasum": ""
1150 },
1151 "require": {
1152 "behat/transliterator": "~1.0",
1153 "doctrine/common": "~2.4",
1154 "php": ">=5.3.2"
1155 },
1156 "require-dev": {
1157 "doctrine/common": ">=2.5.0",
1158 "doctrine/mongodb-odm": ">=1.0.2",
1159 "doctrine/orm": ">=2.5.0",
1160 "phpunit/phpunit": "~4.4",
1161 "phpunit/phpunit-mock-objects": "~2.3",
1162 "symfony/yaml": "~2.6"
1163 },
1164 "suggest": {
1165 "doctrine/mongodb-odm": "to use the extensions with the MongoDB ODM",
1166 "doctrine/orm": "to use the extensions with the ORM"
1167 },
1168 "type": "library",
1169 "extra": {
1170 "branch-alias": {
1171 "dev-master": "2.4.x-dev"
1172 }
1173 },
1174 "autoload": {
1175 "psr-0": {
1176 "Gedmo\\": "lib/"
1177 }
1178 },
1179 "notification-url": "https://packagist.org/downloads/",
1180 "license": [
1181 "MIT"
1182 ],
1183 "authors": [
1184 {
1185 "name": "David Buchmann",
1186 "email": "david@liip.ch"
1187 },
1188 {
1189 "name": "Gediminas Morkevicius",
1190 "email": "gediminas.morkevicius@gmail.com"
1191 },
1192 {
1193 "name": "Gustavo Falco",
1194 "email": "comfortablynumb84@gmail.com"
1195 }
1196 ],
1197 "description": "Doctrine2 behavioral extensions",
1198 "homepage": "http://gediminasm.org/",
1199 "keywords": [
1200 "Blameable",
1201 "behaviors",
1202 "doctrine2",
1203 "extensions",
1204 "gedmo",
1205 "loggable",
1206 "nestedset",
1207 "sluggable",
1208 "sortable",
1209 "timestampable",
1210 "translatable",
1211 "tree",
1212 "uploadable"
1213 ],
1214 "time": "2015-12-18 20:34:21"
1215 },
1216 {
1098 "name": "grandt/binstring", 1217 "name": "grandt/binstring",
1099 "version": "1.0.0", 1218 "version": "1.0.0",
1100 "source": { 1219 "source": {
@@ -2194,16 +2313,16 @@
2194 }, 2313 },
2195 { 2314 {
2196 "name": "j0k3r/graby", 2315 "name": "j0k3r/graby",
2197 "version": "1.0.7", 2316 "version": "1.0.8",
2198 "source": { 2317 "source": {
2199 "type": "git", 2318 "type": "git",
2200 "url": "https://github.com/j0k3r/graby.git", 2319 "url": "https://github.com/j0k3r/graby.git",
2201 "reference": "301f8c492be4c9b2bed8f29c32641636de0eca0a" 2320 "reference": "bf152ccc6629bdd63b1e5e8b297c2912516b5f1e"
2202 }, 2321 },
2203 "dist": { 2322 "dist": {
2204 "type": "zip", 2323 "type": "zip",
2205 "url": "https://api.github.com/repos/j0k3r/graby/zipball/301f8c492be4c9b2bed8f29c32641636de0eca0a", 2324 "url": "https://api.github.com/repos/j0k3r/graby/zipball/bf152ccc6629bdd63b1e5e8b297c2912516b5f1e",
2206 "reference": "301f8c492be4c9b2bed8f29c32641636de0eca0a", 2325 "reference": "bf152ccc6629bdd63b1e5e8b297c2912516b5f1e",
2207 "shasum": "" 2326 "shasum": ""
2208 }, 2327 },
2209 "require": { 2328 "require": {
@@ -2220,12 +2339,16 @@
2220 "smalot/pdfparser": "~0.9.24", 2339 "smalot/pdfparser": "~0.9.24",
2221 "symfony/options-resolver": "~2.6|~3.0" 2340 "symfony/options-resolver": "~2.6|~3.0"
2222 }, 2341 },
2342 "require-dev": {
2343 "satooshi/php-coveralls": "~0.6"
2344 },
2223 "type": "library", 2345 "type": "library",
2224 "autoload": { 2346 "autoload": {
2225 "psr-4": { 2347 "psr-4": {
2226 "Graby\\": "src/" 2348 "Graby\\": "src/"
2227 } 2349 }
2228 }, 2350 },
2351 "notification-url": "https://packagist.org/downloads/",
2229 "license": [ 2352 "license": [
2230 "AGPL-3.0" 2353 "AGPL-3.0"
2231 ], 2354 ],
@@ -2242,23 +2365,20 @@
2242 } 2365 }
2243 ], 2366 ],
2244 "description": "Graby helps you extract article content from web pages", 2367 "description": "Graby helps you extract article content from web pages",
2245 "support": { 2368 "time": "2015-12-24 08:28:38"
2246 "source": "https://github.com/bdunogier/graby/tree/1.0.7"
2247 },
2248 "time": "2015-12-16 10:21:48"
2249 }, 2369 },
2250 { 2370 {
2251 "name": "j0k3r/graby-site-config", 2371 "name": "j0k3r/graby-site-config",
2252 "version": "1.0.10", 2372 "version": "1.0.11",
2253 "source": { 2373 "source": {
2254 "type": "git", 2374 "type": "git",
2255 "url": "https://github.com/j0k3r/graby-site-config.git", 2375 "url": "https://github.com/j0k3r/graby-site-config.git",
2256 "reference": "daea5cdd2c3d89cb90402205392423030f8eebce" 2376 "reference": "ac198f308beabccc97bbd35ed0daeaac63fbf1e3"
2257 }, 2377 },
2258 "dist": { 2378 "dist": {
2259 "type": "zip", 2379 "type": "zip",
2260 "url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/daea5cdd2c3d89cb90402205392423030f8eebce", 2380 "url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/ac198f308beabccc97bbd35ed0daeaac63fbf1e3",
2261 "reference": "daea5cdd2c3d89cb90402205392423030f8eebce", 2381 "reference": "ac198f308beabccc97bbd35ed0daeaac63fbf1e3",
2262 "shasum": "" 2382 "shasum": ""
2263 }, 2383 },
2264 "require": { 2384 "require": {
@@ -2281,7 +2401,7 @@
2281 } 2401 }
2282 ], 2402 ],
2283 "description": "Graby site config files", 2403 "description": "Graby site config files",
2284 "time": "2015-12-16 10:27:19" 2404 "time": "2015-12-23 22:52:15"
2285 }, 2405 },
2286 { 2406 {
2287 "name": "j0k3r/php-readability", 2407 "name": "j0k3r/php-readability",
@@ -3032,16 +3152,16 @@
3032 }, 3152 },
3033 { 3153 {
3034 "name": "michelf/php-markdown", 3154 "name": "michelf/php-markdown",
3035 "version": "1.5.1", 3155 "version": "1.6.0",
3036 "source": { 3156 "source": {
3037 "type": "git", 3157 "type": "git",
3038 "url": "https://github.com/michelf/php-markdown.git", 3158 "url": "https://github.com/michelf/php-markdown.git",
3039 "reference": "155287e4222d2dd69b6a21221617b50668d5892e" 3159 "reference": "156e56ee036505ec637d761ee62dc425d807183c"
3040 }, 3160 },
3041 "dist": { 3161 "dist": {
3042 "type": "zip", 3162 "type": "zip",
3043 "url": "https://api.github.com/repos/michelf/php-markdown/zipball/155287e4222d2dd69b6a21221617b50668d5892e", 3163 "url": "https://api.github.com/repos/michelf/php-markdown/zipball/156e56ee036505ec637d761ee62dc425d807183c",
3044 "reference": "155287e4222d2dd69b6a21221617b50668d5892e", 3164 "reference": "156e56ee036505ec637d761ee62dc425d807183c",
3045 "shasum": "" 3165 "shasum": ""
3046 }, 3166 },
3047 "require": { 3167 "require": {
@@ -3079,7 +3199,7 @@
3079 "keywords": [ 3199 "keywords": [
3080 "markdown" 3200 "markdown"
3081 ], 3201 ],
3082 "time": "2015-12-22 18:18:12" 3202 "time": "2015-12-24 01:37:31"
3083 }, 3203 },
3084 { 3204 {
3085 "name": "monolog/monolog", 3205 "name": "monolog/monolog",
@@ -3999,6 +4119,67 @@
3999 "time": "2014-03-31 09:18:53" 4119 "time": "2014-03-31 09:18:53"
4000 }, 4120 },
4001 { 4121 {
4122 "name": "stof/doctrine-extensions-bundle",
4123 "version": "v1.2.1",
4124 "source": {
4125 "type": "git",
4126 "url": "https://github.com/stof/StofDoctrineExtensionsBundle.git",
4127 "reference": "7b3144572617b0555f9a443317dbc2f9cf5b524e"
4128 },
4129 "dist": {
4130 "type": "zip",
4131 "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/7b3144572617b0555f9a443317dbc2f9cf5b524e",
4132 "reference": "7b3144572617b0555f9a443317dbc2f9cf5b524e",
4133 "shasum": ""
4134 },
4135 "require": {
4136 "gedmo/doctrine-extensions": "^2.3.1",
4137 "php": ">=5.3.2",
4138 "symfony/framework-bundle": "~2.1"
4139 },
4140 "suggest": {
4141 "doctrine/doctrine-bundle": "to use the ORM extensions",
4142 "doctrine/mongodb-odm-bundle": "to use the MongoDB ODM extensions"
4143 },
4144 "type": "symfony-bundle",
4145 "extra": {
4146 "branch-alias": {
4147 "dev-master": "1.2.x-dev"
4148 }
4149 },
4150 "autoload": {
4151 "psr-4": {
4152 "Stof\\DoctrineExtensionsBundle\\": ""
4153 }
4154 },
4155 "notification-url": "https://packagist.org/downloads/",
4156 "license": [
4157 "MIT"
4158 ],
4159 "authors": [
4160 {
4161 "name": "Christophe Coevoet",
4162 "email": "stof@notk.org"
4163 }
4164 ],
4165 "description": "Integration of the gedmo/doctrine-extensions with Symfony2",
4166 "homepage": "https://github.com/stof/StofDoctrineExtensionsBundle",
4167 "keywords": [
4168 "behaviors",
4169 "doctrine2",
4170 "extensions",
4171 "gedmo",
4172 "loggable",
4173 "nestedset",
4174 "sluggable",
4175 "sortable",
4176 "timestampable",
4177 "translatable",
4178 "tree"
4179 ],
4180 "time": "2015-08-12 16:23:48"
4181 },
4182 {
4002 "name": "swiftmailer/swiftmailer", 4183 "name": "swiftmailer/swiftmailer",
4003 "version": "v5.4.1", 4184 "version": "v5.4.1",
4004 "source": { 4185 "source": {
@@ -4239,16 +4420,16 @@
4239 }, 4420 },
4240 { 4421 {
4241 "name": "symfony/symfony", 4422 "name": "symfony/symfony",
4242 "version": "v2.7.7", 4423 "version": "v2.7.8",
4243 "source": { 4424 "source": {
4244 "type": "git", 4425 "type": "git",
4245 "url": "https://github.com/symfony/symfony.git", 4426 "url": "https://github.com/symfony/symfony.git",
4246 "reference": "cc69dbd24b4b2e6de60b2414ef95da2794f459a2" 4427 "reference": "ad264021e44a5aaa132f16aef69f92e56795683e"
4247 }, 4428 },
4248 "dist": { 4429 "dist": {
4249 "type": "zip", 4430 "type": "zip",
4250 "url": "https://api.github.com/repos/symfony/symfony/zipball/cc69dbd24b4b2e6de60b2414ef95da2794f459a2", 4431 "url": "https://api.github.com/repos/symfony/symfony/zipball/ad264021e44a5aaa132f16aef69f92e56795683e",
4251 "reference": "cc69dbd24b4b2e6de60b2414ef95da2794f459a2", 4432 "reference": "ad264021e44a5aaa132f16aef69f92e56795683e",
4252 "shasum": "" 4433 "shasum": ""
4253 }, 4434 },
4254 "require": { 4435 "require": {
@@ -4359,7 +4540,7 @@
4359 "keywords": [ 4540 "keywords": [
4360 "framework" 4541 "framework"
4361 ], 4542 ],
4362 "time": "2015-11-23 11:58:08" 4543 "time": "2015-12-26 15:02:06"
4363 }, 4544 },
4364 { 4545 {
4365 "name": "tecnickcom/tcpdf", 4546 "name": "tecnickcom/tcpdf",
@@ -4563,27 +4744,24 @@
4563 "MOBIClass/MOBI.php" 4744 "MOBIClass/MOBI.php"
4564 ] 4745 ]
4565 }, 4746 },
4747 "notification-url": "https://packagist.org/downloads/",
4566 "license": [ 4748 "license": [
4567 "Apache-2.0" 4749 "Apache-2.0"
4568 ], 4750 ],
4569 "authors": [ 4751 "authors": [
4570 { 4752 {
4571 "name": "Sander Kromwijk",
4572 "email": "s.kromwijk@gmail.co",
4573 "role": "Original developer"
4574 },
4575 {
4576 "name": "Nicolas LÅ“uillet", 4753 "name": "Nicolas LÅ“uillet",
4577 "email": "nicolas@loeuillet.org", 4754 "email": "nicolas@loeuillet.org",
4578 "homepage": "http://www.cdetc.fr" 4755 "homepage": "http://www.cdetc.fr"
4756 },
4757 {
4758 "name": "Sander Kromwijk",
4759 "email": "s.kromwijk@gmail.co",
4760 "role": "Original developer"
4579 } 4761 }
4580 ], 4762 ],
4581 "description": "A Mobipocket file (.mobi) creator in PHP.", 4763 "description": "A Mobipocket file (.mobi) creator in PHP.",
4582 "homepage": "https://github.com/wallabag/phpMobi", 4764 "homepage": "https://github.com/wallabag/phpMobi",
4583 "support": {
4584 "source": "https://github.com/wallabag/php-mobi/tree/1.0.1",
4585 "issues": "https://github.com/wallabag/php-mobi/issues"
4586 },
4587 "time": "2015-10-16 08:42:42" 4765 "time": "2015-10-16 08:42:42"
4588 }, 4766 },
4589 { 4767 {
@@ -4692,7 +4870,7 @@
4692 ], 4870 ],
4693 "authors": [ 4871 "authors": [
4694 { 4872 {
4695 "name": "William DURAND", 4873 "name": "William Durand",
4696 "email": "william.durand1@gmail.com" 4874 "email": "william.durand1@gmail.com"
4697 } 4875 }
4698 ], 4876 ],
@@ -5806,7 +5984,7 @@
5806 }, 5984 },
5807 { 5985 {
5808 "name": "symfony/phpunit-bridge", 5986 "name": "symfony/phpunit-bridge",
5809 "version": "v2.7.7", 5987 "version": "v2.7.8",
5810 "source": { 5988 "source": {
5811 "type": "git", 5989 "type": "git",
5812 "url": "https://github.com/symfony/phpunit-bridge.git", 5990 "url": "https://github.com/symfony/phpunit-bridge.git",
@@ -5864,12 +6042,13 @@
5864 "minimum-stability": "dev", 6042 "minimum-stability": "dev",
5865 "stability-flags": { 6043 "stability-flags": {
5866 "friendsofsymfony/user-bundle": 20, 6044 "friendsofsymfony/user-bundle": 20,
5867 "friendsofsymfony/oauth-server-bundle": 20 6045 "friendsofsymfony/oauth-server-bundle": 20,
6046 "stof/doctrine-extensions-bundle": 20
5868 }, 6047 },
5869 "prefer-stable": true, 6048 "prefer-stable": true,
5870 "prefer-lowest": false, 6049 "prefer-lowest": false,
5871 "platform": { 6050 "platform": {
5872 "php": ">=5.3.3" 6051 "php": ">=5.5.0"
5873 }, 6052 },
5874 "platform-dev": [] 6053 "platform-dev": []
5875} 6054}
diff --git a/src/Wallabag/CoreBundle/Entity/Tag.php b/src/Wallabag/CoreBundle/Entity/Tag.php
index 7cc452fd..4ed588be 100644
--- a/src/Wallabag/CoreBundle/Entity/Tag.php
+++ b/src/Wallabag/CoreBundle/Entity/Tag.php
@@ -7,6 +7,7 @@ use JMS\Serializer\Annotation\XmlRoot;
7use JMS\Serializer\Annotation\ExclusionPolicy; 7use JMS\Serializer\Annotation\ExclusionPolicy;
8use JMS\Serializer\Annotation\Expose; 8use JMS\Serializer\Annotation\Expose;
9use Doctrine\Common\Collections\ArrayCollection; 9use Doctrine\Common\Collections\ArrayCollection;
10use Gedmo\Mapping\Annotation as Gedmo;
10 11
11/** 12/**
12 * Tag. 13 * Tag.
@@ -37,6 +38,12 @@ class Tag
37 private $label; 38 private $label;
38 39
39 /** 40 /**
41 * @Gedmo\Slug(fields={"label"})
42 * @ORM\Column(length=128, unique=true)
43 */
44 private $slug;
45
46 /**
40 * @ORM\ManyToMany(targetEntity="Entry", mappedBy="tags", cascade={"persist"}) 47 * @ORM\ManyToMany(targetEntity="Entry", mappedBy="tags", cascade={"persist"})
41 */ 48 */
42 private $entries; 49 private $entries;
@@ -91,6 +98,11 @@ class Tag
91 return $this->label; 98 return $this->label;
92 } 99 }
93 100
101 public function getSlug()
102 {
103 return $this->slug;
104 }
105
94 public function addEntry(Entry $entry) 106 public function addEntry(Entry $entry)
95 { 107 {
96 $this->entries[] = $entry; 108 $this->entries[] = $entry;